diff --git a/.gitignore b/.gitignore index 3c3629e..1dcef2d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ node_modules +.env \ No newline at end of file diff --git a/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json new file mode 100644 index 0000000..feb7c94 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/1dd7084feacead7ea9808bb89c4ee94a.json" +} diff --git a/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json new file mode 100644 index 0000000..3edcb5b --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Strings", + "sourceName": "@openzeppelin/contracts/utils/Strings.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220554120e6795de1095fd54992294a43b7bbd9d054b9da4b5204aea17e03b6254e64736f6c63430008110033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220554120e6795de1095fd54992294a43b7bbd9d054b9da4b5204aea17e03b6254e64736f6c63430008110033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json b/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json new file mode 100644 index 0000000..8d56619 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/1dd7084feacead7ea9808bb89c4ee94a.json" +} diff --git a/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json b/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json new file mode 100644 index 0000000..67b0ffe --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Math", + "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220feec7b17524d34f3c20d4922777dea9e0c157695b6e02a8bd0951b2ebf853fa864736f6c63430008110033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220feec7b17524d34f3c20d4922777dea9e0c157695b6e02a8bd0951b2ebf853fa864736f6c63430008110033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/math/SafeMath.sol/SafeMath.dbg.json b/artifacts/@openzeppelin/contracts/utils/math/SafeMath.sol/SafeMath.dbg.json new file mode 100644 index 0000000..f31e30f --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/math/SafeMath.sol/SafeMath.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/d951a07aa61d2207e90859c4cbb7e474.json" +} diff --git a/artifacts/@openzeppelin/contracts/utils/math/SafeMath.sol/SafeMath.json b/artifacts/@openzeppelin/contracts/utils/math/SafeMath.sol/SafeMath.json new file mode 100644 index 0000000..7b9c303 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/math/SafeMath.sol/SafeMath.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SafeMath", + "sourceName": "@openzeppelin/contracts/utils/math/SafeMath.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208e77a4680532ae9e9e61e1cd4ff6be2a8d9dddec98c69552d2944258cddde66d64736f6c63430008110033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208e77a4680532ae9e9e61e1cd4ff6be2a8d9dddec98c69552d2944258cddde66d64736f6c63430008110033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json b/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json new file mode 100644 index 0000000..8d56619 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/1dd7084feacead7ea9808bb89c4ee94a.json" +} diff --git a/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json b/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json new file mode 100644 index 0000000..a14057d --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SignedMath", + "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c5d6c734e147510a4cba68515ad7f9014cd66d2f51dc998c071d660dc98eca8564736f6c63430008110033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c5d6c734e147510a4cba68515ad7f9014cd66d2f51dc998c071d660dc98eca8564736f6c63430008110033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/build-info/1dd7084feacead7ea9808bb89c4ee94a.json b/artifacts/build-info/1dd7084feacead7ea9808bb89c4ee94a.json new file mode 100644 index 0000000..f6111d9 --- /dev/null +++ b/artifacts/build-info/1dd7084feacead7ea9808bb89c4ee94a.json @@ -0,0 +1 @@ +{"id":"1dd7084feacead7ea9808bb89c4ee94a","_format":"hh-sol-build-info-1","solcVersion":"0.8.17","solcLongVersion":"0.8.17+commit.8df45f5f","input":{"language":"Solidity","sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {CBORChainlink} from \"./vendor/CBORChainlink.sol\";\nimport {BufferChainlink} from \"./vendor/BufferChainlink.sol\";\n\n/**\n * @title Library for common Chainlink functions\n * @dev Uses imported CBOR library for encoding to buffer\n */\nlibrary Chainlink {\n uint256 internal constant defaultBufferSize = 256; // solhint-disable-line const-name-snakecase\n\n using CBORChainlink for BufferChainlink.buffer;\n\n struct Request {\n bytes32 id;\n address callbackAddress;\n bytes4 callbackFunctionId;\n uint256 nonce;\n BufferChainlink.buffer buf;\n }\n\n /**\n * @notice Initializes a Chainlink request\n * @dev Sets the ID, callback address, and callback function signature on the request\n * @param self The uninitialized request\n * @param jobId The Job Specification ID\n * @param callbackAddr The callback address\n * @param callbackFunc The callback function signature\n * @return The initialized request\n */\n function initialize(\n Request memory self,\n bytes32 jobId,\n address callbackAddr,\n bytes4 callbackFunc\n ) internal pure returns (Chainlink.Request memory) {\n BufferChainlink.init(self.buf, defaultBufferSize);\n self.id = jobId;\n self.callbackAddress = callbackAddr;\n self.callbackFunctionId = callbackFunc;\n return self;\n }\n\n /**\n * @notice Sets the data for the buffer without encoding CBOR on-chain\n * @dev CBOR can be closed with curly-brackets {} or they can be left off\n * @param self The initialized request\n * @param data The CBOR data\n */\n function setBuffer(Request memory self, bytes memory data) internal pure {\n BufferChainlink.init(self.buf, data.length);\n BufferChainlink.append(self.buf, data);\n }\n\n /**\n * @notice Adds a string value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The string value to add\n */\n function add(\n Request memory self,\n string memory key,\n string memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeString(value);\n }\n\n /**\n * @notice Adds a bytes value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The bytes value to add\n */\n function addBytes(\n Request memory self,\n string memory key,\n bytes memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeBytes(value);\n }\n\n /**\n * @notice Adds a int256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The int256 value to add\n */\n function addInt(\n Request memory self,\n string memory key,\n int256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeInt(value);\n }\n\n /**\n * @notice Adds a uint256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The uint256 value to add\n */\n function addUint(\n Request memory self,\n string memory key,\n uint256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeUInt(value);\n }\n\n /**\n * @notice Adds an array of strings to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param values The array of string values to add\n */\n function addStringArray(\n Request memory self,\n string memory key,\n string[] memory values\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.startArray();\n for (uint256 i = 0; i < values.length; i++) {\n self.buf.encodeString(values[i]);\n }\n self.buf.endSequence();\n }\n}\n"},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./Chainlink.sol\";\nimport \"./interfaces/ENSInterface.sol\";\nimport \"./interfaces/LinkTokenInterface.sol\";\nimport \"./interfaces/ChainlinkRequestInterface.sol\";\nimport \"./interfaces/OperatorInterface.sol\";\nimport \"./interfaces/PointerInterface.sol\";\nimport {ENSResolver as ENSResolver_Chainlink} from \"./vendor/ENSResolver.sol\";\n\n/**\n * @title The ChainlinkClient contract\n * @notice Contract writers can inherit this contract in order to create requests for the\n * Chainlink network\n */\nabstract contract ChainlinkClient {\n using Chainlink for Chainlink.Request;\n\n uint256 internal constant LINK_DIVISIBILITY = 10**18;\n uint256 private constant AMOUNT_OVERRIDE = 0;\n address private constant SENDER_OVERRIDE = address(0);\n uint256 private constant ORACLE_ARGS_VERSION = 1;\n uint256 private constant OPERATOR_ARGS_VERSION = 2;\n bytes32 private constant ENS_TOKEN_SUBNAME = keccak256(\"link\");\n bytes32 private constant ENS_ORACLE_SUBNAME = keccak256(\"oracle\");\n address private constant LINK_TOKEN_POINTER = 0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571;\n\n ENSInterface private s_ens;\n bytes32 private s_ensNode;\n LinkTokenInterface private s_link;\n OperatorInterface private s_oracle;\n uint256 private s_requestCount = 1;\n mapping(bytes32 => address) private s_pendingRequests;\n\n event ChainlinkRequested(bytes32 indexed id);\n event ChainlinkFulfilled(bytes32 indexed id);\n event ChainlinkCancelled(bytes32 indexed id);\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackAddr address to operate the callback on\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildChainlinkRequest(\n bytes32 specId,\n address callbackAddr,\n bytes4 callbackFunctionSignature\n ) internal pure returns (Chainlink.Request memory) {\n Chainlink.Request memory req;\n return req.initialize(specId, callbackAddr, callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildOperatorRequest(bytes32 specId, bytes4 callbackFunctionSignature)\n internal\n view\n returns (Chainlink.Request memory)\n {\n Chainlink.Request memory req;\n return req.initialize(specId, address(this), callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev Calls `chainlinkRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendChainlinkRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n ChainlinkRequestInterface.oracleRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n address(this),\n req.callbackFunctionId,\n nonce,\n ORACLE_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev This function supports multi-word response\n * @dev Calls `sendOperatorRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendOperatorRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev This function supports multi-word response\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n OperatorInterface.operatorRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n req.callbackFunctionId,\n nonce,\n OPERATOR_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Make a request to an oracle\n * @param oracleAddress The address of the oracle for the request\n * @param nonce used to generate the request ID\n * @param payment The amount of LINK to send for the request\n * @param encodedRequest data encoded for request type specific format\n * @return requestId The request ID\n */\n function _rawRequest(\n address oracleAddress,\n uint256 nonce,\n uint256 payment,\n bytes memory encodedRequest\n ) private returns (bytes32 requestId) {\n requestId = keccak256(abi.encodePacked(this, nonce));\n s_pendingRequests[requestId] = oracleAddress;\n emit ChainlinkRequested(requestId);\n require(s_link.transferAndCall(oracleAddress, payment, encodedRequest), \"unable to transferAndCall to oracle\");\n }\n\n /**\n * @notice Allows a request to be cancelled if it has not been fulfilled\n * @dev Requires keeping track of the expiration value emitted from the oracle contract.\n * Deletes the request from the `pendingRequests` mapping.\n * Emits ChainlinkCancelled event.\n * @param requestId The request ID\n * @param payment The amount of LINK sent for the request\n * @param callbackFunc The callback function specified for the request\n * @param expiration The time of the expiration for the request\n */\n function cancelChainlinkRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunc,\n uint256 expiration\n ) internal {\n OperatorInterface requested = OperatorInterface(s_pendingRequests[requestId]);\n delete s_pendingRequests[requestId];\n emit ChainlinkCancelled(requestId);\n requested.cancelOracleRequest(requestId, payment, callbackFunc, expiration);\n }\n\n /**\n * @notice the next request count to be used in generating a nonce\n * @dev starts at 1 in order to ensure consistent gas cost\n * @return returns the next request count to be used in a nonce\n */\n function getNextRequestCount() internal view returns (uint256) {\n return s_requestCount;\n }\n\n /**\n * @notice Sets the stored oracle address\n * @param oracleAddress The address of the oracle contract\n */\n function setChainlinkOracle(address oracleAddress) internal {\n s_oracle = OperatorInterface(oracleAddress);\n }\n\n /**\n * @notice Sets the LINK token address\n * @param linkAddress The address of the LINK token contract\n */\n function setChainlinkToken(address linkAddress) internal {\n s_link = LinkTokenInterface(linkAddress);\n }\n\n /**\n * @notice Sets the Chainlink token address for the public\n * network as given by the Pointer contract\n */\n function setPublicChainlinkToken() internal {\n setChainlinkToken(PointerInterface(LINK_TOKEN_POINTER).getAddress());\n }\n\n /**\n * @notice Retrieves the stored address of the LINK token\n * @return The address of the LINK token\n */\n function chainlinkTokenAddress() internal view returns (address) {\n return address(s_link);\n }\n\n /**\n * @notice Retrieves the stored address of the oracle contract\n * @return The address of the oracle contract\n */\n function chainlinkOracleAddress() internal view returns (address) {\n return address(s_oracle);\n }\n\n /**\n * @notice Allows for a request which was created on another contract to be fulfilled\n * on this contract\n * @param oracleAddress The address of the oracle contract that will fulfill the request\n * @param requestId The request ID used for the response\n */\n function addChainlinkExternalRequest(address oracleAddress, bytes32 requestId) internal notPendingRequest(requestId) {\n s_pendingRequests[requestId] = oracleAddress;\n }\n\n /**\n * @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n * @dev Accounts for subnodes having different resolvers\n * @param ensAddress The address of the ENS contract\n * @param node The ENS node hash\n */\n function useChainlinkWithENS(address ensAddress, bytes32 node) internal {\n s_ens = ENSInterface(ensAddress);\n s_ensNode = node;\n bytes32 linkSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_TOKEN_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(linkSubnode));\n setChainlinkToken(resolver.addr(linkSubnode));\n updateChainlinkOracleWithENS();\n }\n\n /**\n * @notice Sets the stored oracle contract with the address resolved by ENS\n * @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously\n */\n function updateChainlinkOracleWithENS() internal {\n bytes32 oracleSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_ORACLE_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(oracleSubnode));\n setChainlinkOracle(resolver.addr(oracleSubnode));\n }\n\n /**\n * @notice Ensures that the fulfillment is valid for this contract\n * @dev Use if the contract developer prefers methods instead of modifiers for validation\n * @param requestId The request ID for fulfillment\n */\n function validateChainlinkCallback(bytes32 requestId)\n internal\n recordChainlinkFulfillment(requestId)\n // solhint-disable-next-line no-empty-blocks\n {\n\n }\n\n /**\n * @dev Reverts if the sender is not the oracle of the request.\n * Emits ChainlinkFulfilled event.\n * @param requestId The request ID for fulfillment\n */\n modifier recordChainlinkFulfillment(bytes32 requestId) {\n require(msg.sender == s_pendingRequests[requestId], \"Source must be the oracle of the request\");\n delete s_pendingRequests[requestId];\n emit ChainlinkFulfilled(requestId);\n _;\n }\n\n /**\n * @dev Reverts if the request is already pending\n * @param requestId The request ID for fulfillment\n */\n modifier notPendingRequest(bytes32 requestId) {\n require(s_pendingRequests[requestId] == address(0), \"Request is already pending\");\n _;\n }\n}\n"},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./ConfirmedOwnerWithProposal.sol\";\n\n/**\n * @title The ConfirmedOwner contract\n * @notice A contract with helpers for basic contract ownership.\n */\ncontract ConfirmedOwner is ConfirmedOwnerWithProposal {\n constructor(address newOwner) ConfirmedOwnerWithProposal(newOwner, address(0)) {}\n}\n"},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./interfaces/OwnableInterface.sol\";\n\n/**\n * @title The ConfirmedOwner contract\n * @notice A contract with helpers for basic contract ownership.\n */\ncontract ConfirmedOwnerWithProposal is OwnableInterface {\n address private s_owner;\n address private s_pendingOwner;\n\n event OwnershipTransferRequested(address indexed from, address indexed to);\n event OwnershipTransferred(address indexed from, address indexed to);\n\n constructor(address newOwner, address pendingOwner) {\n require(newOwner != address(0), \"Cannot set owner to zero\");\n\n s_owner = newOwner;\n if (pendingOwner != address(0)) {\n _transferOwnership(pendingOwner);\n }\n }\n\n /**\n * @notice Allows an owner to begin transferring ownership to a new address,\n * pending.\n */\n function transferOwnership(address to) public override onlyOwner {\n _transferOwnership(to);\n }\n\n /**\n * @notice Allows an ownership transfer to be completed by the recipient.\n */\n function acceptOwnership() external override {\n require(msg.sender == s_pendingOwner, \"Must be proposed owner\");\n\n address oldOwner = s_owner;\n s_owner = msg.sender;\n s_pendingOwner = address(0);\n\n emit OwnershipTransferred(oldOwner, msg.sender);\n }\n\n /**\n * @notice Get the current owner\n */\n function owner() public view override returns (address) {\n return s_owner;\n }\n\n /**\n * @notice validate, transfer ownership, and emit relevant events\n */\n function _transferOwnership(address to) private {\n require(to != msg.sender, \"Cannot transfer to self\");\n\n s_pendingOwner = to;\n\n emit OwnershipTransferRequested(s_owner, to);\n }\n\n /**\n * @notice validate access\n */\n function _validateOwnership() internal view {\n require(msg.sender == s_owner, \"Only callable by owner\");\n }\n\n /**\n * @notice Reverts if called by anyone other than the contract owner.\n */\n modifier onlyOwner() {\n _validateOwnership();\n _;\n }\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ChainlinkRequestInterface {\n function oracleRequest(\n address sender,\n uint256 requestPrice,\n bytes32 serviceAgreementID,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function cancelOracleRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunctionId,\n uint256 expiration\n ) external;\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ENSInterface {\n // Logged when the owner of a node assigns a new owner to a subnode.\n event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);\n\n // Logged when the owner of a node transfers ownership to a new account.\n event Transfer(bytes32 indexed node, address owner);\n\n // Logged when the resolver for a node changes.\n event NewResolver(bytes32 indexed node, address resolver);\n\n // Logged when the TTL of a node changes\n event NewTTL(bytes32 indexed node, uint64 ttl);\n\n function setSubnodeOwner(\n bytes32 node,\n bytes32 label,\n address owner\n ) external;\n\n function setResolver(bytes32 node, address resolver) external;\n\n function setOwner(bytes32 node, address owner) external;\n\n function setTTL(bytes32 node, uint64 ttl) external;\n\n function owner(bytes32 node) external view returns (address);\n\n function resolver(bytes32 node) external view returns (address);\n\n function ttl(bytes32 node) external view returns (uint64);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface LinkTokenInterface {\n function allowance(address owner, address spender) external view returns (uint256 remaining);\n\n function approve(address spender, uint256 value) external returns (bool success);\n\n function balanceOf(address owner) external view returns (uint256 balance);\n\n function decimals() external view returns (uint8 decimalPlaces);\n\n function decreaseApproval(address spender, uint256 addedValue) external returns (bool success);\n\n function increaseApproval(address spender, uint256 subtractedValue) external;\n\n function name() external view returns (string memory tokenName);\n\n function symbol() external view returns (string memory tokenSymbol);\n\n function totalSupply() external view returns (uint256 totalTokensIssued);\n\n function transfer(address to, uint256 value) external returns (bool success);\n\n function transferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool success);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./OracleInterface.sol\";\nimport \"./ChainlinkRequestInterface.sol\";\n\ninterface OperatorInterface is OracleInterface, ChainlinkRequestInterface {\n function operatorRequest(\n address sender,\n uint256 payment,\n bytes32 specId,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function fulfillOracleRequest2(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes calldata data\n ) external returns (bool);\n\n function ownerTransferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function distributeFunds(address payable[] calldata receivers, uint256[] calldata amounts) external payable;\n\n function getAuthorizedSenders() external returns (address[] memory);\n\n function setAuthorizedSenders(address[] calldata senders) external;\n\n function getForwarder() external returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface OracleInterface {\n function fulfillOracleRequest(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes32 data\n ) external returns (bool);\n\n function isAuthorizedSender(address node) external view returns (bool);\n\n function withdraw(address recipient, uint256 amount) external;\n\n function withdrawable() external view returns (uint256);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface OwnableInterface {\n function owner() external returns (address);\n\n function transferOwnership(address recipient) external;\n\n function acceptOwnership() external;\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface PointerInterface {\n function getAddress() external view returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/**\n * @dev A library for working with mutable byte buffers in Solidity.\n *\n * Byte buffers are mutable and expandable, and provide a variety of primitives\n * for writing to them. At any time you can fetch a bytes object containing the\n * current contents of the buffer. The bytes object should not be stored between\n * operations, as it may change due to resizing of the buffer.\n */\nlibrary BufferChainlink {\n /**\n * @dev Represents a mutable buffer. Buffers have a current value (buf) and\n * a capacity. The capacity may be longer than the current value, in\n * which case it can be extended without the need to allocate more memory.\n */\n struct buffer {\n bytes buf;\n uint256 capacity;\n }\n\n /**\n * @dev Initializes a buffer with an initial capacity.\n * @param buf The buffer to initialize.\n * @param capacity The number of bytes of space to allocate the buffer.\n * @return The buffer, for chaining.\n */\n function init(buffer memory buf, uint256 capacity) internal pure returns (buffer memory) {\n if (capacity % 32 != 0) {\n capacity += 32 - (capacity % 32);\n }\n // Allocate space for the buffer data\n buf.capacity = capacity;\n assembly {\n let ptr := mload(0x40)\n mstore(buf, ptr)\n mstore(ptr, 0)\n mstore(0x40, add(32, add(ptr, capacity)))\n }\n return buf;\n }\n\n /**\n * @dev Initializes a new buffer from an existing bytes object.\n * Changes to the buffer may mutate the original value.\n * @param b The bytes object to initialize the buffer with.\n * @return A new buffer.\n */\n function fromBytes(bytes memory b) internal pure returns (buffer memory) {\n buffer memory buf;\n buf.buf = b;\n buf.capacity = b.length;\n return buf;\n }\n\n function resize(buffer memory buf, uint256 capacity) private pure {\n bytes memory oldbuf = buf.buf;\n init(buf, capacity);\n append(buf, oldbuf);\n }\n\n function max(uint256 a, uint256 b) private pure returns (uint256) {\n if (a > b) {\n return a;\n }\n return b;\n }\n\n /**\n * @dev Sets buffer length to 0.\n * @param buf The buffer to truncate.\n * @return The original buffer, for chaining..\n */\n function truncate(buffer memory buf) internal pure returns (buffer memory) {\n assembly {\n let bufptr := mload(buf)\n mstore(bufptr, 0)\n }\n return buf;\n }\n\n /**\n * @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The start offset to write to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n require(len <= data.length);\n\n if (off + len > buf.capacity) {\n resize(buf, max(buf.capacity, len + off) * 2);\n }\n\n uint256 dest;\n uint256 src;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Start address = buffer address + offset + sizeof(buffer length)\n dest := add(add(bufptr, 32), off)\n // Update buffer length if we're extending it\n if gt(add(len, off), buflen) {\n mstore(bufptr, add(len, off))\n }\n src := add(data, 32)\n }\n\n // Copy word-length chunks while possible\n for (; len >= 32; len -= 32) {\n assembly {\n mstore(dest, mload(src))\n }\n dest += 32;\n src += 32;\n }\n\n // Copy remaining bytes\n unchecked {\n uint256 mask = (256**(32 - len)) - 1;\n assembly {\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n }\n }\n\n return buf;\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function append(\n buffer memory buf,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, len);\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function append(buffer memory buf, bytes memory data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, data.length);\n }\n\n /**\n * @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write the byte at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeUint8(\n buffer memory buf,\n uint256 off,\n uint8 data\n ) internal pure returns (buffer memory) {\n if (off >= buf.capacity) {\n resize(buf, buf.capacity * 2);\n }\n\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Address = buffer address + sizeof(buffer length) + off\n let dest := add(add(bufptr, off), 32)\n mstore8(dest, data)\n // Update buffer length if we extended it\n if eq(off, buflen) {\n mstore(bufptr, add(buflen, 1))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendUint8(buffer memory buf, uint8 data) internal pure returns (buffer memory) {\n return writeUint8(buf, buf.buf.length, data);\n }\n\n /**\n * @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (left-aligned).\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes32 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n unchecked {\n uint256 mask = (256**len) - 1;\n // Right-align data\n data = data >> (8 * (32 - len));\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + sizeof(buffer length) + off + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n }\n return buf;\n }\n\n /**\n * @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeBytes20(\n buffer memory buf,\n uint256 off,\n bytes20 data\n ) internal pure returns (buffer memory) {\n return write(buf, off, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chhaining.\n */\n function appendBytes20(buffer memory buf, bytes20 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendBytes32(buffer memory buf, bytes32 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, 32);\n }\n\n /**\n * @dev Writes an integer to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (right-aligned).\n * @return The original buffer, for chaining.\n */\n function writeInt(\n buffer memory buf,\n uint256 off,\n uint256 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n uint256 mask = (256**len) - 1;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + off + sizeof(buffer length) + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the end of the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer.\n */\n function appendInt(\n buffer memory buf,\n uint256 data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return writeInt(buf, buf.buf.length, data, len);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.4.19;\n\nimport {BufferChainlink} from \"./BufferChainlink.sol\";\n\nlibrary CBORChainlink {\n using BufferChainlink for BufferChainlink.buffer;\n\n uint8 private constant MAJOR_TYPE_INT = 0;\n uint8 private constant MAJOR_TYPE_NEGATIVE_INT = 1;\n uint8 private constant MAJOR_TYPE_BYTES = 2;\n uint8 private constant MAJOR_TYPE_STRING = 3;\n uint8 private constant MAJOR_TYPE_ARRAY = 4;\n uint8 private constant MAJOR_TYPE_MAP = 5;\n uint8 private constant MAJOR_TYPE_TAG = 6;\n uint8 private constant MAJOR_TYPE_CONTENT_FREE = 7;\n\n uint8 private constant TAG_TYPE_BIGNUM = 2;\n uint8 private constant TAG_TYPE_NEGATIVE_BIGNUM = 3;\n\n function encodeFixedNumeric(BufferChainlink.buffer memory buf, uint8 major, uint64 value) private pure {\n if(value <= 23) {\n buf.appendUint8(uint8((major << 5) | value));\n } else if (value <= 0xFF) {\n buf.appendUint8(uint8((major << 5) | 24));\n buf.appendInt(value, 1);\n } else if (value <= 0xFFFF) {\n buf.appendUint8(uint8((major << 5) | 25));\n buf.appendInt(value, 2);\n } else if (value <= 0xFFFFFFFF) {\n buf.appendUint8(uint8((major << 5) | 26));\n buf.appendInt(value, 4);\n } else {\n buf.appendUint8(uint8((major << 5) | 27));\n buf.appendInt(value, 8);\n }\n }\n\n function encodeIndefiniteLengthType(BufferChainlink.buffer memory buf, uint8 major) private pure {\n buf.appendUint8(uint8((major << 5) | 31));\n }\n\n function encodeUInt(BufferChainlink.buffer memory buf, uint value) internal pure {\n if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, value);\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(value));\n }\n }\n\n function encodeInt(BufferChainlink.buffer memory buf, int value) internal pure {\n if(value < -0x10000000000000000) {\n encodeSignedBigNum(buf, value);\n } else if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, uint(value));\n } else if(value >= 0) {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(uint256(value)));\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_NEGATIVE_INT, uint64(uint256(-1 - value)));\n }\n }\n\n function encodeBytes(BufferChainlink.buffer memory buf, bytes memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_BYTES, uint64(value.length));\n buf.append(value);\n }\n\n function encodeBigNum(BufferChainlink.buffer memory buf, uint value) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_BIGNUM));\n encodeBytes(buf, abi.encode(value));\n }\n\n function encodeSignedBigNum(BufferChainlink.buffer memory buf, int input) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_NEGATIVE_BIGNUM));\n encodeBytes(buf, abi.encode(uint256(-1 - input)));\n }\n\n function encodeString(BufferChainlink.buffer memory buf, string memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_STRING, uint64(bytes(value).length));\n buf.append(bytes(value));\n }\n\n function startArray(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_ARRAY);\n }\n\n function startMap(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_MAP);\n }\n\n function endSequence(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_CONTENT_FREE);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nabstract contract ENSResolver {\n function addr(bytes32 node) public view virtual returns (address);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n enum Rounding {\n Down, // Toward negative infinity\n Up, // Toward infinity\n Zero // Toward zero\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds up instead\n * of rounding down.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n * with further edits by Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod0 := mul(x, y)\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n require(denominator > prod1, \"Math: mulDiv overflow\");\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\n // See https://cs.stackexchange.com/q/138556/92363.\n\n // Does not overflow because the denominator cannot be zero at this stage in the function.\n uint256 twos = denominator & (~denominator + 1);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\n // in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2, rounded down, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10, rounded down, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256, rounded down, of a positive value.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol)\n\npragma solidity ^0.8.0;\n\n// CAUTION\n// This version of SafeMath should only be used with Solidity 0.8 or later,\n// because it relies on the compiler's built in overflow checks.\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations.\n *\n * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler\n * now has built in overflow checking.\n */\nlibrary SafeMath {\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 unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction 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 unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\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 unchecked {\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 /**\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 unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\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 unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\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 return a + b;\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 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 return a * b;\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.\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\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 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 unchecked {\n require(b <= a, errorMessage);\n return a - b;\n }\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 * 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 unchecked {\n require(b > 0, errorMessage);\n return a / b;\n }\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 unchecked {\n require(b > 0, errorMessage);\n return a % b;\n }\n }\n}\n"},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\nimport \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n uint8 private constant _ADDRESS_LENGTH = 20;\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toString(int256 value) internal pure returns (string memory) {\n return string(abi.encodePacked(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value))));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = _SYMBOLS[value & 0xf];\n value >>= 4;\n }\n require(value == 0, \"Strings: hex length insufficient\");\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n"},"contracts/AdmodConsumer.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.17;\n\nimport \"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\";\nimport \"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\";\nimport \"@openzeppelin/contracts/utils/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\"; \n\ncontract AdmodConsumer is ChainlinkClient, ConfirmedOwner {\n using Chainlink for Chainlink.Request;\n\n using SafeMath for uint;\n\n\n // the earning amount of this week\n uint256 public earning;\n\n // the amount of LINK bought from Transak with $earning amount\n uint256 public price;\n \n // 2 separate jobId for google AdmodAPI and TransakAPI\n bytes32 public ggJobId;\n bytes32 public transakJobId;\n\n uint256 private fee;\n mapping(uint256 => uint256) public earningReports;\n bool public isEligible;\n\n /** \n * @notice\n * @beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it\n * In this 0xSplits contract will contain the list of charity organizations' addresses\n */\n address public beneficiary;\n\n event RequestEarning(bytes32 indexed requestId, uint256 earning);\n event RequestBoughtAmount(bytes32 indexed requestId, uint256 price);\n\n\n /**\n * @notice Initialize the link token and target oracle\n *\n * Mumbai Testnet details:\n * Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB\n * Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 \n * jobId: b1d42cd54a3a4200b1f725a68e488888\n *\n */\n constructor(address _owner, address _beneficiary) ConfirmedOwner(_owner) {\n setChainlinkToken(0x326C977E6efc84E512bB9C30f76E30c160eD06FB);\n setChainlinkOracle(0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5);\n ggJobId = \"b1d42cd54a3a4200b1f725a68e488888\";\n transakJobId = \"b1d42cd54a3a4200b1f725a68e488888\";\n fee = (1 * LINK_DIVISIBILITY) / 10; // 0,1 * 10**18 (Varies by network and job)\n beneficiary = _beneficiary;\n isEligible = false;\n }\n\n /**\n * Create a Chainlink request to retrieve API response, find the target\n * data, then multiply by 1000000000000000000 (to remove decimal places from data).\n */\n function requestWeekEarning() public returns (bytes32 requestId) {\n Chainlink.Request memory req = buildChainlinkRequest(\n ggJobId,\n address(this),\n this.fulfill.selector\n );\n\n // Set the URL to perform the GET request on\n req.add(\n \"get\",\n \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\"\n );\n\n req.add(\"path\", \"row,metricValues,ESTIMATED_EARNINGS,microsValue\");\n\n // Sends the request\n return sendChainlinkRequest(req, fee);\n }\n\n /** @notice\n * Receive the response in the form of uint256\n */\n function fulfill(\n bytes32 _requestId,\n uint256 _earning\n ) public recordChainlinkFulfillment(_requestId) {\n emit RequestEarning(_requestId, _earning);\n /** \n @notice earning will be a total of earning this week subtract for Transak transaction fee\n */\n earning = SafeMath.div(_earning,100000);\n _requestTransakValidation();\n }\n\n function _requestTransakValidation() private returns (bytes32 requestId) {\n Chainlink.Request memory req = buildChainlinkRequest(\n transakJobId,\n address(this),\n this.fulfillTransakPrice.selector\n );\n\n string memory apiUrl = string(abi.encodePacked(\"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount=\", Strings.toString(earning)));\n\n // Set the URL to perform the GET request on\n req.add(\n \"get\",\n apiUrl\n );\n\n req.add(\"path\", \"response,fiatAmount\");\n\n // Sends the request\n return sendChainlinkRequest(req, fee);\n }\n\n function fulfillTransakPrice(\n bytes32 _requestId,\n uint256 _price\n ) public recordChainlinkFulfillment(_requestId) {\n emit RequestBoughtAmount(_requestId, _price);\n /** \n @notice earning will be a total of earning this week subtract for Transak transaction fee\n */\n price = _price;\n _checkEligibleEarning();\n }\n\n /** @notice\n * Allow withdraw of Link tokens from the contract\n * LINK will always be sent to beneficiary 0xSplits contract\n */\n\n function withdrawLink() public onlyOwner {\n LinkTokenInterface link = LinkTokenInterface(chainlinkTokenAddress());\n require(\n link.transfer(beneficiary, link.balanceOf(address(this))),\n \"Unable to transfer\"\n );\n }\n\n function _checkEligibleEarning() private {\n LinkTokenInterface link = LinkTokenInterface(chainlinkTokenAddress());\n if (link.balanceOf(beneficiary) == earning)\n {\n earningReports[block.number] = earning;\n isEligible = true;\n }\n else isEligible = false;\n }\n\n}"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268]},"id":269,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:0"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","file":"./vendor/CBORChainlink.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":2364,"src":"57:57:0","symbolAliases":[{"foreign":{"id":2,"name":"CBORChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2363,"src":"65:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./vendor/BufferChainlink.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":1917,"src":"115:61:0","symbolAliases":[{"foreign":{"id":4,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"123:15:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Chainlink","contractDependencies":[],"contractKind":"library","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"178:114:0","text":" @title Library for common Chainlink functions\n @dev Uses imported CBOR library for encoding to buffer"},"fullyImplemented":true,"id":268,"linearizedBaseContracts":[268],"name":"Chainlink","nameLocation":"301:9:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":9,"mutability":"constant","name":"defaultBufferSize","nameLocation":"341:17:0","nodeType":"VariableDeclaration","scope":268,"src":"315:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"323536","id":8,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"361:3:0","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"internal"},{"global":false,"id":13,"libraryName":{"id":10,"name":"CBORChainlink","nameLocations":["420:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":2363,"src":"420:13:0"},"nodeType":"UsingForDirective","src":"414:47:0","typeName":{"id":12,"nodeType":"UserDefinedTypeName","pathNode":{"id":11,"name":"BufferChainlink.buffer","nameLocations":["438:15:0","454:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"438:22:0"},"referencedDeclaration":1402,"src":"438:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"canonicalName":"Chainlink.Request","id":25,"members":[{"constant":false,"id":15,"mutability":"mutable","name":"id","nameLocation":"494:2:0","nodeType":"VariableDeclaration","scope":25,"src":"486:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14,"name":"bytes32","nodeType":"ElementaryTypeName","src":"486:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"callbackAddress","nameLocation":"510:15:0","nodeType":"VariableDeclaration","scope":25,"src":"502:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"502:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"538:18:0","nodeType":"VariableDeclaration","scope":25,"src":"531:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18,"name":"bytes4","nodeType":"ElementaryTypeName","src":"531:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"nonce","nameLocation":"570:5:0","nodeType":"VariableDeclaration","scope":25,"src":"562:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24,"mutability":"mutable","name":"buf","nameLocation":"604:3:0","nodeType":"VariableDeclaration","scope":25,"src":"581:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":23,"nodeType":"UserDefinedTypeName","pathNode":{"id":22,"name":"BufferChainlink.buffer","nameLocations":["581:15:0","597:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"581:22:0"},"referencedDeclaration":1402,"src":"581:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"name":"Request","nameLocation":"472:7:0","nodeType":"StructDefinition","scope":268,"src":"465:147:0","visibility":"public"},{"body":{"id":69,"nodeType":"Block","src":"1155:183:0","statements":[{"expression":{"arguments":[{"expression":{"id":44,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1182:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":45,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1187:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1182:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":46,"name":"defaultBufferSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9,"src":"1192:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1161:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":43,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1177:4:0","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"1161:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":48,"nodeType":"ExpressionStatement","src":"1161:49:0"},{"expression":{"id":53,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1216:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":51,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1221:2:0","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"1216:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"1226:5:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1216:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54,"nodeType":"ExpressionStatement","src":"1216:15:0"},{"expression":{"id":59,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1237:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":57,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1242:15:0","memberName":"callbackAddress","nodeType":"MemberAccess","referencedDeclaration":17,"src":"1237:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"1260:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1237:35:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":60,"nodeType":"ExpressionStatement","src":"1237:35:0"},{"expression":{"id":65,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":61,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1278:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":63,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1283:18:0","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"1278:23:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":64,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"1304:12:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1278:38:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":66,"nodeType":"ExpressionStatement","src":"1278:38:0"},{"expression":{"id":67,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1329:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":40,"id":68,"nodeType":"Return","src":"1322:11:0"}]},"documentation":{"id":26,"nodeType":"StructuredDocumentation","src":"616:368:0","text":" @notice Initializes a Chainlink request\n @dev Sets the ID, callback address, and callback function signature on the request\n @param self The uninitialized request\n @param jobId The Job Specification ID\n @param callbackAddr The callback address\n @param callbackFunc The callback function signature\n @return The initialized request"},"id":70,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"996:10:0","nodeType":"FunctionDefinition","parameters":{"id":36,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29,"mutability":"mutable","name":"self","nameLocation":"1027:4:0","nodeType":"VariableDeclaration","scope":70,"src":"1012:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":28,"nodeType":"UserDefinedTypeName","pathNode":{"id":27,"name":"Request","nameLocations":["1012:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1012:7:0"},"referencedDeclaration":25,"src":"1012:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":31,"mutability":"mutable","name":"jobId","nameLocation":"1045:5:0","nodeType":"VariableDeclaration","scope":70,"src":"1037:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":30,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1037:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33,"mutability":"mutable","name":"callbackAddr","nameLocation":"1064:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1056:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35,"mutability":"mutable","name":"callbackFunc","nameLocation":"1089:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1082:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":34,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1082:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1006:99:0"},"returnParameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70,"src":"1129:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":38,"nodeType":"UserDefinedTypeName","pathNode":{"id":37,"name":"Chainlink.Request","nameLocations":["1129:9:0","1139:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1129:17:0"},"referencedDeclaration":25,"src":"1129:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1128:26:0"},"scope":268,"src":"987:351:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":96,"nodeType":"Block","src":"1648:98:0","statements":[{"expression":{"arguments":[{"expression":{"id":82,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1675:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":83,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1680:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1675:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"id":84,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1685:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1690:6:0","memberName":"length","nodeType":"MemberAccess","src":"1685:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1654:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":81,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1670:4:0","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"1654:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":86,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":87,"nodeType":"ExpressionStatement","src":"1654:43:0"},{"expression":{"arguments":[{"expression":{"id":91,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1726:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":92,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1731:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1726:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":93,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1736:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":88,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1703:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:6:0","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"1703:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1703:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":95,"nodeType":"ExpressionStatement","src":"1703:38:0"}]},"documentation":{"id":71,"nodeType":"StructuredDocumentation","src":"1342:230:0","text":" @notice Sets the data for the buffer without encoding CBOR on-chain\n @dev CBOR can be closed with curly-brackets {} or they can be left off\n @param self The initialized request\n @param data The CBOR data"},"id":97,"implemented":true,"kind":"function","modifiers":[],"name":"setBuffer","nameLocation":"1584:9:0","nodeType":"FunctionDefinition","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"self","nameLocation":"1609:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1594:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":73,"nodeType":"UserDefinedTypeName","pathNode":{"id":72,"name":"Request","nameLocations":["1594:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1594:7:0"},"referencedDeclaration":25,"src":"1594:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":76,"mutability":"mutable","name":"data","nameLocation":"1628:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1615:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75,"name":"bytes","nodeType":"ElementaryTypeName","src":"1615:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1593:40:0"},"returnParameters":{"id":78,"nodeType":"ParameterList","parameters":[],"src":"1648:0:0"},"scope":268,"src":"1575:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":124,"nodeType":"Block","src":"2055:71:0","statements":[{"expression":{"arguments":[{"id":113,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2083:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":108,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2061:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2066:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2061:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2070:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2061:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2061:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":115,"nodeType":"ExpressionStatement","src":"2061:26:0"},{"expression":{"arguments":[{"id":121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"2115:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2093:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2098:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2093:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2102:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2093:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2093:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":123,"nodeType":"ExpressionStatement","src":"2093:28:0"}]},"documentation":{"id":98,"nodeType":"StructuredDocumentation","src":"1750:198:0","text":" @notice Adds a string value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The string value to add"},"id":125,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"1960:3:0","nodeType":"FunctionDefinition","parameters":{"id":106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"self","nameLocation":"1984:4:0","nodeType":"VariableDeclaration","scope":125,"src":"1969:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":100,"nodeType":"UserDefinedTypeName","pathNode":{"id":99,"name":"Request","nameLocations":["1969:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1969:7:0"},"referencedDeclaration":25,"src":"1969:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":103,"mutability":"mutable","name":"key","nameLocation":"2008:3:0","nodeType":"VariableDeclaration","scope":125,"src":"1994:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":102,"name":"string","nodeType":"ElementaryTypeName","src":"1994:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":105,"mutability":"mutable","name":"value","nameLocation":"2031:5:0","nodeType":"VariableDeclaration","scope":125,"src":"2017:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":104,"name":"string","nodeType":"ElementaryTypeName","src":"2017:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1963:77:0"},"returnParameters":{"id":107,"nodeType":"ParameterList","parameters":[],"src":"2055:0:0"},"scope":268,"src":"1951:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":152,"nodeType":"Block","src":"2437:70:0","statements":[{"expression":{"arguments":[{"id":141,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"2465:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":136,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2443:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2448:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2443:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2452:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2443:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":143,"nodeType":"ExpressionStatement","src":"2443:26:0"},{"expression":{"arguments":[{"id":149,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"2496:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":144,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2475:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2480:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2475:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2484:11:0","memberName":"encodeBytes","nodeType":"MemberAccess","referencedDeclaration":2227,"src":"2475:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2475:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":151,"nodeType":"ExpressionStatement","src":"2475:27:0"}]},"documentation":{"id":126,"nodeType":"StructuredDocumentation","src":"2130:196:0","text":" @notice Adds a bytes value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The bytes value to add"},"id":153,"implemented":true,"kind":"function","modifiers":[],"name":"addBytes","nameLocation":"2338:8:0","nodeType":"FunctionDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"self","nameLocation":"2367:4:0","nodeType":"VariableDeclaration","scope":153,"src":"2352:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":128,"nodeType":"UserDefinedTypeName","pathNode":{"id":127,"name":"Request","nameLocations":["2352:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2352:7:0"},"referencedDeclaration":25,"src":"2352:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":131,"mutability":"mutable","name":"key","nameLocation":"2391:3:0","nodeType":"VariableDeclaration","scope":153,"src":"2377:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":130,"name":"string","nodeType":"ElementaryTypeName","src":"2377:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"value","nameLocation":"2413:5:0","nodeType":"VariableDeclaration","scope":153,"src":"2400:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":132,"name":"bytes","nodeType":"ElementaryTypeName","src":"2400:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2346:76:0"},"returnParameters":{"id":135,"nodeType":"ParameterList","parameters":[],"src":"2437:0:0"},"scope":268,"src":"2329:178:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":180,"nodeType":"Block","src":"2812:68:0","statements":[{"expression":{"arguments":[{"id":169,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":159,"src":"2840:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":164,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2818:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2823:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2818:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2827:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2818:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":171,"nodeType":"ExpressionStatement","src":"2818:26:0"},{"expression":{"arguments":[{"id":177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"2869:5:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"expression":{"id":172,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2850:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2855:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2850:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2859:9:0","memberName":"encodeInt","nodeType":"MemberAccess","referencedDeclaration":2202,"src":"2850:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_int256_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":179,"nodeType":"ExpressionStatement","src":"2850:25:0"}]},"documentation":{"id":154,"nodeType":"StructuredDocumentation","src":"2511:198:0","text":" @notice Adds a int256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The int256 value to add"},"id":181,"implemented":true,"kind":"function","modifiers":[],"name":"addInt","nameLocation":"2721:6:0","nodeType":"FunctionDefinition","parameters":{"id":162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":157,"mutability":"mutable","name":"self","nameLocation":"2748:4:0","nodeType":"VariableDeclaration","scope":181,"src":"2733:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":156,"nodeType":"UserDefinedTypeName","pathNode":{"id":155,"name":"Request","nameLocations":["2733:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2733:7:0"},"referencedDeclaration":25,"src":"2733:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":159,"mutability":"mutable","name":"key","nameLocation":"2772:3:0","nodeType":"VariableDeclaration","scope":181,"src":"2758:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":158,"name":"string","nodeType":"ElementaryTypeName","src":"2758:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":161,"mutability":"mutable","name":"value","nameLocation":"2788:5:0","nodeType":"VariableDeclaration","scope":181,"src":"2781:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":160,"name":"int256","nodeType":"ElementaryTypeName","src":"2781:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2727:70:0"},"returnParameters":{"id":163,"nodeType":"ParameterList","parameters":[],"src":"2812:0:0"},"scope":268,"src":"2712:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":208,"nodeType":"Block","src":"3189:69:0","statements":[{"expression":{"arguments":[{"id":197,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":187,"src":"3217:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":192,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3195:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3200:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3195:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3204:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3195:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3195:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":199,"nodeType":"ExpressionStatement","src":"3195:26:0"},{"expression":{"arguments":[{"id":205,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"3247:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3227:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3232:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3227:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3236:10:0","memberName":"encodeUInt","nodeType":"MemberAccess","referencedDeclaration":2136,"src":"3227:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3227:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":207,"nodeType":"ExpressionStatement","src":"3227:26:0"}]},"documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"2884:200:0","text":" @notice Adds a uint256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The uint256 value to add"},"id":209,"implemented":true,"kind":"function","modifiers":[],"name":"addUint","nameLocation":"3096:7:0","nodeType":"FunctionDefinition","parameters":{"id":190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"self","nameLocation":"3124:4:0","nodeType":"VariableDeclaration","scope":209,"src":"3109:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":184,"nodeType":"UserDefinedTypeName","pathNode":{"id":183,"name":"Request","nameLocations":["3109:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3109:7:0"},"referencedDeclaration":25,"src":"3109:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":187,"mutability":"mutable","name":"key","nameLocation":"3148:3:0","nodeType":"VariableDeclaration","scope":209,"src":"3134:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":186,"name":"string","nodeType":"ElementaryTypeName","src":"3134:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":189,"mutability":"mutable","name":"value","nameLocation":"3165:5:0","nodeType":"VariableDeclaration","scope":209,"src":"3157:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":188,"name":"uint256","nodeType":"ElementaryTypeName","src":"3157:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3103:71:0"},"returnParameters":{"id":191,"nodeType":"ParameterList","parameters":[],"src":"3189:0:0"},"scope":268,"src":"3087:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":266,"nodeType":"Block","src":"3597:188:0","statements":[{"expression":{"arguments":[{"id":226,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":215,"src":"3625:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":221,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3603:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3608:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3603:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3612:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3603:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3603:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":228,"nodeType":"ExpressionStatement","src":"3603:26:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3635:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3640:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3635:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3644:10:0","memberName":"startArray","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"3635:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":235,"nodeType":"ExpressionStatement","src":"3635:21:0"},{"body":{"id":257,"nodeType":"Block","src":"3706:47:0","statements":[{"expression":{"arguments":[{"baseExpression":{"id":252,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3736:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":254,"indexExpression":{"id":253,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3743:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3736:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3714:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3719:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3714:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3723:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3714:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3714:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":256,"nodeType":"ExpressionStatement","src":"3714:32:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3682:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":241,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3686:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3693:6:0","memberName":"length","nodeType":"MemberAccess","src":"3686:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3682:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":258,"initializationExpression":{"assignments":[237],"declarations":[{"constant":false,"id":237,"mutability":"mutable","name":"i","nameLocation":"3675:1:0","nodeType":"VariableDeclaration","scope":258,"src":"3667:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":236,"name":"uint256","nodeType":"ElementaryTypeName","src":"3667:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":239,"initialValue":{"hexValue":"30","id":238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3679:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3667:13:0"},"loopExpression":{"expression":{"id":245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3701:3:0","subExpression":{"id":244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3701:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":246,"nodeType":"ExpressionStatement","src":"3701:3:0"},"nodeType":"ForStatement","src":"3662:91:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":259,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3758:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3763:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3758:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3767:11:0","memberName":"endSequence","nodeType":"MemberAccess","referencedDeclaration":2362,"src":"3758:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3758:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":265,"nodeType":"ExpressionStatement","src":"3758:22:0"}]},"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"3262:214:0","text":" @notice Adds an array of strings to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param values The array of string values to add"},"id":267,"implemented":true,"kind":"function","modifiers":[],"name":"addStringArray","nameLocation":"3488:14:0","nodeType":"FunctionDefinition","parameters":{"id":219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":213,"mutability":"mutable","name":"self","nameLocation":"3523:4:0","nodeType":"VariableDeclaration","scope":267,"src":"3508:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":212,"nodeType":"UserDefinedTypeName","pathNode":{"id":211,"name":"Request","nameLocations":["3508:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3508:7:0"},"referencedDeclaration":25,"src":"3508:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":215,"mutability":"mutable","name":"key","nameLocation":"3547:3:0","nodeType":"VariableDeclaration","scope":267,"src":"3533:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":214,"name":"string","nodeType":"ElementaryTypeName","src":"3533:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":218,"mutability":"mutable","name":"values","nameLocation":"3572:6:0","nodeType":"VariableDeclaration","scope":267,"src":"3556:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":216,"name":"string","nodeType":"ElementaryTypeName","src":"3556:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":217,"nodeType":"ArrayTypeName","src":"3556:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"3502:80:0"},"returnParameters":{"id":220,"nodeType":"ParameterList","parameters":[],"src":"3597:0:0"},"scope":268,"src":"3479:306:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":269,"src":"293:3494:0","usedErrors":[]}],"src":"32:3756:0"},"id":0},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[1076],"ENSInterface":[1156],"ENSResolver_Chainlink":[2373],"LinkTokenInterface":[1251],"OperatorInterface":[1331],"OracleInterface":[1370],"PointerInterface":[1394]},"id":862,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":270,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:1"},{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","file":"./Chainlink.sol","id":271,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":269,"src":"57:25:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","file":"./interfaces/ENSInterface.sol","id":272,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1157,"src":"83:39:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","file":"./interfaces/LinkTokenInterface.sol","id":273,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1252,"src":"123:45:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./interfaces/ChainlinkRequestInterface.sol","id":274,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1077,"src":"169:52:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","file":"./interfaces/OperatorInterface.sol","id":275,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1332,"src":"222:44:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","file":"./interfaces/PointerInterface.sol","id":276,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1395,"src":"267:43:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","file":"./vendor/ENSResolver.sol","id":278,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":2374,"src":"311:78:1","symbolAliases":[{"foreign":{"id":277,"name":"ENSResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"319:11:1","typeDescriptions":{}},"local":"ENSResolver_Chainlink","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"ChainlinkClient","contractDependencies":[],"contractKind":"contract","documentation":{"id":279,"nodeType":"StructuredDocumentation","src":"391:157:1","text":" @title The ChainlinkClient contract\n @notice Contract writers can inherit this contract in order to create requests for the\n Chainlink network"},"fullyImplemented":true,"id":861,"linearizedBaseContracts":[861],"name":"ChainlinkClient","nameLocation":"567:15:1","nodeType":"ContractDefinition","nodes":[{"global":false,"id":283,"libraryName":{"id":280,"name":"Chainlink","nameLocations":["593:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":268,"src":"593:9:1"},"nodeType":"UsingForDirective","src":"587:38:1","typeName":{"id":282,"nodeType":"UserDefinedTypeName","pathNode":{"id":281,"name":"Chainlink.Request","nameLocations":["607:9:1","617:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"607:17:1"},"referencedDeclaration":25,"src":"607:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"constant":true,"id":288,"mutability":"constant","name":"LINK_DIVISIBILITY","nameLocation":"655:17:1","nodeType":"VariableDeclaration","scope":861,"src":"629:52:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":284,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"675:2:1","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"679:2:1","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"675:6:1","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"internal"},{"constant":true,"id":291,"mutability":"constant","name":"AMOUNT_OVERRIDE","nameLocation":"710:15:1","nodeType":"VariableDeclaration","scope":861,"src":"685:44:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":289,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"728:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":297,"mutability":"constant","name":"SENDER_OVERRIDE","nameLocation":"758:15:1","nodeType":"VariableDeclaration","scope":861,"src":"733:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":292,"name":"address","nodeType":"ElementaryTypeName","src":"733:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"30","id":295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"784:1:1","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":294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"776:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":293,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:1","typeDescriptions":{}}},"id":296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"776:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":true,"id":300,"mutability":"constant","name":"ORACLE_ARGS_VERSION","nameLocation":"815:19:1","nodeType":"VariableDeclaration","scope":861,"src":"790:48:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":298,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":303,"mutability":"constant","name":"OPERATOR_ARGS_VERSION","nameLocation":"867:21:1","nodeType":"VariableDeclaration","scope":861,"src":"842:50:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint256","nodeType":"ElementaryTypeName","src":"842:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":308,"mutability":"constant","name":"ENS_TOKEN_SUBNAME","nameLocation":"921:17:1","nodeType":"VariableDeclaration","scope":861,"src":"896:62:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"896:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6c696e6b","id":306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"951:6:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""},"value":"link"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""}],"id":305,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"941:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"941:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":313,"mutability":"constant","name":"ENS_ORACLE_SUBNAME","nameLocation":"987:18:1","nodeType":"VariableDeclaration","scope":861,"src":"962:65:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"962:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6f7261636c65","id":311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1018:8:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""},"value":"oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""}],"id":310,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1008:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1008:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":316,"mutability":"constant","name":"LINK_TOKEN_POINTER","nameLocation":"1056:18:1","nodeType":"VariableDeclaration","scope":861,"src":"1031:88:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":314,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307843383962443445313633324433413433434230334141416435323632636265343033384263353731","id":315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571"},"visibility":"private"},{"constant":false,"id":319,"mutability":"mutable","name":"s_ens","nameLocation":"1145:5:1","nodeType":"VariableDeclaration","scope":861,"src":"1124:26:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"},"typeName":{"id":318,"nodeType":"UserDefinedTypeName","pathNode":{"id":317,"name":"ENSInterface","nameLocations":["1124:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":1156,"src":"1124:12:1"},"referencedDeclaration":1156,"src":"1124:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"visibility":"private"},{"constant":false,"id":321,"mutability":"mutable","name":"s_ensNode","nameLocation":"1170:9:1","nodeType":"VariableDeclaration","scope":861,"src":"1154:25:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1154:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":324,"mutability":"mutable","name":"s_link","nameLocation":"1210:6:1","nodeType":"VariableDeclaration","scope":861,"src":"1183:33:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"},"typeName":{"id":323,"nodeType":"UserDefinedTypeName","pathNode":{"id":322,"name":"LinkTokenInterface","nameLocations":["1183:18:1"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"1183:18:1"},"referencedDeclaration":1251,"src":"1183:18:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"visibility":"private"},{"constant":false,"id":327,"mutability":"mutable","name":"s_oracle","nameLocation":"1246:8:1","nodeType":"VariableDeclaration","scope":861,"src":"1220:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"},"typeName":{"id":326,"nodeType":"UserDefinedTypeName","pathNode":{"id":325,"name":"OperatorInterface","nameLocations":["1220:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":1331,"src":"1220:17:1"},"referencedDeclaration":1331,"src":"1220:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"visibility":"private"},{"constant":false,"id":330,"mutability":"mutable","name":"s_requestCount","nameLocation":"1274:14:1","nodeType":"VariableDeclaration","scope":861,"src":"1258:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":328,"name":"uint256","nodeType":"ElementaryTypeName","src":"1258:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1291:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":false,"id":334,"mutability":"mutable","name":"s_pendingRequests","nameLocation":"1332:17:1","nodeType":"VariableDeclaration","scope":861,"src":"1296:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":333,"keyType":{"id":331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1304:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1296:27:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":332,"name":"address","nodeType":"ElementaryTypeName","src":"1315:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"anonymous":false,"eventSelector":"b5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af9","id":338,"name":"ChainlinkRequested","nameLocation":"1360:18:1","nodeType":"EventDefinition","parameters":{"id":337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":336,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1395:2:1","nodeType":"VariableDeclaration","scope":338,"src":"1379:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1379:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1378:20:1"},"src":"1354:45:1"},{"anonymous":false,"eventSelector":"7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a","id":342,"name":"ChainlinkFulfilled","nameLocation":"1408:18:1","nodeType":"EventDefinition","parameters":{"id":341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":340,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1443:2:1","nodeType":"VariableDeclaration","scope":342,"src":"1427:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1427:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1426:20:1"},"src":"1402:45:1"},{"anonymous":false,"eventSelector":"e1fe3afa0f7f761ff0a8b89086790efd5140d2907ebd5b7ff6bfcb5e075fd4c5","id":346,"name":"ChainlinkCancelled","nameLocation":"1456:18:1","nodeType":"EventDefinition","parameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":344,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1491:2:1","nodeType":"VariableDeclaration","scope":346,"src":"1475:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1475:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1474:20:1"},"src":"1450:45:1"},{"body":{"id":372,"nodeType":"Block","src":"2018:115:1","statements":[{"assignments":[363],"declarations":[{"constant":false,"id":363,"mutability":"mutable","name":"req","nameLocation":"2049:3:1","nodeType":"VariableDeclaration","scope":372,"src":"2024:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":362,"nodeType":"UserDefinedTypeName","pathNode":{"id":361,"name":"Chainlink.Request","nameLocations":["2024:9:1","2034:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2024:17:1"},"referencedDeclaration":25,"src":"2024:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":364,"nodeType":"VariableDeclarationStatement","src":"2024:28:1"},{"expression":{"arguments":[{"id":367,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"2080:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":368,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"2088:12:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":369,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":353,"src":"2102:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":365,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"2065:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2069:10:1","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2065:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2065:63:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":358,"id":371,"nodeType":"Return","src":"2058:70:1"}]},"documentation":{"id":347,"nodeType":"StructuredDocumentation","src":"1499:348:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackAddr address to operate the callback on\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":373,"implemented":true,"kind":"function","modifiers":[],"name":"buildChainlinkRequest","nameLocation":"1859:21:1","nodeType":"FunctionDefinition","parameters":{"id":354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":349,"mutability":"mutable","name":"specId","nameLocation":"1894:6:1","nodeType":"VariableDeclaration","scope":373,"src":"1886:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1886:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":351,"mutability":"mutable","name":"callbackAddr","nameLocation":"1914:12:1","nodeType":"VariableDeclaration","scope":373,"src":"1906:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":350,"name":"address","nodeType":"ElementaryTypeName","src":"1906:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":353,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"1939:25:1","nodeType":"VariableDeclaration","scope":373,"src":"1932:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":352,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1932:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1880:88:1"},"returnParameters":{"id":358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":373,"src":"1992:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":356,"nodeType":"UserDefinedTypeName","pathNode":{"id":355,"name":"Chainlink.Request","nameLocations":["1992:9:1","2002:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1992:17:1"},"referencedDeclaration":25,"src":"1992:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1991:26:1"},"scope":861,"src":"1850:283:1","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":400,"nodeType":"Block","src":"2571:116:1","statements":[{"assignments":[388],"declarations":[{"constant":false,"id":388,"mutability":"mutable","name":"req","nameLocation":"2602:3:1","nodeType":"VariableDeclaration","scope":400,"src":"2577:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":387,"nodeType":"UserDefinedTypeName","pathNode":{"id":386,"name":"Chainlink.Request","nameLocations":["2577:9:1","2587:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2577:17:1"},"referencedDeclaration":25,"src":"2577:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":389,"nodeType":"VariableDeclarationStatement","src":"2577:28:1"},{"expression":{"arguments":[{"id":392,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"2633:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":395,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2649:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2641:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":393,"name":"address","nodeType":"ElementaryTypeName","src":"2641:7:1","typeDescriptions":{}}},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":397,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"2656:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":390,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"2618:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:10:1","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2618:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2618:64:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":383,"id":399,"nodeType":"Return","src":"2611:71:1"}]},"documentation":{"id":374,"nodeType":"StructuredDocumentation","src":"2137:288:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":401,"implemented":true,"kind":"function","modifiers":[],"name":"buildOperatorRequest","nameLocation":"2437:20:1","nodeType":"FunctionDefinition","parameters":{"id":379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":376,"mutability":"mutable","name":"specId","nameLocation":"2466:6:1","nodeType":"VariableDeclaration","scope":401,"src":"2458:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2458:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":378,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"2481:25:1","nodeType":"VariableDeclaration","scope":401,"src":"2474:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":377,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2474:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2457:50:1"},"returnParameters":{"id":383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":401,"src":"2543:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":381,"nodeType":"UserDefinedTypeName","pathNode":{"id":380,"name":"Chainlink.Request","nameLocations":["2543:9:1","2553:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2543:17:1"},"referencedDeclaration":25,"src":"2543:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"2542:26:1"},"scope":861,"src":"2428:259:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":421,"nodeType":"Block","src":"3096:73:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":415,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"3140:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3132:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":413,"name":"address","nodeType":"ElementaryTypeName","src":"3132:7:1","typeDescriptions":{}}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3132:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":417,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":405,"src":"3151:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":418,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":407,"src":"3156:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":412,"name":"sendChainlinkRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"3109:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3109:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":411,"id":420,"nodeType":"Return","src":"3102:62:1"}]},"documentation":{"id":402,"nodeType":"StructuredDocumentation","src":"2691:298:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev Calls `chainlinkRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":422,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequest","nameLocation":"3001:20:1","nodeType":"FunctionDefinition","parameters":{"id":408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":405,"mutability":"mutable","name":"req","nameLocation":"3047:3:1","nodeType":"VariableDeclaration","scope":422,"src":"3022:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":404,"nodeType":"UserDefinedTypeName","pathNode":{"id":403,"name":"Chainlink.Request","nameLocations":["3022:9:1","3032:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3022:17:1"},"referencedDeclaration":25,"src":"3022:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":407,"mutability":"mutable","name":"payment","nameLocation":"3060:7:1","nodeType":"VariableDeclaration","scope":422,"src":"3052:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":406,"name":"uint256","nodeType":"ElementaryTypeName","src":"3052:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:47:1"},"returnParameters":{"id":411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":422,"src":"3087:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3087:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3086:9:1"},"scope":861,"src":"2992:177:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":476,"nodeType":"Block","src":"3842:601:1","statements":[{"assignments":[436],"declarations":[{"constant":false,"id":436,"mutability":"mutable","name":"nonce","nameLocation":"3856:5:1","nodeType":"VariableDeclaration","scope":476,"src":"3848:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3848:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":438,"initialValue":{"id":437,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3864:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3848:30:1"},{"expression":{"id":443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":439,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3884:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":440,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"3901:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3909:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3901:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3884:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":444,"nodeType":"ExpressionStatement","src":"3884:26:1"},{"assignments":[446],"declarations":[{"constant":false,"id":446,"mutability":"mutable","name":"encodedRequest","nameLocation":"3929:14:1","nodeType":"VariableDeclaration","scope":476,"src":"3916:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":445,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":468,"initialValue":{"arguments":[{"expression":{"expression":{"id":449,"name":"ChainlinkRequestInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"3976:25:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ChainlinkRequestInterface_$1076_$","typeString":"type(contract ChainlinkRequestInterface)"}},"id":450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4002:13:1","memberName":"oracleRequest","nodeType":"MemberAccess","referencedDeclaration":1064,"src":"3976:39:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ChainlinkRequestInterface.oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes calldata)"}},"id":451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4016:8:1","memberName":"selector","nodeType":"MemberAccess","src":"3976:48:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":452,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"4032:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":453,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"4140:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":454,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4245:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4249:2:1","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"4245:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":458,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4267:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4259:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":456,"name":"address","nodeType":"ElementaryTypeName","src":"4259:7:1","typeDescriptions":{}}},"id":459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4259:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":460,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4280:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4284:18:1","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"4280:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":462,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4310:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":463,"name":"ORACLE_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":300,"src":"4323:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":464,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4350:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4354:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"4350:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4358:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4350:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3946:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3950:18:1","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3946:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3946:421:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3916:451:1"},{"expression":{"arguments":[{"id":470,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"4392:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":471,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4407:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":472,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"4414:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":473,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4423:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":469,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"4380:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":434,"id":475,"nodeType":"Return","src":"4373:65:1"}]},"documentation":{"id":423,"nodeType":"StructuredDocumentation","src":"3173:511:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":477,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequestTo","nameLocation":"3696:22:1","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":425,"mutability":"mutable","name":"oracleAddress","nameLocation":"3732:13:1","nodeType":"VariableDeclaration","scope":477,"src":"3724:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":424,"name":"address","nodeType":"ElementaryTypeName","src":"3724:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":428,"mutability":"mutable","name":"req","nameLocation":"3776:3:1","nodeType":"VariableDeclaration","scope":477,"src":"3751:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":427,"nodeType":"UserDefinedTypeName","pathNode":{"id":426,"name":"Chainlink.Request","nameLocations":["3751:9:1","3761:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3751:17:1"},"referencedDeclaration":25,"src":"3751:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"payment","nameLocation":"3793:7:1","nodeType":"VariableDeclaration","scope":477,"src":"3785:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":429,"name":"uint256","nodeType":"ElementaryTypeName","src":"3785:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3718:86:1"},"returnParameters":{"id":434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":433,"mutability":"mutable","name":"requestId","nameLocation":"3831:9:1","nodeType":"VariableDeclaration","scope":477,"src":"3823:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3823:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3822:19:1"},"scope":861,"src":"3687:756:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":497,"nodeType":"Block","src":"4907:72:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":491,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"4950:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4942:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":489,"name":"address","nodeType":"ElementaryTypeName","src":"4942:7:1","typeDescriptions":{}}},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4942:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":493,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"4961:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":494,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"4966:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":488,"name":"sendOperatorRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":549,"src":"4920:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4920:54:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":487,"id":496,"nodeType":"Return","src":"4913:61:1"}]},"documentation":{"id":478,"nodeType":"StructuredDocumentation","src":"4447:354:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev This function supports multi-word response\n @dev Calls `sendOperatorRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":498,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequest","nameLocation":"4813:19:1","nodeType":"FunctionDefinition","parameters":{"id":484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"req","nameLocation":"4858:3:1","nodeType":"VariableDeclaration","scope":498,"src":"4833:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":480,"nodeType":"UserDefinedTypeName","pathNode":{"id":479,"name":"Chainlink.Request","nameLocations":["4833:9:1","4843:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"4833:17:1"},"referencedDeclaration":25,"src":"4833:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":483,"mutability":"mutable","name":"payment","nameLocation":"4871:7:1","nodeType":"VariableDeclaration","scope":498,"src":"4863:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":482,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4832:47:1"},"returnParameters":{"id":487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":498,"src":"4898:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4898:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4897:9:1"},"scope":861,"src":"4804:175:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":548,"nodeType":"Block","src":"5704:576:1","statements":[{"assignments":[512],"declarations":[{"constant":false,"id":512,"mutability":"mutable","name":"nonce","nameLocation":"5718:5:1","nodeType":"VariableDeclaration","scope":548,"src":"5710:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":511,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":514,"initialValue":{"id":513,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5726:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5710:30:1"},{"expression":{"id":519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":515,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5746:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":516,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"5763:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5771:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5763:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5746:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":520,"nodeType":"ExpressionStatement","src":"5746:26:1"},{"assignments":[522],"declarations":[{"constant":false,"id":522,"mutability":"mutable","name":"encodedRequest","nameLocation":"5791:14:1","nodeType":"VariableDeclaration","scope":548,"src":"5778:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":521,"name":"bytes","nodeType":"ElementaryTypeName","src":"5778:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":540,"initialValue":{"arguments":[{"expression":{"expression":{"id":525,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"5838:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5856:15:1","memberName":"operatorRequest","nodeType":"MemberAccess","referencedDeclaration":1276,"src":"5838:33:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function OperatorInterface.operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes calldata)"}},"id":527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5872:8:1","memberName":"selector","nodeType":"MemberAccess","src":"5838:42:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":528,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"5888:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":529,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"5996:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":530,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6101:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6105:2:1","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"6101:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":532,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6115:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6119:18:1","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"6115:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":534,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6145:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":535,"name":"OPERATOR_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"6158:21:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":536,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6187:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6191:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"6187:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6195:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"6187:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":523,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5808:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5812:18:1","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"5808:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5808:396:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5778:426:1"},{"expression":{"arguments":[{"id":542,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"6229:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":543,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6244:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":544,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"6251:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":545,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"6260:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":541,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"6217:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6217:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":510,"id":547,"nodeType":"Return","src":"6210:65:1"}]},"documentation":{"id":499,"nodeType":"StructuredDocumentation","src":"4983:564:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev This function supports multi-word response\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":549,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequestTo","nameLocation":"5559:21:1","nodeType":"FunctionDefinition","parameters":{"id":507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":501,"mutability":"mutable","name":"oracleAddress","nameLocation":"5594:13:1","nodeType":"VariableDeclaration","scope":549,"src":"5586:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":500,"name":"address","nodeType":"ElementaryTypeName","src":"5586:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":504,"mutability":"mutable","name":"req","nameLocation":"5638:3:1","nodeType":"VariableDeclaration","scope":549,"src":"5613:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":503,"nodeType":"UserDefinedTypeName","pathNode":{"id":502,"name":"Chainlink.Request","nameLocations":["5613:9:1","5623:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"5613:17:1"},"referencedDeclaration":25,"src":"5613:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":506,"mutability":"mutable","name":"payment","nameLocation":"5655:7:1","nodeType":"VariableDeclaration","scope":549,"src":"5647:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":505,"name":"uint256","nodeType":"ElementaryTypeName","src":"5647:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5580:86:1"},"returnParameters":{"id":510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":509,"mutability":"mutable","name":"requestId","nameLocation":"5693:9:1","nodeType":"VariableDeclaration","scope":549,"src":"5685:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5685:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5684:19:1"},"scope":861,"src":"5550:730:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":593,"nodeType":"Block","src":"6790:269:1","statements":[{"expression":{"id":571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":563,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6796:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":567,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6835:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}},{"id":568,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"6841:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":565,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6818:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6822:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"6818:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":564,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6808:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6808:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6796:52:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":572,"nodeType":"ExpressionStatement","src":"6796:52:1"},{"expression":{"id":577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":573,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"6854:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":575,"indexExpression":{"id":574,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6872:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6854:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":576,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6885:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6854:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":578,"nodeType":"ExpressionStatement","src":"6854:44:1"},{"eventCall":{"arguments":[{"id":580,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6928:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":579,"name":"ChainlinkRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"6909:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6909:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":582,"nodeType":"EmitStatement","src":"6904:34:1"},{"expression":{"arguments":[{"arguments":[{"id":586,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6975:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":587,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"6990:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":588,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":558,"src":"6999:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":584,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"6952:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6959:15:1","memberName":"transferAndCall","nodeType":"MemberAccess","referencedDeclaration":1239,"src":"6952:22:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory) external returns (bool)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6952:62:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65","id":590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7016:37:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""},"value":"unable to transferAndCall to oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""}],"id":583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6944:7:1","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,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6944:110:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":592,"nodeType":"ExpressionStatement","src":"6944:110:1"}]},"documentation":{"id":550,"nodeType":"StructuredDocumentation","src":"6284:342:1","text":" @notice Make a request to an oracle\n @param oracleAddress The address of the oracle for the request\n @param nonce used to generate the request ID\n @param payment The amount of LINK to send for the request\n @param encodedRequest data encoded for request type specific format\n @return requestId The request ID"},"id":594,"implemented":true,"kind":"function","modifiers":[],"name":"_rawRequest","nameLocation":"6638:11:1","nodeType":"FunctionDefinition","parameters":{"id":559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":552,"mutability":"mutable","name":"oracleAddress","nameLocation":"6663:13:1","nodeType":"VariableDeclaration","scope":594,"src":"6655:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"6655:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":554,"mutability":"mutable","name":"nonce","nameLocation":"6690:5:1","nodeType":"VariableDeclaration","scope":594,"src":"6682:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":553,"name":"uint256","nodeType":"ElementaryTypeName","src":"6682:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":556,"mutability":"mutable","name":"payment","nameLocation":"6709:7:1","nodeType":"VariableDeclaration","scope":594,"src":"6701:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":555,"name":"uint256","nodeType":"ElementaryTypeName","src":"6701:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":558,"mutability":"mutable","name":"encodedRequest","nameLocation":"6735:14:1","nodeType":"VariableDeclaration","scope":594,"src":"6722:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":557,"name":"bytes","nodeType":"ElementaryTypeName","src":"6722:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6649:104:1"},"returnParameters":{"id":562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":561,"mutability":"mutable","name":"requestId","nameLocation":"6779:9:1","nodeType":"VariableDeclaration","scope":594,"src":"6771:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6771:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6770:19:1"},"scope":861,"src":"6629:430:1","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":633,"nodeType":"Block","src":"7713:250:1","statements":[{"assignments":[608],"declarations":[{"constant":false,"id":608,"mutability":"mutable","name":"requested","nameLocation":"7737:9:1","nodeType":"VariableDeclaration","scope":633,"src":"7719:27:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"},"typeName":{"id":607,"nodeType":"UserDefinedTypeName","pathNode":{"id":606,"name":"OperatorInterface","nameLocations":["7719:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":1331,"src":"7719:17:1"},"referencedDeclaration":1331,"src":"7719:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"visibility":"internal"}],"id":614,"initialValue":{"arguments":[{"baseExpression":{"id":610,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7767:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":612,"indexExpression":{"id":611,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7785:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7767:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":609,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"7749:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7749:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"nodeType":"VariableDeclarationStatement","src":"7719:77:1"},{"expression":{"id":618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7802:35:1","subExpression":{"baseExpression":{"id":615,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7809:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":617,"indexExpression":{"id":616,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7827:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7809:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":619,"nodeType":"ExpressionStatement","src":"7802:35:1"},{"eventCall":{"arguments":[{"id":621,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7867:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":620,"name":"ChainlinkCancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"7848:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7848:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":623,"nodeType":"EmitStatement","src":"7843:34:1"},{"expression":{"arguments":[{"id":627,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7913:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":628,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"7924:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":629,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":601,"src":"7933:12:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":630,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":603,"src":"7947:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":624,"name":"requested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"7883:9:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"id":626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7893:19:1","memberName":"cancelOracleRequest","nodeType":"MemberAccess","referencedDeclaration":1075,"src":"7883:29:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes4_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,bytes4,uint256) external"}},"id":631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7883:75:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":632,"nodeType":"ExpressionStatement","src":"7883:75:1"}]},"documentation":{"id":595,"nodeType":"StructuredDocumentation","src":"7063:509:1","text":" @notice Allows a request to be cancelled if it has not been fulfilled\n @dev Requires keeping track of the expiration value emitted from the oracle contract.\n Deletes the request from the `pendingRequests` mapping.\n Emits ChainlinkCancelled event.\n @param requestId The request ID\n @param payment The amount of LINK sent for the request\n @param callbackFunc The callback function specified for the request\n @param expiration The time of the expiration for the request"},"id":634,"implemented":true,"kind":"function","modifiers":[],"name":"cancelChainlinkRequest","nameLocation":"7584:22:1","nodeType":"FunctionDefinition","parameters":{"id":604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":597,"mutability":"mutable","name":"requestId","nameLocation":"7620:9:1","nodeType":"VariableDeclaration","scope":634,"src":"7612:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7612:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":599,"mutability":"mutable","name":"payment","nameLocation":"7643:7:1","nodeType":"VariableDeclaration","scope":634,"src":"7635:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7635:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":601,"mutability":"mutable","name":"callbackFunc","nameLocation":"7663:12:1","nodeType":"VariableDeclaration","scope":634,"src":"7656:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":600,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7656:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":603,"mutability":"mutable","name":"expiration","nameLocation":"7689:10:1","nodeType":"VariableDeclaration","scope":634,"src":"7681:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":602,"name":"uint256","nodeType":"ElementaryTypeName","src":"7681:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7606:97:1"},"returnParameters":{"id":605,"nodeType":"ParameterList","parameters":[],"src":"7713:0:1"},"scope":861,"src":"7575:388:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":642,"nodeType":"Block","src":"8238:32:1","statements":[{"expression":{"id":640,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"8251:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":639,"id":641,"nodeType":"Return","src":"8244:21:1"}]},"documentation":{"id":635,"nodeType":"StructuredDocumentation","src":"7967:205:1","text":" @notice the next request count to be used in generating a nonce\n @dev starts at 1 in order to ensure consistent gas cost\n @return returns the next request count to be used in a nonce"},"id":643,"implemented":true,"kind":"function","modifiers":[],"name":"getNextRequestCount","nameLocation":"8184:19:1","nodeType":"FunctionDefinition","parameters":{"id":636,"nodeType":"ParameterList","parameters":[],"src":"8203:2:1"},"returnParameters":{"id":639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":643,"src":"8229:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":637,"name":"uint256","nodeType":"ElementaryTypeName","src":"8229:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8228:9:1"},"scope":861,"src":"8175:95:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":655,"nodeType":"Block","src":"8451:54:1","statements":[{"expression":{"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":649,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"8457:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":651,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"8486:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":650,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"8468:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8468:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"src":"8457:43:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"id":654,"nodeType":"ExpressionStatement","src":"8457:43:1"}]},"documentation":{"id":644,"nodeType":"StructuredDocumentation","src":"8274:114:1","text":" @notice Sets the stored oracle address\n @param oracleAddress The address of the oracle contract"},"id":656,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkOracle","nameLocation":"8400:18:1","nodeType":"FunctionDefinition","parameters":{"id":647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":646,"mutability":"mutable","name":"oracleAddress","nameLocation":"8427:13:1","nodeType":"VariableDeclaration","scope":656,"src":"8419:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":645,"name":"address","nodeType":"ElementaryTypeName","src":"8419:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8418:23:1"},"returnParameters":{"id":648,"nodeType":"ParameterList","parameters":[],"src":"8451:0:1"},"scope":861,"src":"8391:114:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":668,"nodeType":"Block","src":"8682:51:1","statements":[{"expression":{"id":666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":662,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"8688:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":664,"name":"linkAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"8716:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":663,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"8697:18:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1251_$","typeString":"type(contract LinkTokenInterface)"}},"id":665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8697:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"src":"8688:40:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":667,"nodeType":"ExpressionStatement","src":"8688:40:1"}]},"documentation":{"id":657,"nodeType":"StructuredDocumentation","src":"8509:113:1","text":" @notice Sets the LINK token address\n @param linkAddress The address of the LINK token contract"},"id":669,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkToken","nameLocation":"8634:17:1","nodeType":"FunctionDefinition","parameters":{"id":660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":659,"mutability":"mutable","name":"linkAddress","nameLocation":"8660:11:1","nodeType":"VariableDeclaration","scope":669,"src":"8652:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":658,"name":"address","nodeType":"ElementaryTypeName","src":"8652:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8651:21:1"},"returnParameters":{"id":661,"nodeType":"ParameterList","parameters":[],"src":"8682:0:1"},"scope":861,"src":"8625:108:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":681,"nodeType":"Block","src":"8900:79:1","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":675,"name":"LINK_TOKEN_POINTER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"8941:18:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":674,"name":"PointerInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"8924:16:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PointerInterface_$1394_$","typeString":"type(contract PointerInterface)"}},"id":676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8924:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PointerInterface_$1394","typeString":"contract PointerInterface"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8961:10:1","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":1393,"src":"8924:47:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8924:49:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":673,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"8906:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8906:68:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":680,"nodeType":"ExpressionStatement","src":"8906:68:1"}]},"documentation":{"id":670,"nodeType":"StructuredDocumentation","src":"8737:116:1","text":" @notice Sets the Chainlink token address for the public\n network as given by the Pointer contract"},"id":682,"implemented":true,"kind":"function","modifiers":[],"name":"setPublicChainlinkToken","nameLocation":"8865:23:1","nodeType":"FunctionDefinition","parameters":{"id":671,"nodeType":"ParameterList","parameters":[],"src":"8888:2:1"},"returnParameters":{"id":672,"nodeType":"ParameterList","parameters":[],"src":"8900:0:1"},"scope":861,"src":"8856:123:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":693,"nodeType":"Block","src":"9163:33:1","statements":[{"expression":{"arguments":[{"id":690,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"9184:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}],"id":689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9176:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":688,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:1","typeDescriptions":{}}},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9176:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":687,"id":692,"nodeType":"Return","src":"9169:22:1"}]},"documentation":{"id":683,"nodeType":"StructuredDocumentation","src":"8983:112:1","text":" @notice Retrieves the stored address of the LINK token\n @return The address of the LINK token"},"id":694,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkTokenAddress","nameLocation":"9107:21:1","nodeType":"FunctionDefinition","parameters":{"id":684,"nodeType":"ParameterList","parameters":[],"src":"9128:2:1"},"returnParameters":{"id":687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":694,"src":"9154:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":685,"name":"address","nodeType":"ElementaryTypeName","src":"9154:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9153:9:1"},"scope":861,"src":"9098:98:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":705,"nodeType":"Block","src":"9391:35:1","statements":[{"expression":{"arguments":[{"id":702,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"9412:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9404:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"9404:7:1","typeDescriptions":{}}},"id":703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9404:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":699,"id":704,"nodeType":"Return","src":"9397:24:1"}]},"documentation":{"id":695,"nodeType":"StructuredDocumentation","src":"9200:122:1","text":" @notice Retrieves the stored address of the oracle contract\n @return The address of the oracle contract"},"id":706,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkOracleAddress","nameLocation":"9334:22:1","nodeType":"FunctionDefinition","parameters":{"id":696,"nodeType":"ParameterList","parameters":[],"src":"9356:2:1"},"returnParameters":{"id":699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":706,"src":"9382:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":697,"name":"address","nodeType":"ElementaryTypeName","src":"9382:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9381:9:1"},"scope":861,"src":"9325:101:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":723,"nodeType":"Block","src":"9819:55:1","statements":[{"expression":{"id":721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":717,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"9825:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":719,"indexExpression":{"id":718,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9843:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9825:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":720,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":709,"src":"9856:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9825:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":722,"nodeType":"ExpressionStatement","src":"9825:44:1"}]},"documentation":{"id":707,"nodeType":"StructuredDocumentation","src":"9430:269:1","text":" @notice Allows for a request which was created on another contract to be fulfilled\n on this contract\n @param oracleAddress The address of the oracle contract that will fulfill the request\n @param requestId The request ID used for the response"},"id":724,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":714,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9808:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":715,"kind":"modifierInvocation","modifierName":{"id":713,"name":"notPendingRequest","nameLocations":["9790:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":860,"src":"9790:17:1"},"nodeType":"ModifierInvocation","src":"9790:28:1"}],"name":"addChainlinkExternalRequest","nameLocation":"9711:27:1","nodeType":"FunctionDefinition","parameters":{"id":712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":709,"mutability":"mutable","name":"oracleAddress","nameLocation":"9747:13:1","nodeType":"VariableDeclaration","scope":724,"src":"9739:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":708,"name":"address","nodeType":"ElementaryTypeName","src":"9739:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":711,"mutability":"mutable","name":"requestId","nameLocation":"9770:9:1","nodeType":"VariableDeclaration","scope":724,"src":"9762:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9762:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9738:42:1"},"returnParameters":{"id":716,"nodeType":"ParameterList","parameters":[],"src":"9819:0:1"},"scope":861,"src":"9702:172:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":772,"nodeType":"Block","src":"10207:326:1","statements":[{"expression":{"id":736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":732,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10213:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":734,"name":"ensAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"10234:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":733,"name":"ENSInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"10221:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSInterface_$1156_$","typeString":"type(contract ENSInterface)"}},"id":735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10221:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"src":"10213:32:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":737,"nodeType":"ExpressionStatement","src":"10213:32:1"},{"expression":{"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":738,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10251:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":739,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":729,"src":"10263:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10251:16:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":741,"nodeType":"ExpressionStatement","src":"10251:16:1"},{"assignments":[743],"declarations":[{"constant":false,"id":743,"mutability":"mutable","name":"linkSubnode","nameLocation":"10281:11:1","nodeType":"VariableDeclaration","scope":772,"src":"10273:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10273:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":751,"initialValue":{"arguments":[{"arguments":[{"id":747,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10322:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":748,"name":"ENS_TOKEN_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":308,"src":"10333:17:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":745,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10305:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10309:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"10305:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10305:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":744,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10295:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10295:57:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10273:79:1"},{"assignments":[754],"declarations":[{"constant":false,"id":754,"mutability":"mutable","name":"resolver","nameLocation":"10380:8:1","nodeType":"VariableDeclaration","scope":772,"src":"10358:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"},"typeName":{"id":753,"nodeType":"UserDefinedTypeName","pathNode":{"id":752,"name":"ENSResolver_Chainlink","nameLocations":["10358:21:1"],"nodeType":"IdentifierPath","referencedDeclaration":2373,"src":"10358:21:1"},"referencedDeclaration":2373,"src":"10358:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":761,"initialValue":{"arguments":[{"arguments":[{"id":758,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10428:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":756,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10413:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10419:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":1148,"src":"10413:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10413:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":755,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"10391:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2373_$","typeString":"type(contract ENSResolver)"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10391:50:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10358:83:1"},{"expression":{"arguments":[{"arguments":[{"id":765,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10479:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":763,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":754,"src":"10465:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10474:4:1","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2372,"src":"10465:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10465:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":762,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"10447:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10447:45:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":768,"nodeType":"ExpressionStatement","src":"10447:45:1"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":769,"name":"updateChainlinkOracleWithENS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"10498:28:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10498:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":771,"nodeType":"ExpressionStatement","src":"10498:30:1"}]},"documentation":{"id":725,"nodeType":"StructuredDocumentation","src":"9878:254:1","text":" @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n @dev Accounts for subnodes having different resolvers\n @param ensAddress The address of the ENS contract\n @param node The ENS node hash"},"id":773,"implemented":true,"kind":"function","modifiers":[],"name":"useChainlinkWithENS","nameLocation":"10144:19:1","nodeType":"FunctionDefinition","parameters":{"id":730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":727,"mutability":"mutable","name":"ensAddress","nameLocation":"10172:10:1","nodeType":"VariableDeclaration","scope":773,"src":"10164:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":726,"name":"address","nodeType":"ElementaryTypeName","src":"10164:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":729,"mutability":"mutable","name":"node","nameLocation":"10192:4:1","nodeType":"VariableDeclaration","scope":773,"src":"10184:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10184:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10163:34:1"},"returnParameters":{"id":731,"nodeType":"ParameterList","parameters":[],"src":"10207:0:1"},"scope":861,"src":"10135:398:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":804,"nodeType":"Block","src":"10776:238:1","statements":[{"assignments":[778],"declarations":[{"constant":false,"id":778,"mutability":"mutable","name":"oracleSubnode","nameLocation":"10790:13:1","nodeType":"VariableDeclaration","scope":804,"src":"10782:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10782:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":786,"initialValue":{"arguments":[{"arguments":[{"id":782,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10833:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":783,"name":"ENS_ORACLE_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":313,"src":"10844:18:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10816:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10820:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"10816:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10816:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":779,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10806:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10806:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10782:82:1"},{"assignments":[789],"declarations":[{"constant":false,"id":789,"mutability":"mutable","name":"resolver","nameLocation":"10892:8:1","nodeType":"VariableDeclaration","scope":804,"src":"10870:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"},"typeName":{"id":788,"nodeType":"UserDefinedTypeName","pathNode":{"id":787,"name":"ENSResolver_Chainlink","nameLocations":["10870:21:1"],"nodeType":"IdentifierPath","referencedDeclaration":2373,"src":"10870:21:1"},"referencedDeclaration":2373,"src":"10870:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":796,"initialValue":{"arguments":[{"arguments":[{"id":793,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10940:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":791,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10925:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10931:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":1148,"src":"10925:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10925:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":790,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"10903:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2373_$","typeString":"type(contract ENSResolver)"}},"id":795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10903:52:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10870:85:1"},{"expression":{"arguments":[{"arguments":[{"id":800,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10994:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":798,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"10980:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"id":799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10989:4:1","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2372,"src":"10980:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10980:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":797,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"10961:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10961:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":803,"nodeType":"ExpressionStatement","src":"10961:48:1"}]},"documentation":{"id":774,"nodeType":"StructuredDocumentation","src":"10537:187:1","text":" @notice Sets the stored oracle contract with the address resolved by ENS\n @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously"},"id":805,"implemented":true,"kind":"function","modifiers":[],"name":"updateChainlinkOracleWithENS","nameLocation":"10736:28:1","nodeType":"FunctionDefinition","parameters":{"id":775,"nodeType":"ParameterList","parameters":[],"src":"10764:2:1"},"returnParameters":{"id":776,"nodeType":"ParameterList","parameters":[],"src":"10776:0:1"},"scope":861,"src":"10727:287:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":814,"nodeType":"Block","src":"11402:6:1","statements":[]},"documentation":{"id":806,"nodeType":"StructuredDocumentation","src":"11018:223:1","text":" @notice Ensures that the fulfillment is valid for this contract\n @dev Use if the contract developer prefers methods instead of modifiers for validation\n @param requestId The request ID for fulfillment"},"id":815,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":811,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":808,"src":"11342:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":812,"kind":"modifierInvocation","modifierName":{"id":810,"name":"recordChainlinkFulfillment","nameLocations":["11315:26:1"],"nodeType":"IdentifierPath","referencedDeclaration":841,"src":"11315:26:1"},"nodeType":"ModifierInvocation","src":"11315:37:1"}],"name":"validateChainlinkCallback","nameLocation":"11253:25:1","nodeType":"FunctionDefinition","parameters":{"id":809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":808,"mutability":"mutable","name":"requestId","nameLocation":"11287:9:1","nodeType":"VariableDeclaration","scope":815,"src":"11279:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11279:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11278:19:1"},"returnParameters":{"id":813,"nodeType":"ParameterList","parameters":[],"src":"11402:0:1"},"scope":861,"src":"11244:164:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":840,"nodeType":"Block","src":"11635:194:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":821,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11649:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11653:6:1","memberName":"sender","nodeType":"MemberAccess","src":"11649:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":823,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11663:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":825,"indexExpression":{"id":824,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11681:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11663:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11649:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374","id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11693:42:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""},"value":"Source must be the oracle of the request"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""}],"id":820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11641:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11641:95:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":829,"nodeType":"ExpressionStatement","src":"11641:95:1"},{"expression":{"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11742:35:1","subExpression":{"baseExpression":{"id":830,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11749:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":832,"indexExpression":{"id":831,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11767:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11749:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":834,"nodeType":"ExpressionStatement","src":"11742:35:1"},{"eventCall":{"arguments":[{"id":836,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11807:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":835,"name":"ChainlinkFulfilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"11788:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11788:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":838,"nodeType":"EmitStatement","src":"11783:34:1"},{"id":839,"nodeType":"PlaceholderStatement","src":"11823:1:1"}]},"documentation":{"id":816,"nodeType":"StructuredDocumentation","src":"11412:165:1","text":" @dev Reverts if the sender is not the oracle of the request.\n Emits ChainlinkFulfilled event.\n @param requestId The request ID for fulfillment"},"id":841,"name":"recordChainlinkFulfillment","nameLocation":"11589:26:1","nodeType":"ModifierDefinition","parameters":{"id":819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":818,"mutability":"mutable","name":"requestId","nameLocation":"11624:9:1","nodeType":"VariableDeclaration","scope":841,"src":"11616:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11616:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11615:19:1"},"src":"11580:249:1","virtual":false,"visibility":"internal"},{"body":{"id":859,"nodeType":"Block","src":"11996:99:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":847,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"12010:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":849,"indexExpression":{"id":848,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":844,"src":"12028:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12010:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12050:1:1","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":851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12042:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":850,"name":"address","nodeType":"ElementaryTypeName","src":"12042:7:1","typeDescriptions":{}}},"id":853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12042:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12010:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265717565737420697320616c72656164792070656e64696e67","id":855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12054:28:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""},"value":"Request is already pending"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""}],"id":846,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12002:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12002:81:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":857,"nodeType":"ExpressionStatement","src":"12002:81:1"},{"id":858,"nodeType":"PlaceholderStatement","src":"12089:1:1"}]},"documentation":{"id":842,"nodeType":"StructuredDocumentation","src":"11833:114:1","text":" @dev Reverts if the request is already pending\n @param requestId The request ID for fulfillment"},"id":860,"name":"notPendingRequest","nameLocation":"11959:17:1","nodeType":"ModifierDefinition","parameters":{"id":845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":844,"mutability":"mutable","name":"requestId","nameLocation":"11985:9:1","nodeType":"VariableDeclaration","scope":860,"src":"11977:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11977:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11976:19:1"},"src":"11950:145:1","virtual":false,"visibility":"internal"}],"scope":862,"src":"549:11548:1","usedErrors":[]}],"src":"32:12066:1"},"id":1},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","exportedSymbols":{"ConfirmedOwner":[881],"ConfirmedOwnerWithProposal":[1043],"OwnableInterface":[1386]},"id":882,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":863,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:2"},{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol","file":"./ConfirmedOwnerWithProposal.sol","id":864,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":882,"sourceUnit":1044,"src":"57:42:2","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":866,"name":"ConfirmedOwnerWithProposal","nameLocations":["239:26:2"],"nodeType":"IdentifierPath","referencedDeclaration":1043,"src":"239:26:2"},"id":867,"nodeType":"InheritanceSpecifier","src":"239:26:2"}],"canonicalName":"ConfirmedOwner","contractDependencies":[],"contractKind":"contract","documentation":{"id":865,"nodeType":"StructuredDocumentation","src":"101:110:2","text":" @title The ConfirmedOwner contract\n @notice A contract with helpers for basic contract ownership."},"fullyImplemented":true,"id":881,"linearizedBaseContracts":[881,1043,1386],"name":"ConfirmedOwner","nameLocation":"221:14:2","nodeType":"ContractDefinition","nodes":[{"body":{"id":879,"nodeType":"Block","src":"349:2:2","statements":[]},"id":880,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":872,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":869,"src":"327:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"345:1:2","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":874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"337:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":873,"name":"address","nodeType":"ElementaryTypeName","src":"337:7:2","typeDescriptions":{}}},"id":876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"337:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":877,"kind":"baseConstructorSpecifier","modifierName":{"id":871,"name":"ConfirmedOwnerWithProposal","nameLocations":["300:26:2"],"nodeType":"IdentifierPath","referencedDeclaration":1043,"src":"300:26:2"},"nodeType":"ModifierInvocation","src":"300:48:2"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":869,"mutability":"mutable","name":"newOwner","nameLocation":"290:8:2","nodeType":"VariableDeclaration","scope":880,"src":"282:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":868,"name":"address","nodeType":"ElementaryTypeName","src":"282:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"281:18:2"},"returnParameters":{"id":878,"nodeType":"ParameterList","parameters":[],"src":"349:0:2"},"scope":881,"src":"270:81:2","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":882,"src":"212:141:2","usedErrors":[]}],"src":"32:322:2"},"id":2},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol","exportedSymbols":{"ConfirmedOwnerWithProposal":[1043],"OwnableInterface":[1386]},"id":1044,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":883,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:3"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol","file":"./interfaces/OwnableInterface.sol","id":884,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1044,"sourceUnit":1387,"src":"57:43:3","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":886,"name":"OwnableInterface","nameLocations":["252:16:3"],"nodeType":"IdentifierPath","referencedDeclaration":1386,"src":"252:16:3"},"id":887,"nodeType":"InheritanceSpecifier","src":"252:16:3"}],"canonicalName":"ConfirmedOwnerWithProposal","contractDependencies":[],"contractKind":"contract","documentation":{"id":885,"nodeType":"StructuredDocumentation","src":"102:110:3","text":" @title The ConfirmedOwner contract\n @notice A contract with helpers for basic contract ownership."},"fullyImplemented":true,"id":1043,"linearizedBaseContracts":[1043,1386],"name":"ConfirmedOwnerWithProposal","nameLocation":"222:26:3","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":889,"mutability":"mutable","name":"s_owner","nameLocation":"289:7:3","nodeType":"VariableDeclaration","scope":1043,"src":"273:23:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":888,"name":"address","nodeType":"ElementaryTypeName","src":"273:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":891,"mutability":"mutable","name":"s_pendingOwner","nameLocation":"316:14:3","nodeType":"VariableDeclaration","scope":1043,"src":"300:30:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":890,"name":"address","nodeType":"ElementaryTypeName","src":"300:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278","id":897,"name":"OwnershipTransferRequested","nameLocation":"341:26:3","nodeType":"EventDefinition","parameters":{"id":896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":893,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"384:4:3","nodeType":"VariableDeclaration","scope":897,"src":"368:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":892,"name":"address","nodeType":"ElementaryTypeName","src":"368:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":895,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"406:2:3","nodeType":"VariableDeclaration","scope":897,"src":"390:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":894,"name":"address","nodeType":"ElementaryTypeName","src":"390:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"367:42:3"},"src":"335:75:3"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":903,"name":"OwnershipTransferred","nameLocation":"419:20:3","nodeType":"EventDefinition","parameters":{"id":902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":899,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"456:4:3","nodeType":"VariableDeclaration","scope":903,"src":"440:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":898,"name":"address","nodeType":"ElementaryTypeName","src":"440:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":901,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"478:2:3","nodeType":"VariableDeclaration","scope":903,"src":"462:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":900,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"439:42:3"},"src":"413:69:3"},{"body":{"id":936,"nodeType":"Block","src":"538:179:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":911,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"552:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"572:1:3","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":913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"564:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":912,"name":"address","nodeType":"ElementaryTypeName","src":"564:7:3","typeDescriptions":{}}},"id":915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"564:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"552:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","id":917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"576:26:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2","typeString":"literal_string \"Cannot set owner to zero\""},"value":"Cannot set owner to zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2","typeString":"literal_string \"Cannot set owner to zero\""}],"id":910,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"544:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"544:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":919,"nodeType":"ExpressionStatement","src":"544:59:3"},{"expression":{"id":922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":920,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"610:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":921,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"620:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"610:18:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":923,"nodeType":"ExpressionStatement","src":"610:18:3"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":924,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"638:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"662:1:3","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":926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"654:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":925,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:3","typeDescriptions":{}}},"id":928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"654:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"638:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":935,"nodeType":"IfStatement","src":"634:79:3","trueBody":{"id":934,"nodeType":"Block","src":"666:47:3","statements":[{"expression":{"arguments":[{"id":931,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"693:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":930,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"674:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"674:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":933,"nodeType":"ExpressionStatement","src":"674:32:3"}]}}]},"id":937,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":905,"mutability":"mutable","name":"newOwner","nameLocation":"506:8:3","nodeType":"VariableDeclaration","scope":937,"src":"498:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":904,"name":"address","nodeType":"ElementaryTypeName","src":"498:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":907,"mutability":"mutable","name":"pendingOwner","nameLocation":"524:12:3","nodeType":"VariableDeclaration","scope":937,"src":"516:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":906,"name":"address","nodeType":"ElementaryTypeName","src":"516:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"497:40:3"},"returnParameters":{"id":909,"nodeType":"ParameterList","parameters":[],"src":"538:0:3"},"scope":1043,"src":"486:231:3","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1382],"body":{"id":950,"nodeType":"Block","src":"891:33:3","statements":[{"expression":{"arguments":[{"id":947,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":940,"src":"916:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":946,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"897:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"897:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":949,"nodeType":"ExpressionStatement","src":"897:22:3"}]},"documentation":{"id":938,"nodeType":"StructuredDocumentation","src":"721:102:3","text":" @notice Allows an owner to begin transferring ownership to a new address,\n pending."},"functionSelector":"f2fde38b","id":951,"implemented":true,"kind":"function","modifiers":[{"id":944,"kind":"modifierInvocation","modifierName":{"id":943,"name":"onlyOwner","nameLocations":["881:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":1042,"src":"881:9:3"},"nodeType":"ModifierInvocation","src":"881:9:3"}],"name":"transferOwnership","nameLocation":"835:17:3","nodeType":"FunctionDefinition","overrides":{"id":942,"nodeType":"OverrideSpecifier","overrides":[],"src":"872:8:3"},"parameters":{"id":941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":940,"mutability":"mutable","name":"to","nameLocation":"861:2:3","nodeType":"VariableDeclaration","scope":951,"src":"853:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":939,"name":"address","nodeType":"ElementaryTypeName","src":"853:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"852:12:3"},"returnParameters":{"id":945,"nodeType":"ParameterList","parameters":[],"src":"891:0:3"},"scope":1043,"src":"826:98:3","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1385],"body":{"id":986,"nodeType":"Block","src":"1061:220:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":957,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1075:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1075:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":959,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1089:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1075:28:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","id":961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1105:24:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c","typeString":"literal_string \"Must be proposed owner\""},"value":"Must be proposed owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c","typeString":"literal_string \"Must be proposed owner\""}],"id":956,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1067:7:3","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,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:63:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":963,"nodeType":"ExpressionStatement","src":"1067:63:3"},{"assignments":[965],"declarations":[{"constant":false,"id":965,"mutability":"mutable","name":"oldOwner","nameLocation":"1145:8:3","nodeType":"VariableDeclaration","scope":986,"src":"1137:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":964,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":967,"initialValue":{"id":966,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1156:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1137:26:3"},{"expression":{"id":971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":968,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1169:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":969,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1179:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1183:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1179:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1169:20:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":972,"nodeType":"ExpressionStatement","src":"1169:20:3"},{"expression":{"id":978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":973,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1195:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1220:1:3","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":975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1212:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":974,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:3","typeDescriptions":{}}},"id":977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1195:27:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":979,"nodeType":"ExpressionStatement","src":"1195:27:3"},{"eventCall":{"arguments":[{"id":981,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":965,"src":"1255:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":982,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1265:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1269:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1265:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":980,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":903,"src":"1234:20:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1234:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":985,"nodeType":"EmitStatement","src":"1229:47:3"}]},"documentation":{"id":952,"nodeType":"StructuredDocumentation","src":"928:85:3","text":" @notice Allows an ownership transfer to be completed by the recipient."},"functionSelector":"79ba5097","id":987,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"1025:15:3","nodeType":"FunctionDefinition","overrides":{"id":954,"nodeType":"OverrideSpecifier","overrides":[],"src":"1052:8:3"},"parameters":{"id":953,"nodeType":"ParameterList","parameters":[],"src":"1040:2:3"},"returnParameters":{"id":955,"nodeType":"ParameterList","parameters":[],"src":"1061:0:3"},"scope":1043,"src":"1016:265:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1377],"body":{"id":996,"nodeType":"Block","src":"1388:25:3","statements":[{"expression":{"id":994,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1401:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":993,"id":995,"nodeType":"Return","src":"1394:14:3"}]},"documentation":{"id":988,"nodeType":"StructuredDocumentation","src":"1285:44:3","text":" @notice Get the current owner"},"functionSelector":"8da5cb5b","id":997,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1341:5:3","nodeType":"FunctionDefinition","overrides":{"id":990,"nodeType":"OverrideSpecifier","overrides":[],"src":"1361:8:3"},"parameters":{"id":989,"nodeType":"ParameterList","parameters":[],"src":"1346:2:3"},"returnParameters":{"id":993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":997,"src":"1379:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":991,"name":"address","nodeType":"ElementaryTypeName","src":"1379:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1378:9:3"},"scope":1043,"src":"1332:81:3","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":1020,"nodeType":"Block","src":"1545:140:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1004,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1559:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1005,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1565:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1569:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1565:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1559:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","id":1008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1577:25:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2","typeString":"literal_string \"Cannot transfer to self\""},"value":"Cannot transfer to self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2","typeString":"literal_string \"Cannot transfer to self\""}],"id":1003,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1551:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1551:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1010,"nodeType":"ExpressionStatement","src":"1551:52:3"},{"expression":{"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1011,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1610:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1012,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1627:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1610:19:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1014,"nodeType":"ExpressionStatement","src":"1610:19:3"},{"eventCall":{"arguments":[{"id":1016,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1668:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1017,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1677:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1015,"name":"OwnershipTransferRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"1641:26:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1641:39:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1019,"nodeType":"EmitStatement","src":"1636:44:3"}]},"documentation":{"id":998,"nodeType":"StructuredDocumentation","src":"1417:77:3","text":" @notice validate, transfer ownership, and emit relevant events"},"id":1021,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"1506:18:3","nodeType":"FunctionDefinition","parameters":{"id":1001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1000,"mutability":"mutable","name":"to","nameLocation":"1533:2:3","nodeType":"VariableDeclaration","scope":1021,"src":"1525:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":999,"name":"address","nodeType":"ElementaryTypeName","src":"1525:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1524:12:3"},"returnParameters":{"id":1002,"nodeType":"ParameterList","parameters":[],"src":"1545:0:3"},"scope":1043,"src":"1497:188:3","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1033,"nodeType":"Block","src":"1774:67:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1026,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1788:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1792:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1788:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1028,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1802:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1788:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1811:24:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3","typeString":"literal_string \"Only callable by owner\""},"value":"Only callable by owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3","typeString":"literal_string \"Only callable by owner\""}],"id":1025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1780:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1032,"nodeType":"ExpressionStatement","src":"1780:56:3"}]},"documentation":{"id":1022,"nodeType":"StructuredDocumentation","src":"1689:38:3","text":" @notice validate access"},"id":1034,"implemented":true,"kind":"function","modifiers":[],"name":"_validateOwnership","nameLocation":"1739:18:3","nodeType":"FunctionDefinition","parameters":{"id":1023,"nodeType":"ParameterList","parameters":[],"src":"1757:2:3"},"returnParameters":{"id":1024,"nodeType":"ParameterList","parameters":[],"src":"1774:0:3"},"scope":1043,"src":"1730:111:3","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1041,"nodeType":"Block","src":"1950:38:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1037,"name":"_validateOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"1956:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1956:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1039,"nodeType":"ExpressionStatement","src":"1956:20:3"},{"id":1040,"nodeType":"PlaceholderStatement","src":"1982:1:3"}]},"documentation":{"id":1035,"nodeType":"StructuredDocumentation","src":"1845:81:3","text":" @notice Reverts if called by anyone other than the contract owner."},"id":1042,"name":"onlyOwner","nameLocation":"1938:9:3","nodeType":"ModifierDefinition","parameters":{"id":1036,"nodeType":"ParameterList","parameters":[],"src":"1947:2:3"},"src":"1929:59:3","virtual":false,"visibility":"internal"}],"scope":1044,"src":"213:1777:3","usedErrors":[]}],"src":"32:1959:3"},"id":3},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[1076]},"id":1077,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1045,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:4"},{"abstract":false,"baseContracts":[],"canonicalName":"ChainlinkRequestInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1076,"linearizedBaseContracts":[1076],"name":"ChainlinkRequestInterface","nameLocation":"67:25:4","nodeType":"ContractDefinition","nodes":[{"functionSelector":"40429946","id":1064,"implemented":false,"kind":"function","modifiers":[],"name":"oracleRequest","nameLocation":"106:13:4","nodeType":"FunctionDefinition","parameters":{"id":1062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1047,"mutability":"mutable","name":"sender","nameLocation":"133:6:4","nodeType":"VariableDeclaration","scope":1064,"src":"125:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1046,"name":"address","nodeType":"ElementaryTypeName","src":"125:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1049,"mutability":"mutable","name":"requestPrice","nameLocation":"153:12:4","nodeType":"VariableDeclaration","scope":1064,"src":"145:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1048,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1051,"mutability":"mutable","name":"serviceAgreementID","nameLocation":"179:18:4","nodeType":"VariableDeclaration","scope":1064,"src":"171:26:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1053,"mutability":"mutable","name":"callbackAddress","nameLocation":"211:15:4","nodeType":"VariableDeclaration","scope":1064,"src":"203:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1052,"name":"address","nodeType":"ElementaryTypeName","src":"203:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1055,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"239:18:4","nodeType":"VariableDeclaration","scope":1064,"src":"232:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1054,"name":"bytes4","nodeType":"ElementaryTypeName","src":"232:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1057,"mutability":"mutable","name":"nonce","nameLocation":"271:5:4","nodeType":"VariableDeclaration","scope":1064,"src":"263:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1056,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1059,"mutability":"mutable","name":"dataVersion","nameLocation":"290:11:4","nodeType":"VariableDeclaration","scope":1064,"src":"282:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1058,"name":"uint256","nodeType":"ElementaryTypeName","src":"282:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1061,"mutability":"mutable","name":"data","nameLocation":"322:4:4","nodeType":"VariableDeclaration","scope":1064,"src":"307:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1060,"name":"bytes","nodeType":"ElementaryTypeName","src":"307:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"119:211:4"},"returnParameters":{"id":1063,"nodeType":"ParameterList","parameters":[],"src":"339:0:4"},"scope":1076,"src":"97:243:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ee4d553","id":1075,"implemented":false,"kind":"function","modifiers":[],"name":"cancelOracleRequest","nameLocation":"353:19:4","nodeType":"FunctionDefinition","parameters":{"id":1073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1066,"mutability":"mutable","name":"requestId","nameLocation":"386:9:4","nodeType":"VariableDeclaration","scope":1075,"src":"378:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1068,"mutability":"mutable","name":"payment","nameLocation":"409:7:4","nodeType":"VariableDeclaration","scope":1075,"src":"401:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1067,"name":"uint256","nodeType":"ElementaryTypeName","src":"401:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1070,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"429:18:4","nodeType":"VariableDeclaration","scope":1075,"src":"422:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1069,"name":"bytes4","nodeType":"ElementaryTypeName","src":"422:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1072,"mutability":"mutable","name":"expiration","nameLocation":"461:10:4","nodeType":"VariableDeclaration","scope":1075,"src":"453:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1071,"name":"uint256","nodeType":"ElementaryTypeName","src":"453:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"372:103:4"},"returnParameters":{"id":1074,"nodeType":"ParameterList","parameters":[],"src":"484:0:4"},"scope":1076,"src":"344:141:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1077,"src":"57:430:4","usedErrors":[]}],"src":"32:456:4"},"id":4},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","exportedSymbols":{"ENSInterface":[1156]},"id":1157,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1078,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:5"},{"abstract":false,"baseContracts":[],"canonicalName":"ENSInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1156,"linearizedBaseContracts":[1156],"name":"ENSInterface","nameLocation":"67:12:5","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"ce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82","id":1086,"name":"NewOwner","nameLocation":"161:8:5","nodeType":"EventDefinition","parameters":{"id":1085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1080,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"186:4:5","nodeType":"VariableDeclaration","scope":1086,"src":"170:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1082,"indexed":true,"mutability":"mutable","name":"label","nameLocation":"208:5:5","nodeType":"VariableDeclaration","scope":1086,"src":"192:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1084,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"223:5:5","nodeType":"VariableDeclaration","scope":1086,"src":"215:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1083,"name":"address","nodeType":"ElementaryTypeName","src":"215:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"169:60:5"},"src":"155:75:5"},{"anonymous":false,"eventSelector":"d4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266","id":1092,"name":"Transfer","nameLocation":"315:8:5","nodeType":"EventDefinition","parameters":{"id":1091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1088,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"340:4:5","nodeType":"VariableDeclaration","scope":1092,"src":"324:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1090,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"354:5:5","nodeType":"VariableDeclaration","scope":1092,"src":"346:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1089,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"323:37:5"},"src":"309:52:5"},{"anonymous":false,"eventSelector":"335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0","id":1098,"name":"NewResolver","nameLocation":"421:11:5","nodeType":"EventDefinition","parameters":{"id":1097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1094,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"449:4:5","nodeType":"VariableDeclaration","scope":1098,"src":"433:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"433:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1096,"indexed":false,"mutability":"mutable","name":"resolver","nameLocation":"463:8:5","nodeType":"VariableDeclaration","scope":1098,"src":"455:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1095,"name":"address","nodeType":"ElementaryTypeName","src":"455:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"432:40:5"},"src":"415:58:5"},{"anonymous":false,"eventSelector":"1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68","id":1104,"name":"NewTTL","nameLocation":"526:6:5","nodeType":"EventDefinition","parameters":{"id":1103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1100,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"549:4:5","nodeType":"VariableDeclaration","scope":1104,"src":"533:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"533:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1102,"indexed":false,"mutability":"mutable","name":"ttl","nameLocation":"562:3:5","nodeType":"VariableDeclaration","scope":1104,"src":"555:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1101,"name":"uint64","nodeType":"ElementaryTypeName","src":"555:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"532:34:5"},"src":"520:47:5"},{"functionSelector":"06ab5923","id":1113,"implemented":false,"kind":"function","modifiers":[],"name":"setSubnodeOwner","nameLocation":"580:15:5","nodeType":"FunctionDefinition","parameters":{"id":1111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1106,"mutability":"mutable","name":"node","nameLocation":"609:4:5","nodeType":"VariableDeclaration","scope":1113,"src":"601:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"601:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1108,"mutability":"mutable","name":"label","nameLocation":"627:5:5","nodeType":"VariableDeclaration","scope":1113,"src":"619:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"619:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1110,"mutability":"mutable","name":"owner","nameLocation":"646:5:5","nodeType":"VariableDeclaration","scope":1113,"src":"638:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1109,"name":"address","nodeType":"ElementaryTypeName","src":"638:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"595:60:5"},"returnParameters":{"id":1112,"nodeType":"ParameterList","parameters":[],"src":"664:0:5"},"scope":1156,"src":"571:94:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1896f70a","id":1120,"implemented":false,"kind":"function","modifiers":[],"name":"setResolver","nameLocation":"678:11:5","nodeType":"FunctionDefinition","parameters":{"id":1118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1115,"mutability":"mutable","name":"node","nameLocation":"698:4:5","nodeType":"VariableDeclaration","scope":1120,"src":"690:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"690:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1117,"mutability":"mutable","name":"resolver","nameLocation":"712:8:5","nodeType":"VariableDeclaration","scope":1120,"src":"704:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1116,"name":"address","nodeType":"ElementaryTypeName","src":"704:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"689:32:5"},"returnParameters":{"id":1119,"nodeType":"ParameterList","parameters":[],"src":"730:0:5"},"scope":1156,"src":"669:62:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5b0fc9c3","id":1127,"implemented":false,"kind":"function","modifiers":[],"name":"setOwner","nameLocation":"744:8:5","nodeType":"FunctionDefinition","parameters":{"id":1125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1122,"mutability":"mutable","name":"node","nameLocation":"761:4:5","nodeType":"VariableDeclaration","scope":1127,"src":"753:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"753:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1124,"mutability":"mutable","name":"owner","nameLocation":"775:5:5","nodeType":"VariableDeclaration","scope":1127,"src":"767:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1123,"name":"address","nodeType":"ElementaryTypeName","src":"767:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:29:5"},"returnParameters":{"id":1126,"nodeType":"ParameterList","parameters":[],"src":"790:0:5"},"scope":1156,"src":"735:56:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"14ab9038","id":1134,"implemented":false,"kind":"function","modifiers":[],"name":"setTTL","nameLocation":"804:6:5","nodeType":"FunctionDefinition","parameters":{"id":1132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1129,"mutability":"mutable","name":"node","nameLocation":"819:4:5","nodeType":"VariableDeclaration","scope":1134,"src":"811:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"811:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1131,"mutability":"mutable","name":"ttl","nameLocation":"832:3:5","nodeType":"VariableDeclaration","scope":1134,"src":"825:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1130,"name":"uint64","nodeType":"ElementaryTypeName","src":"825:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"810:26:5"},"returnParameters":{"id":1133,"nodeType":"ParameterList","parameters":[],"src":"845:0:5"},"scope":1156,"src":"795:51:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"02571be3","id":1141,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"859:5:5","nodeType":"FunctionDefinition","parameters":{"id":1137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1136,"mutability":"mutable","name":"node","nameLocation":"873:4:5","nodeType":"VariableDeclaration","scope":1141,"src":"865:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"865:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"864:14:5"},"returnParameters":{"id":1140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1141,"src":"902:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1138,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"901:9:5"},"scope":1156,"src":"850:61:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0178b8bf","id":1148,"implemented":false,"kind":"function","modifiers":[],"name":"resolver","nameLocation":"924:8:5","nodeType":"FunctionDefinition","parameters":{"id":1144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"mutability":"mutable","name":"node","nameLocation":"941:4:5","nodeType":"VariableDeclaration","scope":1148,"src":"933:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"933:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"932:14:5"},"returnParameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1148,"src":"970:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"969:9:5"},"scope":1156,"src":"915:64:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"16a25cbd","id":1155,"implemented":false,"kind":"function","modifiers":[],"name":"ttl","nameLocation":"992:3:5","nodeType":"FunctionDefinition","parameters":{"id":1151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1150,"mutability":"mutable","name":"node","nameLocation":"1004:4:5","nodeType":"VariableDeclaration","scope":1155,"src":"996:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"996:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"995:14:5"},"returnParameters":{"id":1154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1155,"src":"1033:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1152,"name":"uint64","nodeType":"ElementaryTypeName","src":"1033:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1032:8:5"},"scope":1156,"src":"983:58:5","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1157,"src":"57:986:5","usedErrors":[]}],"src":"32:1012:5"},"id":5},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","exportedSymbols":{"LinkTokenInterface":[1251]},"id":1252,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1158,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:6"},{"abstract":false,"baseContracts":[],"canonicalName":"LinkTokenInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1251,"linearizedBaseContracts":[1251],"name":"LinkTokenInterface","nameLocation":"67:18:6","nodeType":"ContractDefinition","nodes":[{"functionSelector":"dd62ed3e","id":1167,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"99:9:6","nodeType":"FunctionDefinition","parameters":{"id":1163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1160,"mutability":"mutable","name":"owner","nameLocation":"117:5:6","nodeType":"VariableDeclaration","scope":1167,"src":"109:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1159,"name":"address","nodeType":"ElementaryTypeName","src":"109:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1162,"mutability":"mutable","name":"spender","nameLocation":"132:7:6","nodeType":"VariableDeclaration","scope":1167,"src":"124:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1161,"name":"address","nodeType":"ElementaryTypeName","src":"124:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"108:32:6"},"returnParameters":{"id":1166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1165,"mutability":"mutable","name":"remaining","nameLocation":"172:9:6","nodeType":"VariableDeclaration","scope":1167,"src":"164:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1164,"name":"uint256","nodeType":"ElementaryTypeName","src":"164:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"163:19:6"},"scope":1251,"src":"90:93:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":1176,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"196:7:6","nodeType":"FunctionDefinition","parameters":{"id":1172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1169,"mutability":"mutable","name":"spender","nameLocation":"212:7:6","nodeType":"VariableDeclaration","scope":1176,"src":"204:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1168,"name":"address","nodeType":"ElementaryTypeName","src":"204:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1171,"mutability":"mutable","name":"value","nameLocation":"229:5:6","nodeType":"VariableDeclaration","scope":1176,"src":"221:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1170,"name":"uint256","nodeType":"ElementaryTypeName","src":"221:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"203:32:6"},"returnParameters":{"id":1175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1174,"mutability":"mutable","name":"success","nameLocation":"259:7:6","nodeType":"VariableDeclaration","scope":1176,"src":"254:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1173,"name":"bool","nodeType":"ElementaryTypeName","src":"254:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"253:14:6"},"scope":1251,"src":"187:81:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":1183,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"281:9:6","nodeType":"FunctionDefinition","parameters":{"id":1179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1178,"mutability":"mutable","name":"owner","nameLocation":"299:5:6","nodeType":"VariableDeclaration","scope":1183,"src":"291:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1177,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"290:15:6"},"returnParameters":{"id":1182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1181,"mutability":"mutable","name":"balance","nameLocation":"337:7:6","nodeType":"VariableDeclaration","scope":1183,"src":"329:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1180,"name":"uint256","nodeType":"ElementaryTypeName","src":"329:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"328:17:6"},"scope":1251,"src":"272:74:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":1188,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"359:8:6","nodeType":"FunctionDefinition","parameters":{"id":1184,"nodeType":"ParameterList","parameters":[],"src":"367:2:6"},"returnParameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1186,"mutability":"mutable","name":"decimalPlaces","nameLocation":"399:13:6","nodeType":"VariableDeclaration","scope":1188,"src":"393:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1185,"name":"uint8","nodeType":"ElementaryTypeName","src":"393:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"392:21:6"},"scope":1251,"src":"350:64:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"66188463","id":1197,"implemented":false,"kind":"function","modifiers":[],"name":"decreaseApproval","nameLocation":"427:16:6","nodeType":"FunctionDefinition","parameters":{"id":1193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1190,"mutability":"mutable","name":"spender","nameLocation":"452:7:6","nodeType":"VariableDeclaration","scope":1197,"src":"444:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1189,"name":"address","nodeType":"ElementaryTypeName","src":"444:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1192,"mutability":"mutable","name":"addedValue","nameLocation":"469:10:6","nodeType":"VariableDeclaration","scope":1197,"src":"461:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1191,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"443:37:6"},"returnParameters":{"id":1196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1195,"mutability":"mutable","name":"success","nameLocation":"504:7:6","nodeType":"VariableDeclaration","scope":1197,"src":"499:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1194,"name":"bool","nodeType":"ElementaryTypeName","src":"499:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"498:14:6"},"scope":1251,"src":"418:95:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d73dd623","id":1204,"implemented":false,"kind":"function","modifiers":[],"name":"increaseApproval","nameLocation":"526:16:6","nodeType":"FunctionDefinition","parameters":{"id":1202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1199,"mutability":"mutable","name":"spender","nameLocation":"551:7:6","nodeType":"VariableDeclaration","scope":1204,"src":"543:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1198,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1201,"mutability":"mutable","name":"subtractedValue","nameLocation":"568:15:6","nodeType":"VariableDeclaration","scope":1204,"src":"560:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1200,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"542:42:6"},"returnParameters":{"id":1203,"nodeType":"ParameterList","parameters":[],"src":"593:0:6"},"scope":1251,"src":"517:77:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"06fdde03","id":1209,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"607:4:6","nodeType":"FunctionDefinition","parameters":{"id":1205,"nodeType":"ParameterList","parameters":[],"src":"611:2:6"},"returnParameters":{"id":1208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1207,"mutability":"mutable","name":"tokenName","nameLocation":"651:9:6","nodeType":"VariableDeclaration","scope":1209,"src":"637:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1206,"name":"string","nodeType":"ElementaryTypeName","src":"637:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"636:25:6"},"scope":1251,"src":"598:64:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":1214,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"675:6:6","nodeType":"FunctionDefinition","parameters":{"id":1210,"nodeType":"ParameterList","parameters":[],"src":"681:2:6"},"returnParameters":{"id":1213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1212,"mutability":"mutable","name":"tokenSymbol","nameLocation":"721:11:6","nodeType":"VariableDeclaration","scope":1214,"src":"707:25:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1211,"name":"string","nodeType":"ElementaryTypeName","src":"707:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"706:27:6"},"scope":1251,"src":"666:68:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":1219,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"747:11:6","nodeType":"FunctionDefinition","parameters":{"id":1215,"nodeType":"ParameterList","parameters":[],"src":"758:2:6"},"returnParameters":{"id":1218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1217,"mutability":"mutable","name":"totalTokensIssued","nameLocation":"792:17:6","nodeType":"VariableDeclaration","scope":1219,"src":"784:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1216,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"783:27:6"},"scope":1251,"src":"738:73:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":1228,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"824:8:6","nodeType":"FunctionDefinition","parameters":{"id":1224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1221,"mutability":"mutable","name":"to","nameLocation":"841:2:6","nodeType":"VariableDeclaration","scope":1228,"src":"833:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1220,"name":"address","nodeType":"ElementaryTypeName","src":"833:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1223,"mutability":"mutable","name":"value","nameLocation":"853:5:6","nodeType":"VariableDeclaration","scope":1228,"src":"845:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1222,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"832:27:6"},"returnParameters":{"id":1227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1226,"mutability":"mutable","name":"success","nameLocation":"883:7:6","nodeType":"VariableDeclaration","scope":1228,"src":"878:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1225,"name":"bool","nodeType":"ElementaryTypeName","src":"878:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"877:14:6"},"scope":1251,"src":"815:77:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4000aea0","id":1239,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"905:15:6","nodeType":"FunctionDefinition","parameters":{"id":1235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1230,"mutability":"mutable","name":"to","nameLocation":"934:2:6","nodeType":"VariableDeclaration","scope":1239,"src":"926:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1229,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1232,"mutability":"mutable","name":"value","nameLocation":"950:5:6","nodeType":"VariableDeclaration","scope":1239,"src":"942:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1231,"name":"uint256","nodeType":"ElementaryTypeName","src":"942:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1234,"mutability":"mutable","name":"data","nameLocation":"976:4:6","nodeType":"VariableDeclaration","scope":1239,"src":"961:19:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1233,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"920:64:6"},"returnParameters":{"id":1238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1237,"mutability":"mutable","name":"success","nameLocation":"1008:7:6","nodeType":"VariableDeclaration","scope":1239,"src":"1003:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1236,"name":"bool","nodeType":"ElementaryTypeName","src":"1003:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1002:14:6"},"scope":1251,"src":"896:121:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":1250,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1030:12:6","nodeType":"FunctionDefinition","parameters":{"id":1246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1241,"mutability":"mutable","name":"from","nameLocation":"1056:4:6","nodeType":"VariableDeclaration","scope":1250,"src":"1048:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1240,"name":"address","nodeType":"ElementaryTypeName","src":"1048:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1243,"mutability":"mutable","name":"to","nameLocation":"1074:2:6","nodeType":"VariableDeclaration","scope":1250,"src":"1066:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1242,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1245,"mutability":"mutable","name":"value","nameLocation":"1090:5:6","nodeType":"VariableDeclaration","scope":1250,"src":"1082:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1042:57:6"},"returnParameters":{"id":1249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1248,"mutability":"mutable","name":"success","nameLocation":"1123:7:6","nodeType":"VariableDeclaration","scope":1250,"src":"1118:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1247,"name":"bool","nodeType":"ElementaryTypeName","src":"1118:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1117:14:6"},"scope":1251,"src":"1021:111:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1252,"src":"57:1077:6","usedErrors":[]}],"src":"32:1103:6"},"id":6},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[1076],"OperatorInterface":[1331],"OracleInterface":[1370]},"id":1332,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1253,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:7"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","file":"./OracleInterface.sol","id":1254,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1332,"sourceUnit":1371,"src":"57:31:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./ChainlinkRequestInterface.sol","id":1255,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1332,"sourceUnit":1077,"src":"89:41:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1256,"name":"OracleInterface","nameLocations":["163:15:7"],"nodeType":"IdentifierPath","referencedDeclaration":1370,"src":"163:15:7"},"id":1257,"nodeType":"InheritanceSpecifier","src":"163:15:7"},{"baseName":{"id":1258,"name":"ChainlinkRequestInterface","nameLocations":["180:25:7"],"nodeType":"IdentifierPath","referencedDeclaration":1076,"src":"180:25:7"},"id":1259,"nodeType":"InheritanceSpecifier","src":"180:25:7"}],"canonicalName":"OperatorInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1331,"linearizedBaseContracts":[1331,1076,1370],"name":"OperatorInterface","nameLocation":"142:17:7","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3c6d41b9","id":1276,"implemented":false,"kind":"function","modifiers":[],"name":"operatorRequest","nameLocation":"219:15:7","nodeType":"FunctionDefinition","parameters":{"id":1274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1261,"mutability":"mutable","name":"sender","nameLocation":"248:6:7","nodeType":"VariableDeclaration","scope":1276,"src":"240:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1260,"name":"address","nodeType":"ElementaryTypeName","src":"240:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1263,"mutability":"mutable","name":"payment","nameLocation":"268:7:7","nodeType":"VariableDeclaration","scope":1276,"src":"260:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1262,"name":"uint256","nodeType":"ElementaryTypeName","src":"260:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1265,"mutability":"mutable","name":"specId","nameLocation":"289:6:7","nodeType":"VariableDeclaration","scope":1276,"src":"281:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"281:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1267,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"308:18:7","nodeType":"VariableDeclaration","scope":1276,"src":"301:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1266,"name":"bytes4","nodeType":"ElementaryTypeName","src":"301:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1269,"mutability":"mutable","name":"nonce","nameLocation":"340:5:7","nodeType":"VariableDeclaration","scope":1276,"src":"332:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1268,"name":"uint256","nodeType":"ElementaryTypeName","src":"332:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1271,"mutability":"mutable","name":"dataVersion","nameLocation":"359:11:7","nodeType":"VariableDeclaration","scope":1276,"src":"351:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1270,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1273,"mutability":"mutable","name":"data","nameLocation":"391:4:7","nodeType":"VariableDeclaration","scope":1276,"src":"376:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1272,"name":"bytes","nodeType":"ElementaryTypeName","src":"376:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"234:165:7"},"returnParameters":{"id":1275,"nodeType":"ParameterList","parameters":[],"src":"408:0:7"},"scope":1331,"src":"210:199:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ae0bc76","id":1293,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest2","nameLocation":"422:21:7","nodeType":"FunctionDefinition","parameters":{"id":1289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1278,"mutability":"mutable","name":"requestId","nameLocation":"457:9:7","nodeType":"VariableDeclaration","scope":1293,"src":"449:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1277,"name":"bytes32","nodeType":"ElementaryTypeName","src":"449:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1280,"mutability":"mutable","name":"payment","nameLocation":"480:7:7","nodeType":"VariableDeclaration","scope":1293,"src":"472:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1279,"name":"uint256","nodeType":"ElementaryTypeName","src":"472:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1282,"mutability":"mutable","name":"callbackAddress","nameLocation":"501:15:7","nodeType":"VariableDeclaration","scope":1293,"src":"493:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1281,"name":"address","nodeType":"ElementaryTypeName","src":"493:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1284,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"529:18:7","nodeType":"VariableDeclaration","scope":1293,"src":"522:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1283,"name":"bytes4","nodeType":"ElementaryTypeName","src":"522:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1286,"mutability":"mutable","name":"expiration","nameLocation":"561:10:7","nodeType":"VariableDeclaration","scope":1293,"src":"553:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1285,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1288,"mutability":"mutable","name":"data","nameLocation":"592:4:7","nodeType":"VariableDeclaration","scope":1293,"src":"577:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1287,"name":"bytes","nodeType":"ElementaryTypeName","src":"577:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"443:157:7"},"returnParameters":{"id":1292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1293,"src":"619:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1290,"name":"bool","nodeType":"ElementaryTypeName","src":"619:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"618:6:7"},"scope":1331,"src":"413:212:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"902fc370","id":1304,"implemented":false,"kind":"function","modifiers":[],"name":"ownerTransferAndCall","nameLocation":"638:20:7","nodeType":"FunctionDefinition","parameters":{"id":1300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1295,"mutability":"mutable","name":"to","nameLocation":"672:2:7","nodeType":"VariableDeclaration","scope":1304,"src":"664:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1294,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1297,"mutability":"mutable","name":"value","nameLocation":"688:5:7","nodeType":"VariableDeclaration","scope":1304,"src":"680:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1296,"name":"uint256","nodeType":"ElementaryTypeName","src":"680:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1299,"mutability":"mutable","name":"data","nameLocation":"714:4:7","nodeType":"VariableDeclaration","scope":1304,"src":"699:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1298,"name":"bytes","nodeType":"ElementaryTypeName","src":"699:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"658:64:7"},"returnParameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1302,"mutability":"mutable","name":"success","nameLocation":"746:7:7","nodeType":"VariableDeclaration","scope":1304,"src":"741:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1301,"name":"bool","nodeType":"ElementaryTypeName","src":"741:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"740:14:7"},"scope":1331,"src":"629:126:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6bd59ec0","id":1313,"implemented":false,"kind":"function","modifiers":[],"name":"distributeFunds","nameLocation":"768:15:7","nodeType":"FunctionDefinition","parameters":{"id":1311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1307,"mutability":"mutable","name":"receivers","nameLocation":"811:9:7","nodeType":"VariableDeclaration","scope":1313,"src":"784:36:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_calldata_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":1305,"name":"address","nodeType":"ElementaryTypeName","src":"784:15:7","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1306,"nodeType":"ArrayTypeName","src":"784:17:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"},{"constant":false,"id":1310,"mutability":"mutable","name":"amounts","nameLocation":"841:7:7","nodeType":"VariableDeclaration","scope":1313,"src":"822:26:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1308,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1309,"nodeType":"ArrayTypeName","src":"822:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"783:66:7"},"returnParameters":{"id":1312,"nodeType":"ParameterList","parameters":[],"src":"866:0:7"},"scope":1331,"src":"759:108:7","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"2408afaa","id":1319,"implemented":false,"kind":"function","modifiers":[],"name":"getAuthorizedSenders","nameLocation":"880:20:7","nodeType":"FunctionDefinition","parameters":{"id":1314,"nodeType":"ParameterList","parameters":[],"src":"900:2:7"},"returnParameters":{"id":1318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1317,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1319,"src":"921:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1315,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1316,"nodeType":"ArrayTypeName","src":"921:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"920:18:7"},"scope":1331,"src":"871:68:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ee56997b","id":1325,"implemented":false,"kind":"function","modifiers":[],"name":"setAuthorizedSenders","nameLocation":"952:20:7","nodeType":"FunctionDefinition","parameters":{"id":1323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1322,"mutability":"mutable","name":"senders","nameLocation":"992:7:7","nodeType":"VariableDeclaration","scope":1325,"src":"973:26:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1320,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1321,"nodeType":"ArrayTypeName","src":"973:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"972:28:7"},"returnParameters":{"id":1324,"nodeType":"ParameterList","parameters":[],"src":"1009:0:7"},"scope":1331,"src":"943:67:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a0042526","id":1330,"implemented":false,"kind":"function","modifiers":[],"name":"getForwarder","nameLocation":"1023:12:7","nodeType":"FunctionDefinition","parameters":{"id":1326,"nodeType":"ParameterList","parameters":[],"src":"1035:2:7"},"returnParameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1328,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1330,"src":"1056:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1327,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1055:9:7"},"scope":1331,"src":"1014:51:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1332,"src":"132:935:7","usedErrors":[]}],"src":"32:1036:7"},"id":7},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","exportedSymbols":{"OracleInterface":[1370]},"id":1371,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1333,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:8"},{"abstract":false,"baseContracts":[],"canonicalName":"OracleInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1370,"linearizedBaseContracts":[1370],"name":"OracleInterface","nameLocation":"67:15:8","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4ab0d190","id":1350,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest","nameLocation":"96:20:8","nodeType":"FunctionDefinition","parameters":{"id":1346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1335,"mutability":"mutable","name":"requestId","nameLocation":"130:9:8","nodeType":"VariableDeclaration","scope":1350,"src":"122:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1337,"mutability":"mutable","name":"payment","nameLocation":"153:7:8","nodeType":"VariableDeclaration","scope":1350,"src":"145:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1336,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1339,"mutability":"mutable","name":"callbackAddress","nameLocation":"174:15:8","nodeType":"VariableDeclaration","scope":1350,"src":"166:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1338,"name":"address","nodeType":"ElementaryTypeName","src":"166:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1341,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"202:18:8","nodeType":"VariableDeclaration","scope":1350,"src":"195:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1340,"name":"bytes4","nodeType":"ElementaryTypeName","src":"195:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1343,"mutability":"mutable","name":"expiration","nameLocation":"234:10:8","nodeType":"VariableDeclaration","scope":1350,"src":"226:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1342,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1345,"mutability":"mutable","name":"data","nameLocation":"258:4:8","nodeType":"VariableDeclaration","scope":1350,"src":"250:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"116:150:8"},"returnParameters":{"id":1349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1350,"src":"285:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1347,"name":"bool","nodeType":"ElementaryTypeName","src":"285:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"284:6:8"},"scope":1370,"src":"87:204:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fa00763a","id":1357,"implemented":false,"kind":"function","modifiers":[],"name":"isAuthorizedSender","nameLocation":"304:18:8","nodeType":"FunctionDefinition","parameters":{"id":1353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1352,"mutability":"mutable","name":"node","nameLocation":"331:4:8","nodeType":"VariableDeclaration","scope":1357,"src":"323:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1351,"name":"address","nodeType":"ElementaryTypeName","src":"323:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322:14:8"},"returnParameters":{"id":1356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1357,"src":"360:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1354,"name":"bool","nodeType":"ElementaryTypeName","src":"360:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"359:6:8"},"scope":1370,"src":"295:71:8","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f3fef3a3","id":1364,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"379:8:8","nodeType":"FunctionDefinition","parameters":{"id":1362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1359,"mutability":"mutable","name":"recipient","nameLocation":"396:9:8","nodeType":"VariableDeclaration","scope":1364,"src":"388:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1358,"name":"address","nodeType":"ElementaryTypeName","src":"388:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1361,"mutability":"mutable","name":"amount","nameLocation":"415:6:8","nodeType":"VariableDeclaration","scope":1364,"src":"407:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1360,"name":"uint256","nodeType":"ElementaryTypeName","src":"407:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"387:35:8"},"returnParameters":{"id":1363,"nodeType":"ParameterList","parameters":[],"src":"431:0:8"},"scope":1370,"src":"370:62:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"50188301","id":1369,"implemented":false,"kind":"function","modifiers":[],"name":"withdrawable","nameLocation":"445:12:8","nodeType":"FunctionDefinition","parameters":{"id":1365,"nodeType":"ParameterList","parameters":[],"src":"457:2:8"},"returnParameters":{"id":1368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1369,"src":"483:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1366,"name":"uint256","nodeType":"ElementaryTypeName","src":"483:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"482:9:8"},"scope":1370,"src":"436:56:8","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1371,"src":"57:437:8","usedErrors":[]}],"src":"32:463:8"},"id":8},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol","exportedSymbols":{"OwnableInterface":[1386]},"id":1387,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1372,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:9"},{"abstract":false,"baseContracts":[],"canonicalName":"OwnableInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1386,"linearizedBaseContracts":[1386],"name":"OwnableInterface","nameLocation":"67:16:9","nodeType":"ContractDefinition","nodes":[{"functionSelector":"8da5cb5b","id":1377,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"97:5:9","nodeType":"FunctionDefinition","parameters":{"id":1373,"nodeType":"ParameterList","parameters":[],"src":"102:2:9"},"returnParameters":{"id":1376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1377,"src":"123:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1374,"name":"address","nodeType":"ElementaryTypeName","src":"123:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"122:9:9"},"scope":1386,"src":"88:44:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f2fde38b","id":1382,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"145:17:9","nodeType":"FunctionDefinition","parameters":{"id":1380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1379,"mutability":"mutable","name":"recipient","nameLocation":"171:9:9","nodeType":"VariableDeclaration","scope":1382,"src":"163:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1378,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"162:19:9"},"returnParameters":{"id":1381,"nodeType":"ParameterList","parameters":[],"src":"190:0:9"},"scope":1386,"src":"136:55:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"79ba5097","id":1385,"implemented":false,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"204:15:9","nodeType":"FunctionDefinition","parameters":{"id":1383,"nodeType":"ParameterList","parameters":[],"src":"219:2:9"},"returnParameters":{"id":1384,"nodeType":"ParameterList","parameters":[],"src":"230:0:9"},"scope":1386,"src":"195:36:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1387,"src":"57:176:9","usedErrors":[]}],"src":"32:202:9"},"id":9},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","exportedSymbols":{"PointerInterface":[1394]},"id":1395,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1388,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:10"},{"abstract":false,"baseContracts":[],"canonicalName":"PointerInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1394,"linearizedBaseContracts":[1394],"name":"PointerInterface","nameLocation":"67:16:10","nodeType":"ContractDefinition","nodes":[{"functionSelector":"38cc4831","id":1393,"implemented":false,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"97:10:10","nodeType":"FunctionDefinition","parameters":{"id":1389,"nodeType":"ParameterList","parameters":[],"src":"107:2:10"},"returnParameters":{"id":1392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1393,"src":"133:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1390,"name":"address","nodeType":"ElementaryTypeName","src":"133:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"132:9:10"},"scope":1394,"src":"88:54:10","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1395,"src":"57:87:10","usedErrors":[]}],"src":"32:113:10"},"id":10},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","exportedSymbols":{"BufferChainlink":[1916]},"id":1917,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1396,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:11"},{"abstract":false,"baseContracts":[],"canonicalName":"BufferChainlink","contractDependencies":[],"contractKind":"library","documentation":{"id":1397,"nodeType":"StructuredDocumentation","src":"57:383:11","text":" @dev A library for working with mutable byte buffers in Solidity.\n Byte buffers are mutable and expandable, and provide a variety of primitives\n for writing to them. At any time you can fetch a bytes object containing the\n current contents of the buffer. The bytes object should not be stored between\n operations, as it may change due to resizing of the buffer."},"fullyImplemented":true,"id":1916,"linearizedBaseContracts":[1916],"name":"BufferChainlink","nameLocation":"449:15:11","nodeType":"ContractDefinition","nodes":[{"canonicalName":"BufferChainlink.buffer","id":1402,"members":[{"constant":false,"id":1399,"mutability":"mutable","name":"buf","nameLocation":"743:3:11","nodeType":"VariableDeclaration","scope":1402,"src":"737:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1398,"name":"bytes","nodeType":"ElementaryTypeName","src":"737:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1401,"mutability":"mutable","name":"capacity","nameLocation":"760:8:11","nodeType":"VariableDeclaration","scope":1402,"src":"752:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1400,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"buffer","nameLocation":"724:6:11","nodeType":"StructDefinition","scope":1916,"src":"717:56:11","visibility":"public"},{"body":{"id":1439,"nodeType":"Block","src":"1090:310:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1414,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1100:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1100:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1117:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1100:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1429,"nodeType":"IfStatement","src":"1096:71:11","trueBody":{"id":1428,"nodeType":"Block","src":"1120:47:11","statements":[{"expression":{"id":1426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1419,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1128:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1140:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1421,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1146:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1157:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1146:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1424,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1145:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1140:20:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1128:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1427,"nodeType":"ExpressionStatement","src":"1128:32:11"}]}},{"expression":{"id":1434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1430,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1406,"src":"1214:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1218:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"1214:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1433,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1229:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1214:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1435,"nodeType":"ExpressionStatement","src":"1214:23:11"},{"AST":{"nodeType":"YulBlock","src":"1252:128:11","statements":[{"nodeType":"YulVariableDeclaration","src":"1260:22:11","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1277:4:11","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1271:5:11"},"nodeType":"YulFunctionCall","src":"1271:11:11"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"1264:3:11","type":""}]},{"expression":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"1296:3:11"},{"name":"ptr","nodeType":"YulIdentifier","src":"1301:3:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1289:6:11"},"nodeType":"YulFunctionCall","src":"1289:16:11"},"nodeType":"YulExpressionStatement","src":"1289:16:11"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1319:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"1324:1:11","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1312:6:11"},"nodeType":"YulFunctionCall","src":"1312:14:11"},"nodeType":"YulExpressionStatement","src":"1312:14:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1340:4:11","type":"","value":"0x40"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1350:2:11","type":"","value":"32"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1358:3:11"},{"name":"capacity","nodeType":"YulIdentifier","src":"1363:8:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1354:3:11"},"nodeType":"YulFunctionCall","src":"1354:18:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1346:3:11"},"nodeType":"YulFunctionCall","src":"1346:27:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:11"},"nodeType":"YulFunctionCall","src":"1333:41:11"},"nodeType":"YulExpressionStatement","src":"1333:41:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1406,"isOffset":false,"isSlot":false,"src":"1296:3:11","valueSize":1},{"declaration":1408,"isOffset":false,"isSlot":false,"src":"1363:8:11","valueSize":1}],"id":1436,"nodeType":"InlineAssembly","src":"1243:137:11"},{"expression":{"id":1437,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1406,"src":"1392:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1413,"id":1438,"nodeType":"Return","src":"1385:10:11"}]},"documentation":{"id":1403,"nodeType":"StructuredDocumentation","src":"777:221:11","text":" @dev Initializes a buffer with an initial capacity.\n @param buf The buffer to initialize.\n @param capacity The number of bytes of space to allocate the buffer.\n @return The buffer, for chaining."},"id":1440,"implemented":true,"kind":"function","modifiers":[],"name":"init","nameLocation":"1010:4:11","nodeType":"FunctionDefinition","parameters":{"id":1409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1406,"mutability":"mutable","name":"buf","nameLocation":"1029:3:11","nodeType":"VariableDeclaration","scope":1440,"src":"1015:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1405,"nodeType":"UserDefinedTypeName","pathNode":{"id":1404,"name":"buffer","nameLocations":["1015:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1015:6:11"},"referencedDeclaration":1402,"src":"1015:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1408,"mutability":"mutable","name":"capacity","nameLocation":"1042:8:11","nodeType":"VariableDeclaration","scope":1440,"src":"1034:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1407,"name":"uint256","nodeType":"ElementaryTypeName","src":"1034:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:37:11"},"returnParameters":{"id":1413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1440,"src":"1075:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1411,"nodeType":"UserDefinedTypeName","pathNode":{"id":1410,"name":"buffer","nameLocations":["1075:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1075:6:11"},"referencedDeclaration":1402,"src":"1075:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1074:15:11"},"scope":1916,"src":"1001:399:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1468,"nodeType":"Block","src":"1707:90:11","statements":[{"assignments":[1451],"declarations":[{"constant":false,"id":1451,"mutability":"mutable","name":"buf","nameLocation":"1727:3:11","nodeType":"VariableDeclaration","scope":1468,"src":"1713:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1450,"nodeType":"UserDefinedTypeName","pathNode":{"id":1449,"name":"buffer","nameLocations":["1713:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1713:6:11"},"referencedDeclaration":1402,"src":"1713:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"id":1452,"nodeType":"VariableDeclarationStatement","src":"1713:17:11"},{"expression":{"id":1457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1453,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1736:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1740:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"1736:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1456,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"1746:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1736:11:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1458,"nodeType":"ExpressionStatement","src":"1736:11:11"},{"expression":{"id":1464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1459,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1753:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1757:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"1753:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1462,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"1768:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1770:6:11","memberName":"length","nodeType":"MemberAccess","src":"1768:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1753:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1465,"nodeType":"ExpressionStatement","src":"1753:23:11"},{"expression":{"id":1466,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1789:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1448,"id":1467,"nodeType":"Return","src":"1782:10:11"}]},"documentation":{"id":1441,"nodeType":"StructuredDocumentation","src":"1404:227:11","text":" @dev Initializes a new buffer from an existing bytes object.\n Changes to the buffer may mutate the original value.\n @param b The bytes object to initialize the buffer with.\n @return A new buffer."},"id":1469,"implemented":true,"kind":"function","modifiers":[],"name":"fromBytes","nameLocation":"1643:9:11","nodeType":"FunctionDefinition","parameters":{"id":1444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1443,"mutability":"mutable","name":"b","nameLocation":"1666:1:11","nodeType":"VariableDeclaration","scope":1469,"src":"1653:14:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1442,"name":"bytes","nodeType":"ElementaryTypeName","src":"1653:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1652:16:11"},"returnParameters":{"id":1448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1469,"src":"1692:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1446,"nodeType":"UserDefinedTypeName","pathNode":{"id":1445,"name":"buffer","nameLocations":["1692:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1692:6:11"},"referencedDeclaration":1402,"src":"1692:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1691:15:11"},"scope":1916,"src":"1634:163:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1492,"nodeType":"Block","src":"1867:90:11","statements":[{"assignments":[1478],"declarations":[{"constant":false,"id":1478,"mutability":"mutable","name":"oldbuf","nameLocation":"1886:6:11","nodeType":"VariableDeclaration","scope":1492,"src":"1873:19:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1477,"name":"bytes","nodeType":"ElementaryTypeName","src":"1873:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1481,"initialValue":{"expression":{"id":1479,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1895:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1899:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"1895:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1873:29:11"},{"expression":{"arguments":[{"id":1483,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1913:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1484,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1474,"src":"1918:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1482,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1440,"src":"1908:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1908:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1486,"nodeType":"ExpressionStatement","src":"1908:19:11"},{"expression":{"arguments":[{"id":1488,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1940:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1489,"name":"oldbuf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1478,"src":"1945:6:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1487,"name":"append","nodeType":"Identifier","overloadedDeclarations":[1636,1659],"referencedDeclaration":1659,"src":"1933:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":1490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1491,"nodeType":"ExpressionStatement","src":"1933:19:11"}]},"id":1493,"implemented":true,"kind":"function","modifiers":[],"name":"resize","nameLocation":"1810:6:11","nodeType":"FunctionDefinition","parameters":{"id":1475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1472,"mutability":"mutable","name":"buf","nameLocation":"1831:3:11","nodeType":"VariableDeclaration","scope":1493,"src":"1817:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1471,"nodeType":"UserDefinedTypeName","pathNode":{"id":1470,"name":"buffer","nameLocations":["1817:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1817:6:11"},"referencedDeclaration":1402,"src":"1817:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1474,"mutability":"mutable","name":"capacity","nameLocation":"1844:8:11","nodeType":"VariableDeclaration","scope":1493,"src":"1836:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1473,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1816:37:11"},"returnParameters":{"id":1476,"nodeType":"ParameterList","parameters":[],"src":"1867:0:11"},"scope":1916,"src":"1801:156:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1511,"nodeType":"Block","src":"2027:58:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1502,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1495,"src":"2037:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1503,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"2041:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2037:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1508,"nodeType":"IfStatement","src":"2033:34:11","trueBody":{"id":1507,"nodeType":"Block","src":"2044:23:11","statements":[{"expression":{"id":1505,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1495,"src":"2059:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1501,"id":1506,"nodeType":"Return","src":"2052:8:11"}]}},{"expression":{"id":1509,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"2079:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1501,"id":1510,"nodeType":"Return","src":"2072:8:11"}]},"id":1512,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"1970:3:11","nodeType":"FunctionDefinition","parameters":{"id":1498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1495,"mutability":"mutable","name":"a","nameLocation":"1982:1:11","nodeType":"VariableDeclaration","scope":1512,"src":"1974:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1974:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1497,"mutability":"mutable","name":"b","nameLocation":"1993:1:11","nodeType":"VariableDeclaration","scope":1512,"src":"1985:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1496,"name":"uint256","nodeType":"ElementaryTypeName","src":"1985:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1973:22:11"},"returnParameters":{"id":1501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1512,"src":"2018:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1499,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2017:9:11"},"scope":1916,"src":"1961:124:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1525,"nodeType":"Block","src":"2300:97:11","statements":[{"AST":{"nodeType":"YulBlock","src":"2315:62:11","statements":[{"nodeType":"YulVariableDeclaration","src":"2323:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"2343:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2337:5:11"},"nodeType":"YulFunctionCall","src":"2337:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"2327:6:11","type":""}]},{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"2361:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"2369:1:11","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2354:6:11"},"nodeType":"YulFunctionCall","src":"2354:17:11"},"nodeType":"YulExpressionStatement","src":"2354:17:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1516,"isOffset":false,"isSlot":false,"src":"2343:3:11","valueSize":1}],"id":1522,"nodeType":"InlineAssembly","src":"2306:71:11"},{"expression":{"id":1523,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"2389:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1521,"id":1524,"nodeType":"Return","src":"2382:10:11"}]},"documentation":{"id":1513,"nodeType":"StructuredDocumentation","src":"2089:133:11","text":" @dev Sets buffer length to 0.\n @param buf The buffer to truncate.\n @return The original buffer, for chaining.."},"id":1526,"implemented":true,"kind":"function","modifiers":[],"name":"truncate","nameLocation":"2234:8:11","nodeType":"FunctionDefinition","parameters":{"id":1517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1516,"mutability":"mutable","name":"buf","nameLocation":"2257:3:11","nodeType":"VariableDeclaration","scope":1526,"src":"2243:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1515,"nodeType":"UserDefinedTypeName","pathNode":{"id":1514,"name":"buffer","nameLocations":["2243:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2243:6:11"},"referencedDeclaration":1402,"src":"2243:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2242:19:11"},"returnParameters":{"id":1521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1526,"src":"2285:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1519,"nodeType":"UserDefinedTypeName","pathNode":{"id":1518,"name":"buffer","nameLocations":["2285:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2285:6:11"},"referencedDeclaration":1402,"src":"2285:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2284:15:11"},"scope":1916,"src":"2225:172:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1611,"nodeType":"Block","src":"2882:1073:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1543,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2896:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":1544,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"2903:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2908:6:11","memberName":"length","nodeType":"MemberAccess","src":"2903:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2896:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1542,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2888:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2888:27:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1548,"nodeType":"ExpressionStatement","src":"2888:27:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1549,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1532,"src":"2926:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1550,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2932:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1552,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2938:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2942:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"2938:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1569,"nodeType":"IfStatement","src":"2922:90:11","trueBody":{"id":1568,"nodeType":"Block","src":"2952:60:11","statements":[{"expression":{"arguments":[{"id":1556,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2967:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":1558,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2976:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2980:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"2976:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1560,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2990:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1561,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1532,"src":"2996:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2990:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1557,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1512,"src":"2972:3:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2972:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3003:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2972:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1555,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"2960:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2960:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1567,"nodeType":"ExpressionStatement","src":"2960:45:11"}]}},{"assignments":[1571],"declarations":[{"constant":false,"id":1571,"mutability":"mutable","name":"dest","nameLocation":"3026:4:11","nodeType":"VariableDeclaration","scope":1611,"src":"3018:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1570,"name":"uint256","nodeType":"ElementaryTypeName","src":"3018:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1572,"nodeType":"VariableDeclarationStatement","src":"3018:12:11"},{"assignments":[1574],"declarations":[{"constant":false,"id":1574,"mutability":"mutable","name":"src","nameLocation":"3044:3:11","nodeType":"VariableDeclaration","scope":1611,"src":"3036:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1573,"name":"uint256","nodeType":"ElementaryTypeName","src":"3036:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1575,"nodeType":"VariableDeclarationStatement","src":"3036:11:11"},{"AST":{"nodeType":"YulBlock","src":"3062:430:11","statements":[{"nodeType":"YulVariableDeclaration","src":"3113:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"3133:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3127:5:11"},"nodeType":"YulFunctionCall","src":"3127:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"3117:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3184:27:11","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3204:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3198:5:11"},"nodeType":"YulFunctionCall","src":"3198:13:11"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"3188:6:11","type":""}]},{"nodeType":"YulAssignment","src":"3291:33:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3307:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"3315:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3303:3:11"},"nodeType":"YulFunctionCall","src":"3303:15:11"},{"name":"off","nodeType":"YulIdentifier","src":"3320:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3299:3:11"},"nodeType":"YulFunctionCall","src":"3299:25:11"},"variableNames":[{"name":"dest","nodeType":"YulIdentifier","src":"3291:4:11"}]},{"body":{"nodeType":"YulBlock","src":"3412:47:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3429:6:11"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3441:3:11"},{"name":"off","nodeType":"YulIdentifier","src":"3446:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3437:3:11"},"nodeType":"YulFunctionCall","src":"3437:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3422:6:11"},"nodeType":"YulFunctionCall","src":"3422:29:11"},"nodeType":"YulExpressionStatement","src":"3422:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3393:3:11"},{"name":"off","nodeType":"YulIdentifier","src":"3398:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3389:3:11"},"nodeType":"YulFunctionCall","src":"3389:13:11"},{"name":"buflen","nodeType":"YulIdentifier","src":"3404:6:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3386:2:11"},"nodeType":"YulFunctionCall","src":"3386:25:11"},"nodeType":"YulIf","src":"3383:76:11"},{"nodeType":"YulAssignment","src":"3466:20:11","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3477:4:11"},{"kind":"number","nodeType":"YulLiteral","src":"3483:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3473:3:11"},"nodeType":"YulFunctionCall","src":"3473:13:11"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"3466:3:11"}]}]},"evmVersion":"london","externalReferences":[{"declaration":1530,"isOffset":false,"isSlot":false,"src":"3133:3:11","valueSize":1},{"declaration":1534,"isOffset":false,"isSlot":false,"src":"3477:4:11","valueSize":1},{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3291:4:11","valueSize":1},{"declaration":1536,"isOffset":false,"isSlot":false,"src":"3393:3:11","valueSize":1},{"declaration":1536,"isOffset":false,"isSlot":false,"src":"3441:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3320:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3398:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3446:3:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3466:3:11","valueSize":1}],"id":1576,"nodeType":"InlineAssembly","src":"3053:439:11"},{"body":{"id":1593,"nodeType":"Block","src":"3573:100:11","statements":[{"AST":{"nodeType":"YulBlock","src":"3590:42:11","statements":[{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3607:4:11"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3619:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3613:5:11"},"nodeType":"YulFunctionCall","src":"3613:10:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3600:6:11"},"nodeType":"YulFunctionCall","src":"3600:24:11"},"nodeType":"YulExpressionStatement","src":"3600:24:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3607:4:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3619:3:11","valueSize":1}],"id":1584,"nodeType":"InlineAssembly","src":"3581:51:11"},{"expression":{"id":1587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1585,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"3639:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3647:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3639:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1588,"nodeType":"ExpressionStatement","src":"3639:10:11"},{"expression":{"id":1591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1589,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"3657:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3664:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3657:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1592,"nodeType":"ExpressionStatement","src":"3657:9:11"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1577,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3551:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":1578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3558:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3551:9:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1594,"loopExpression":{"expression":{"id":1582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1580,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3562:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":1581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3569:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3562:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1583,"nodeType":"ExpressionStatement","src":"3562:9:11"},"nodeType":"ForStatement","src":"3544:129:11"},{"id":1608,"nodeType":"UncheckedBlock","src":"3707:227:11","statements":[{"assignments":[1596],"declarations":[{"constant":false,"id":1596,"mutability":"mutable","name":"mask","nameLocation":"3733:4:11","nodeType":"VariableDeclaration","scope":1608,"src":"3725:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1595,"name":"uint256","nodeType":"ElementaryTypeName","src":"3725:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1606,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3741:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3747:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1599,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3752:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3747:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1601,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3746:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3741:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1603,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3740:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3760:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3740:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3725:36:11"},{"AST":{"nodeType":"YulBlock","src":"3778:150:11","statements":[{"nodeType":"YulVariableDeclaration","src":"3788:41:11","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3813:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3807:5:11"},"nodeType":"YulFunctionCall","src":"3807:10:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"3823:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3819:3:11"},"nodeType":"YulFunctionCall","src":"3819:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3803:3:11"},"nodeType":"YulFunctionCall","src":"3803:26:11"},"variables":[{"name":"srcpart","nodeType":"YulTypedName","src":"3792:7:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3838:38:11","value":{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3864:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3858:5:11"},"nodeType":"YulFunctionCall","src":"3858:11:11"},{"name":"mask","nodeType":"YulIdentifier","src":"3871:4:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3854:3:11"},"nodeType":"YulFunctionCall","src":"3854:22:11"},"variables":[{"name":"destpart","nodeType":"YulTypedName","src":"3842:8:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3892:4:11"},{"arguments":[{"name":"destpart","nodeType":"YulIdentifier","src":"3901:8:11"},{"name":"srcpart","nodeType":"YulIdentifier","src":"3911:7:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3898:2:11"},"nodeType":"YulFunctionCall","src":"3898:21:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3885:6:11"},"nodeType":"YulFunctionCall","src":"3885:35:11"},"nodeType":"YulExpressionStatement","src":"3885:35:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3864:4:11","valueSize":1},{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3892:4:11","valueSize":1},{"declaration":1596,"isOffset":false,"isSlot":false,"src":"3823:4:11","valueSize":1},{"declaration":1596,"isOffset":false,"isSlot":false,"src":"3871:4:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3813:3:11","valueSize":1}],"id":1607,"nodeType":"InlineAssembly","src":"3769:159:11"}]},{"expression":{"id":1609,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"3947:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1541,"id":1610,"nodeType":"Return","src":"3940:10:11"}]},"documentation":{"id":1527,"nodeType":"StructuredDocumentation","src":"2401:341:11","text":" @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The start offset to write to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1612,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"2754:5:11","nodeType":"FunctionDefinition","parameters":{"id":1537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1530,"mutability":"mutable","name":"buf","nameLocation":"2779:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2765:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1529,"nodeType":"UserDefinedTypeName","pathNode":{"id":1528,"name":"buffer","nameLocations":["2765:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2765:6:11"},"referencedDeclaration":1402,"src":"2765:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1532,"mutability":"mutable","name":"off","nameLocation":"2796:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2788:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1531,"name":"uint256","nodeType":"ElementaryTypeName","src":"2788:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1534,"mutability":"mutable","name":"data","nameLocation":"2818:4:11","nodeType":"VariableDeclaration","scope":1612,"src":"2805:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1533,"name":"bytes","nodeType":"ElementaryTypeName","src":"2805:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1536,"mutability":"mutable","name":"len","nameLocation":"2836:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2828:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1535,"name":"uint256","nodeType":"ElementaryTypeName","src":"2828:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2759:84:11"},"returnParameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1612,"src":"2867:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1539,"nodeType":"UserDefinedTypeName","pathNode":{"id":1538,"name":"buffer","nameLocations":["2867:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2867:6:11"},"referencedDeclaration":1402,"src":"2867:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2866:15:11"},"scope":1916,"src":"2745:1210:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1635,"nodeType":"Block","src":"4379:55:11","statements":[{"expression":{"arguments":[{"id":1627,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"4398:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1628,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"4403:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4407:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4403:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4411:6:11","memberName":"length","nodeType":"MemberAccess","src":"4403:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1631,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"4419:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1632,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"4425:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1626,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1612,"src":"4392:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4392:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1625,"id":1634,"nodeType":"Return","src":"4385:44:11"}]},"documentation":{"id":1613,"nodeType":"StructuredDocumentation","src":"3959:296:11","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1636,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4267:6:11","nodeType":"FunctionDefinition","parameters":{"id":1621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1616,"mutability":"mutable","name":"buf","nameLocation":"4293:3:11","nodeType":"VariableDeclaration","scope":1636,"src":"4279:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1615,"nodeType":"UserDefinedTypeName","pathNode":{"id":1614,"name":"buffer","nameLocations":["4279:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4279:6:11"},"referencedDeclaration":1402,"src":"4279:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1618,"mutability":"mutable","name":"data","nameLocation":"4315:4:11","nodeType":"VariableDeclaration","scope":1636,"src":"4302:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1617,"name":"bytes","nodeType":"ElementaryTypeName","src":"4302:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1620,"mutability":"mutable","name":"len","nameLocation":"4333:3:11","nodeType":"VariableDeclaration","scope":1636,"src":"4325:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1619,"name":"uint256","nodeType":"ElementaryTypeName","src":"4325:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4273:67:11"},"returnParameters":{"id":1625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1636,"src":"4364:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1623,"nodeType":"UserDefinedTypeName","pathNode":{"id":1622,"name":"buffer","nameLocations":["4364:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4364:6:11"},"referencedDeclaration":1402,"src":"4364:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4363:15:11"},"scope":1916,"src":"4258:176:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1658,"nodeType":"Block","src":"4784:63:11","statements":[{"expression":{"arguments":[{"id":1649,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1640,"src":"4803:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1650,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1640,"src":"4808:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4812:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4808:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4816:6:11","memberName":"length","nodeType":"MemberAccess","src":"4808:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1653,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"4824:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1654,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"4830:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4835:6:11","memberName":"length","nodeType":"MemberAccess","src":"4830:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1648,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1612,"src":"4797:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4797:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1647,"id":1657,"nodeType":"Return","src":"4790:52:11"}]},"documentation":{"id":1637,"nodeType":"StructuredDocumentation","src":"4438:251:11","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1659,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4701:6:11","nodeType":"FunctionDefinition","parameters":{"id":1643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1640,"mutability":"mutable","name":"buf","nameLocation":"4722:3:11","nodeType":"VariableDeclaration","scope":1659,"src":"4708:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1639,"nodeType":"UserDefinedTypeName","pathNode":{"id":1638,"name":"buffer","nameLocations":["4708:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4708:6:11"},"referencedDeclaration":1402,"src":"4708:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1642,"mutability":"mutable","name":"data","nameLocation":"4740:4:11","nodeType":"VariableDeclaration","scope":1659,"src":"4727:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1641,"name":"bytes","nodeType":"ElementaryTypeName","src":"4727:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4707:38:11"},"returnParameters":{"id":1647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1659,"src":"4769:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1645,"nodeType":"UserDefinedTypeName","pathNode":{"id":1644,"name":"buffer","nameLocations":["4769:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4769:6:11"},"referencedDeclaration":1402,"src":"4769:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4768:15:11"},"scope":1916,"src":"4692:155:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1690,"nodeType":"Block","src":"5266:521:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1673,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"5276:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":1674,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5283:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5287:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"5283:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5276:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1686,"nodeType":"IfStatement","src":"5272:69:11","trueBody":{"id":1685,"nodeType":"Block","src":"5297:44:11","statements":[{"expression":{"arguments":[{"id":1678,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5312:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1679,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5317:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5321:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"5317:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5332:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5317:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1677,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"5305:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5305:29:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1684,"nodeType":"ExpressionStatement","src":"5305:29:11"}]}},{"AST":{"nodeType":"YulBlock","src":"5356:411:11","statements":[{"nodeType":"YulVariableDeclaration","src":"5407:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"5427:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5421:5:11"},"nodeType":"YulFunctionCall","src":"5421:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"5411:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5478:27:11","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5498:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5492:5:11"},"nodeType":"YulFunctionCall","src":"5492:13:11"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"5482:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5576:37:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5596:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"5604:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5592:3:11"},"nodeType":"YulFunctionCall","src":"5592:16:11"},{"kind":"number","nodeType":"YulLiteral","src":"5610:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5588:3:11"},"nodeType":"YulFunctionCall","src":"5588:25:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"5580:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"5628:4:11"},{"name":"data","nodeType":"YulIdentifier","src":"5634:4:11"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"5620:7:11"},"nodeType":"YulFunctionCall","src":"5620:19:11"},"nodeType":"YulExpressionStatement","src":"5620:19:11"},{"body":{"nodeType":"YulBlock","src":"5713:48:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5730:6:11"},{"arguments":[{"name":"buflen","nodeType":"YulIdentifier","src":"5742:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"5750:1:11","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:11"},"nodeType":"YulFunctionCall","src":"5738:14:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5723:6:11"},"nodeType":"YulFunctionCall","src":"5723:30:11"},"nodeType":"YulExpressionStatement","src":"5723:30:11"}]},"condition":{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"5700:3:11"},{"name":"buflen","nodeType":"YulIdentifier","src":"5705:6:11"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5697:2:11"},"nodeType":"YulFunctionCall","src":"5697:15:11"},"nodeType":"YulIf","src":"5694:67:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1663,"isOffset":false,"isSlot":false,"src":"5427:3:11","valueSize":1},{"declaration":1667,"isOffset":false,"isSlot":false,"src":"5634:4:11","valueSize":1},{"declaration":1665,"isOffset":false,"isSlot":false,"src":"5604:3:11","valueSize":1},{"declaration":1665,"isOffset":false,"isSlot":false,"src":"5700:3:11","valueSize":1}],"id":1687,"nodeType":"InlineAssembly","src":"5347:420:11"},{"expression":{"id":1688,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5779:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1672,"id":1689,"nodeType":"Return","src":"5772:10:11"}]},"documentation":{"id":1660,"nodeType":"StructuredDocumentation","src":"4851:294:11","text":" @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write the byte at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1691,"implemented":true,"kind":"function","modifiers":[],"name":"writeUint8","nameLocation":"5157:10:11","nodeType":"FunctionDefinition","parameters":{"id":1668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1663,"mutability":"mutable","name":"buf","nameLocation":"5187:3:11","nodeType":"VariableDeclaration","scope":1691,"src":"5173:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1662,"nodeType":"UserDefinedTypeName","pathNode":{"id":1661,"name":"buffer","nameLocations":["5173:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"5173:6:11"},"referencedDeclaration":1402,"src":"5173:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1665,"mutability":"mutable","name":"off","nameLocation":"5204:3:11","nodeType":"VariableDeclaration","scope":1691,"src":"5196:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1664,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1667,"mutability":"mutable","name":"data","nameLocation":"5219:4:11","nodeType":"VariableDeclaration","scope":1691,"src":"5213:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1666,"name":"uint8","nodeType":"ElementaryTypeName","src":"5213:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5167:60:11"},"returnParameters":{"id":1672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1691,"src":"5251:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1670,"nodeType":"UserDefinedTypeName","pathNode":{"id":1669,"name":"buffer","nameLocations":["5251:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"5251:6:11"},"referencedDeclaration":1402,"src":"5251:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"5250:15:11"},"scope":1916,"src":"5148:639:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1711,"nodeType":"Block","src":"6130:55:11","statements":[{"expression":{"arguments":[{"id":1704,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1695,"src":"6154:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1705,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1695,"src":"6159:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6163:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"6159:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6167:6:11","memberName":"length","nodeType":"MemberAccess","src":"6159:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1708,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"6175:4:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1703,"name":"writeUint8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"6143:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6143:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1702,"id":1710,"nodeType":"Return","src":"6136:44:11"}]},"documentation":{"id":1692,"nodeType":"StructuredDocumentation","src":"5791:246:11","text":" @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1712,"implemented":true,"kind":"function","modifiers":[],"name":"appendUint8","nameLocation":"6049:11:11","nodeType":"FunctionDefinition","parameters":{"id":1698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1695,"mutability":"mutable","name":"buf","nameLocation":"6075:3:11","nodeType":"VariableDeclaration","scope":1712,"src":"6061:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1694,"nodeType":"UserDefinedTypeName","pathNode":{"id":1693,"name":"buffer","nameLocations":["6061:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6061:6:11"},"referencedDeclaration":1402,"src":"6061:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1697,"mutability":"mutable","name":"data","nameLocation":"6086:4:11","nodeType":"VariableDeclaration","scope":1712,"src":"6080:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1696,"name":"uint8","nodeType":"ElementaryTypeName","src":"6080:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6060:31:11"},"returnParameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1712,"src":"6115:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1700,"nodeType":"UserDefinedTypeName","pathNode":{"id":1699,"name":"buffer","nameLocations":["6115:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6115:6:11"},"referencedDeclaration":1402,"src":"6115:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6114:15:11"},"scope":1916,"src":"6040:145:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1771,"nodeType":"Block","src":"6677:652:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1728,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6687:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1729,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6693:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1731,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6699:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6703:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"6699:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1745,"nodeType":"IfStatement","src":"6683:73:11","trueBody":{"id":1744,"nodeType":"Block","src":"6713:43:11","statements":[{"expression":{"arguments":[{"id":1735,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6728:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1736,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6734:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1737,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6740:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6734:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1739,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6733:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6747:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6733:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1734,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"6721:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6721:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1743,"nodeType":"ExpressionStatement","src":"6721:28:11"}]}},{"id":1768,"nodeType":"UncheckedBlock","src":"6762:547:11","statements":[{"assignments":[1747],"declarations":[{"constant":false,"id":1747,"mutability":"mutable","name":"mask","nameLocation":"6788:4:11","nodeType":"VariableDeclaration","scope":1768,"src":"6780:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1746,"name":"uint256","nodeType":"ElementaryTypeName","src":"6780:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1754,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6796:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1749,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6801:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6796:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1751,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6795:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6808:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6795:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6780:29:11"},{"expression":{"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1755,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1720,"src":"6843:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1756,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1720,"src":"6850:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":1757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6859:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6864:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1759,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6869:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6864:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1761,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6863:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6859:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1763,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6858:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6850:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6843:31:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1766,"nodeType":"ExpressionStatement","src":"6843:31:11"},{"AST":{"nodeType":"YulBlock","src":"6891:412:11","statements":[{"nodeType":"YulVariableDeclaration","src":"6946:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"6966:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6960:5:11"},"nodeType":"YulFunctionCall","src":"6960:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"6950:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7051:38:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7071:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"7079:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7067:3:11"},"nodeType":"YulFunctionCall","src":"7067:16:11"},{"name":"len","nodeType":"YulIdentifier","src":"7085:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7063:3:11"},"nodeType":"YulFunctionCall","src":"7063:26:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"7055:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7105:4:11"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7124:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7118:5:11"},"nodeType":"YulFunctionCall","src":"7118:11:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"7135:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7131:3:11"},"nodeType":"YulFunctionCall","src":"7131:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7114:3:11"},"nodeType":"YulFunctionCall","src":"7114:27:11"},{"name":"data","nodeType":"YulIdentifier","src":"7143:4:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7111:2:11"},"nodeType":"YulFunctionCall","src":"7111:37:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7098:6:11"},"nodeType":"YulFunctionCall","src":"7098:51:11"},"nodeType":"YulExpressionStatement","src":"7098:51:11"},{"body":{"nodeType":"YulBlock","src":"7244:51:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7263:6:11"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7275:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"7280:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7271:3:11"},"nodeType":"YulFunctionCall","src":"7271:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7256:6:11"},"nodeType":"YulFunctionCall","src":"7256:29:11"},"nodeType":"YulExpressionStatement","src":"7256:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7218:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"7223:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7214:3:11"},"nodeType":"YulFunctionCall","src":"7214:13:11"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7235:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7229:5:11"},"nodeType":"YulFunctionCall","src":"7229:13:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7211:2:11"},"nodeType":"YulFunctionCall","src":"7211:32:11"},"nodeType":"YulIf","src":"7208:87:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1716,"isOffset":false,"isSlot":false,"src":"6966:3:11","valueSize":1},{"declaration":1720,"isOffset":false,"isSlot":false,"src":"7143:4:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7085:3:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7223:3:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7280:3:11","valueSize":1},{"declaration":1747,"isOffset":false,"isSlot":false,"src":"7135:4:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7079:3:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7218:3:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7275:3:11","valueSize":1}],"id":1767,"nodeType":"InlineAssembly","src":"6882:421:11"}]},{"expression":{"id":1769,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"7321:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1727,"id":1770,"nodeType":"Return","src":"7314:10:11"}]},"documentation":{"id":1713,"nodeType":"StructuredDocumentation","src":"6189:354:11","text":" @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (left-aligned).\n @return The original buffer, for chaining."},"id":1772,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"6555:5:11","nodeType":"FunctionDefinition","parameters":{"id":1723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1716,"mutability":"mutable","name":"buf","nameLocation":"6580:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6566:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1715,"nodeType":"UserDefinedTypeName","pathNode":{"id":1714,"name":"buffer","nameLocations":["6566:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6566:6:11"},"referencedDeclaration":1402,"src":"6566:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1718,"mutability":"mutable","name":"off","nameLocation":"6597:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6589:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1717,"name":"uint256","nodeType":"ElementaryTypeName","src":"6589:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1720,"mutability":"mutable","name":"data","nameLocation":"6614:4:11","nodeType":"VariableDeclaration","scope":1772,"src":"6606:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1719,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6606:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1722,"mutability":"mutable","name":"len","nameLocation":"6632:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6624:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1721,"name":"uint256","nodeType":"ElementaryTypeName","src":"6624:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6560:79:11"},"returnParameters":{"id":1727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1772,"src":"6662:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1725,"nodeType":"UserDefinedTypeName","pathNode":{"id":1724,"name":"buffer","nameLocations":["6662:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6662:6:11"},"referencedDeclaration":1402,"src":"6662:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6661:15:11"},"scope":1916,"src":"6546:783:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1796,"nodeType":"Block","src":"7746:52:11","statements":[{"expression":{"arguments":[{"id":1787,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"7765:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1788,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"7770:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1791,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1780,"src":"7783:4:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7775:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7775:7:11","typeDescriptions":{}}},"id":1792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7775:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7790:2:11","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1786,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"7759:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7759:34:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1785,"id":1795,"nodeType":"Return","src":"7752:41:11"}]},"documentation":{"id":1773,"nodeType":"StructuredDocumentation","src":"7333:288:11","text":" @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1797,"implemented":true,"kind":"function","modifiers":[],"name":"writeBytes20","nameLocation":"7633:12:11","nodeType":"FunctionDefinition","parameters":{"id":1781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1776,"mutability":"mutable","name":"buf","nameLocation":"7665:3:11","nodeType":"VariableDeclaration","scope":1797,"src":"7651:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1775,"nodeType":"UserDefinedTypeName","pathNode":{"id":1774,"name":"buffer","nameLocations":["7651:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"7651:6:11"},"referencedDeclaration":1402,"src":"7651:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1778,"mutability":"mutable","name":"off","nameLocation":"7682:3:11","nodeType":"VariableDeclaration","scope":1797,"src":"7674:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1777,"name":"uint256","nodeType":"ElementaryTypeName","src":"7674:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1780,"mutability":"mutable","name":"data","nameLocation":"7699:4:11","nodeType":"VariableDeclaration","scope":1797,"src":"7691:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1779,"name":"bytes20","nodeType":"ElementaryTypeName","src":"7691:7:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"7645:62:11"},"returnParameters":{"id":1785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1797,"src":"7731:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1783,"nodeType":"UserDefinedTypeName","pathNode":{"id":1782,"name":"buffer","nameLocations":["7731:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"7731:6:11"},"referencedDeclaration":1402,"src":"7731:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"7730:15:11"},"scope":1916,"src":"7624:174:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1821,"nodeType":"Block","src":"8149:63:11","statements":[{"expression":{"arguments":[{"id":1810,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"8168:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1811,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"8173:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8177:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"8173:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8181:6:11","memberName":"length","nodeType":"MemberAccess","src":"8173:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1816,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1803,"src":"8197:4:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8189:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8189:7:11","typeDescriptions":{}}},"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8189:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8204:2:11","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1809,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"8162:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8162:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1808,"id":1820,"nodeType":"Return","src":"8155:52:11"}]},"documentation":{"id":1798,"nodeType":"StructuredDocumentation","src":"7802:250:11","text":" @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chhaining."},"id":1822,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes20","nameLocation":"8064:13:11","nodeType":"FunctionDefinition","parameters":{"id":1804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1801,"mutability":"mutable","name":"buf","nameLocation":"8092:3:11","nodeType":"VariableDeclaration","scope":1822,"src":"8078:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1800,"nodeType":"UserDefinedTypeName","pathNode":{"id":1799,"name":"buffer","nameLocations":["8078:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8078:6:11"},"referencedDeclaration":1402,"src":"8078:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1803,"mutability":"mutable","name":"data","nameLocation":"8105:4:11","nodeType":"VariableDeclaration","scope":1822,"src":"8097:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1802,"name":"bytes20","nodeType":"ElementaryTypeName","src":"8097:7:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"8077:33:11"},"returnParameters":{"id":1808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1822,"src":"8134:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1806,"nodeType":"UserDefinedTypeName","pathNode":{"id":1805,"name":"buffer","nameLocations":["8134:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8134:6:11"},"referencedDeclaration":1402,"src":"8134:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8133:15:11"},"scope":1916,"src":"8055:157:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1843,"nodeType":"Block","src":"8562:54:11","statements":[{"expression":{"arguments":[{"id":1835,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"8581:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1836,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"8586:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8590:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"8586:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8594:6:11","memberName":"length","nodeType":"MemberAccess","src":"8586:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1839,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1828,"src":"8602:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3332","id":1840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8608:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":1834,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"8575:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8575:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1833,"id":1842,"nodeType":"Return","src":"8568:43:11"}]},"documentation":{"id":1823,"nodeType":"StructuredDocumentation","src":"8216:249:11","text":" @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1844,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes32","nameLocation":"8477:13:11","nodeType":"FunctionDefinition","parameters":{"id":1829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1826,"mutability":"mutable","name":"buf","nameLocation":"8505:3:11","nodeType":"VariableDeclaration","scope":1844,"src":"8491:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1825,"nodeType":"UserDefinedTypeName","pathNode":{"id":1824,"name":"buffer","nameLocations":["8491:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8491:6:11"},"referencedDeclaration":1402,"src":"8491:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1828,"mutability":"mutable","name":"data","nameLocation":"8518:4:11","nodeType":"VariableDeclaration","scope":1844,"src":"8510:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1827,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8510:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8490:33:11"},"returnParameters":{"id":1833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1844,"src":"8547:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1831,"nodeType":"UserDefinedTypeName","pathNode":{"id":1830,"name":"buffer","nameLocations":["8547:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8547:6:11"},"referencedDeclaration":1402,"src":"8547:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8546:15:11"},"scope":1916,"src":"8468:148:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1890,"nodeType":"Block","src":"9108:541:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1860,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9118:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1861,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"9124:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1863,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9130:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9134:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"9130:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1877,"nodeType":"IfStatement","src":"9114:73:11","trueBody":{"id":1876,"nodeType":"Block","src":"9144:43:11","statements":[{"expression":{"arguments":[{"id":1867,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9159:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1868,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9165:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1869,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"9171:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9165:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1871,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9164:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9178:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9164:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1866,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"9152:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9152:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1875,"nodeType":"ExpressionStatement","src":"9152:28:11"}]}},{"assignments":[1879],"declarations":[{"constant":false,"id":1879,"mutability":"mutable","name":"mask","nameLocation":"9201:4:11","nodeType":"VariableDeclaration","scope":1890,"src":"9193:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1878,"name":"uint256","nodeType":"ElementaryTypeName","src":"9193:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1886,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9209:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1881,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9214:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9209:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1883,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9208:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9221:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9208:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9193:29:11"},{"AST":{"nodeType":"YulBlock","src":"9237:392:11","statements":[{"nodeType":"YulVariableDeclaration","src":"9288:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"9308:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9302:5:11"},"nodeType":"YulFunctionCall","src":"9302:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"9292:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9389:38:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9409:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"9417:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9405:3:11"},"nodeType":"YulFunctionCall","src":"9405:16:11"},{"name":"len","nodeType":"YulIdentifier","src":"9423:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9401:3:11"},"nodeType":"YulFunctionCall","src":"9401:26:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"9393:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9441:4:11"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9460:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9454:5:11"},"nodeType":"YulFunctionCall","src":"9454:11:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"9471:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9467:3:11"},"nodeType":"YulFunctionCall","src":"9467:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9450:3:11"},"nodeType":"YulFunctionCall","src":"9450:27:11"},{"name":"data","nodeType":"YulIdentifier","src":"9479:4:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9447:2:11"},"nodeType":"YulFunctionCall","src":"9447:37:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9434:6:11"},"nodeType":"YulFunctionCall","src":"9434:51:11"},"nodeType":"YulExpressionStatement","src":"9434:51:11"},{"body":{"nodeType":"YulBlock","src":"9576:47:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9593:6:11"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9605:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"9610:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9601:3:11"},"nodeType":"YulFunctionCall","src":"9601:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9586:6:11"},"nodeType":"YulFunctionCall","src":"9586:29:11"},"nodeType":"YulExpressionStatement","src":"9586:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9550:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"9555:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9546:3:11"},"nodeType":"YulFunctionCall","src":"9546:13:11"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9567:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9561:5:11"},"nodeType":"YulFunctionCall","src":"9561:13:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9543:2:11"},"nodeType":"YulFunctionCall","src":"9543:32:11"},"nodeType":"YulIf","src":"9540:83:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1848,"isOffset":false,"isSlot":false,"src":"9308:3:11","valueSize":1},{"declaration":1852,"isOffset":false,"isSlot":false,"src":"9479:4:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9423:3:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9555:3:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9610:3:11","valueSize":1},{"declaration":1879,"isOffset":false,"isSlot":false,"src":"9471:4:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9417:3:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9550:3:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9605:3:11","valueSize":1}],"id":1887,"nodeType":"InlineAssembly","src":"9228:401:11"},{"expression":{"id":1888,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9641:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1859,"id":1889,"nodeType":"Return","src":"9634:10:11"}]},"documentation":{"id":1845,"nodeType":"StructuredDocumentation","src":"8620:351:11","text":" @dev Writes an integer to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (right-aligned).\n @return The original buffer, for chaining."},"id":1891,"implemented":true,"kind":"function","modifiers":[],"name":"writeInt","nameLocation":"8983:8:11","nodeType":"FunctionDefinition","parameters":{"id":1855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"mutability":"mutable","name":"buf","nameLocation":"9011:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"8997:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1847,"nodeType":"UserDefinedTypeName","pathNode":{"id":1846,"name":"buffer","nameLocations":["8997:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8997:6:11"},"referencedDeclaration":1402,"src":"8997:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1850,"mutability":"mutable","name":"off","nameLocation":"9028:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"9020:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1849,"name":"uint256","nodeType":"ElementaryTypeName","src":"9020:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1852,"mutability":"mutable","name":"data","nameLocation":"9045:4:11","nodeType":"VariableDeclaration","scope":1891,"src":"9037:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1851,"name":"uint256","nodeType":"ElementaryTypeName","src":"9037:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1854,"mutability":"mutable","name":"len","nameLocation":"9063:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"9055:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1853,"name":"uint256","nodeType":"ElementaryTypeName","src":"9055:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8991:79:11"},"returnParameters":{"id":1859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1891,"src":"9093:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1857,"nodeType":"UserDefinedTypeName","pathNode":{"id":1856,"name":"buffer","nameLocations":["9093:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9093:6:11"},"referencedDeclaration":1402,"src":"9093:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9092:15:11"},"scope":1916,"src":"8974:675:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1914,"nodeType":"Block","src":"10013:58:11","statements":[{"expression":{"arguments":[{"id":1906,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1895,"src":"10035:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1907,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1895,"src":"10040:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10044:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"10040:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10048:6:11","memberName":"length","nodeType":"MemberAccess","src":"10040:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1910,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"10056:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1911,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1899,"src":"10062:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1905,"name":"writeInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"10026:8:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10026:40:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1904,"id":1913,"nodeType":"Return","src":"10019:47:11"}]},"documentation":{"id":1892,"nodeType":"StructuredDocumentation","src":"9653:238:11","text":" @dev Appends a byte to the end of the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer."},"id":1915,"implemented":true,"kind":"function","modifiers":[],"name":"appendInt","nameLocation":"9903:9:11","nodeType":"FunctionDefinition","parameters":{"id":1900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1895,"mutability":"mutable","name":"buf","nameLocation":"9932:3:11","nodeType":"VariableDeclaration","scope":1915,"src":"9918:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1894,"nodeType":"UserDefinedTypeName","pathNode":{"id":1893,"name":"buffer","nameLocations":["9918:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9918:6:11"},"referencedDeclaration":1402,"src":"9918:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1897,"mutability":"mutable","name":"data","nameLocation":"9949:4:11","nodeType":"VariableDeclaration","scope":1915,"src":"9941:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1896,"name":"uint256","nodeType":"ElementaryTypeName","src":"9941:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1899,"mutability":"mutable","name":"len","nameLocation":"9967:3:11","nodeType":"VariableDeclaration","scope":1915,"src":"9959:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1898,"name":"uint256","nodeType":"ElementaryTypeName","src":"9959:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9912:62:11"},"returnParameters":{"id":1904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1915,"src":"9998:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1902,"nodeType":"UserDefinedTypeName","pathNode":{"id":1901,"name":"buffer","nameLocations":["9998:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9998:6:11"},"referencedDeclaration":1402,"src":"9998:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9997:15:11"},"scope":1916,"src":"9894:177:11","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1917,"src":"441:9632:11","usedErrors":[]}],"src":"32:10042:11"},"id":11},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363]},"id":2364,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1918,"literals":["solidity",">=","0.4",".19"],"nodeType":"PragmaDirective","src":"32:25:12"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./BufferChainlink.sol","id":1920,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2364,"sourceUnit":1917,"src":"59:54:12","symbolAliases":[{"foreign":{"id":1919,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"67:15:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"CBORChainlink","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2363,"linearizedBaseContracts":[2363],"name":"CBORChainlink","nameLocation":"123:13:12","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1924,"libraryName":{"id":1921,"name":"BufferChainlink","nameLocations":["147:15:12"],"nodeType":"IdentifierPath","referencedDeclaration":1916,"src":"147:15:12"},"nodeType":"UsingForDirective","src":"141:49:12","typeName":{"id":1923,"nodeType":"UserDefinedTypeName","pathNode":{"id":1922,"name":"BufferChainlink.buffer","nameLocations":["167:15:12","183:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"167:22:12"},"referencedDeclaration":1402,"src":"167:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"constant":true,"id":1927,"mutability":"constant","name":"MAJOR_TYPE_INT","nameLocation":"217:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"194:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1925,"name":"uint8","nodeType":"ElementaryTypeName","src":"194:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":1926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"234:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":1930,"mutability":"constant","name":"MAJOR_TYPE_NEGATIVE_INT","nameLocation":"262:23:12","nodeType":"VariableDeclaration","scope":2363,"src":"239:50:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1928,"name":"uint8","nodeType":"ElementaryTypeName","src":"239:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":1933,"mutability":"constant","name":"MAJOR_TYPE_BYTES","nameLocation":"316:16:12","nodeType":"VariableDeclaration","scope":2363,"src":"293:43:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1931,"name":"uint8","nodeType":"ElementaryTypeName","src":"293:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"335:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1936,"mutability":"constant","name":"MAJOR_TYPE_STRING","nameLocation":"363:17:12","nodeType":"VariableDeclaration","scope":2363,"src":"340:44:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1934,"name":"uint8","nodeType":"ElementaryTypeName","src":"340:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"383:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"constant":true,"id":1939,"mutability":"constant","name":"MAJOR_TYPE_ARRAY","nameLocation":"411:16:12","nodeType":"VariableDeclaration","scope":2363,"src":"388:43:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1937,"name":"uint8","nodeType":"ElementaryTypeName","src":"388:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":1938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"430:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"private"},{"constant":true,"id":1942,"mutability":"constant","name":"MAJOR_TYPE_MAP","nameLocation":"458:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"435:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1940,"name":"uint8","nodeType":"ElementaryTypeName","src":"435:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"35","id":1941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"475:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"visibility":"private"},{"constant":true,"id":1945,"mutability":"constant","name":"MAJOR_TYPE_TAG","nameLocation":"503:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"480:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1943,"name":"uint8","nodeType":"ElementaryTypeName","src":"480:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"36","id":1944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"520:1:12","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"visibility":"private"},{"constant":true,"id":1948,"mutability":"constant","name":"MAJOR_TYPE_CONTENT_FREE","nameLocation":"548:23:12","nodeType":"VariableDeclaration","scope":2363,"src":"525:50:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1946,"name":"uint8","nodeType":"ElementaryTypeName","src":"525:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"37","id":1947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"574:1:12","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"private"},{"constant":true,"id":1951,"mutability":"constant","name":"TAG_TYPE_BIGNUM","nameLocation":"603:15:12","nodeType":"VariableDeclaration","scope":2363,"src":"580:42:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1949,"name":"uint8","nodeType":"ElementaryTypeName","src":"580:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"621:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1954,"mutability":"constant","name":"TAG_TYPE_NEGATIVE_BIGNUM","nameLocation":"649:24:12","nodeType":"VariableDeclaration","scope":2363,"src":"626:51:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1952,"name":"uint8","nodeType":"ElementaryTypeName","src":"626:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"676:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"body":{"id":2083,"nodeType":"Block","src":"785:522:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1964,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"794:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3233","id":1965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"803:2:12","typeDescriptions":{"typeIdentifier":"t_rational_23_by_1","typeString":"int_const 23"},"value":"23"},"src":"794:11:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1982,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"876:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646","id":1983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"885:4:12","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"876:13:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2007,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"988:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"307846464646","id":2008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"997:6:12","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"value":"0xFFFF"},"src":"988:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2032,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1102:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646464646464646","id":2033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:10:12","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xFFFFFFFF"},"src":"1102:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2078,"nodeType":"Block","src":"1216:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2062,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1247:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1256:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1247:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2065,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1246:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3237","id":2066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:2:12","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"1246:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1240:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2060,"name":"uint8","nodeType":"ElementaryTypeName","src":"1240:5:12","typeDescriptions":{}}},"id":2068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1240:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2057,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1224:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1228:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1224:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1224:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2070,"nodeType":"ExpressionStatement","src":"1224:41:12"},{"expression":{"arguments":[{"id":2074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1287:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"38","id":2075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1294:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"expression":{"id":2071,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1273:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1277:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1273:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1273:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2077,"nodeType":"ExpressionStatement","src":"1273:23:12"}]},"id":2079,"nodeType":"IfStatement","src":"1098:205:12","trueBody":{"id":2056,"nodeType":"Block","src":"1123:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2040,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1154:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1163:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1154:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2043,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1153:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3236","id":2044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1168:2:12","typeDescriptions":{"typeIdentifier":"t_rational_26_by_1","typeString":"int_const 26"},"value":"26"},"src":"1153:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1147:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2038,"name":"uint8","nodeType":"ElementaryTypeName","src":"1147:5:12","typeDescriptions":{}}},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2035,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1131:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1135:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1131:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1131:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2048,"nodeType":"ExpressionStatement","src":"1131:41:12"},{"expression":{"arguments":[{"id":2052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1194:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"34","id":2053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1201:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"expression":{"id":2049,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1180:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1184:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1180:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1180:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2055,"nodeType":"ExpressionStatement","src":"1180:23:12"}]}},"id":2080,"nodeType":"IfStatement","src":"984:319:12","trueBody":{"id":2031,"nodeType":"Block","src":"1005:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2015,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1036:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1036:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2018,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1035:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3235","id":2019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:2:12","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"src":"1035:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1029:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2013,"name":"uint8","nodeType":"ElementaryTypeName","src":"1029:5:12","typeDescriptions":{}}},"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1029:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2010,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1013:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1017:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1013:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1013:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2023,"nodeType":"ExpressionStatement","src":"1013:41:12"},{"expression":{"arguments":[{"id":2027,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1076:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"32","id":2028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1083:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":2024,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1062:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1066:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1062:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1062:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2030,"nodeType":"ExpressionStatement","src":"1062:23:12"}]}},"id":2081,"nodeType":"IfStatement","src":"872:431:12","trueBody":{"id":2006,"nodeType":"Block","src":"891:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1990,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"922:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"922:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1993,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"921:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3234","id":1994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:2:12","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"921:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1988,"name":"uint8","nodeType":"ElementaryTypeName","src":"915:5:12","typeDescriptions":{}}},"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1985,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"899:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"903:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"899:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"899:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1998,"nodeType":"ExpressionStatement","src":"899:41:12"},{"expression":{"arguments":[{"id":2002,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"962:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"31","id":2003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"969:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":1999,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"948:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"952:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"948:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2005,"nodeType":"ExpressionStatement","src":"948:23:12"}]}},"id":2082,"nodeType":"IfStatement","src":"791:512:12","trueBody":{"id":1981,"nodeType":"Block","src":"807:59:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1972,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"838:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"847:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"838:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1975,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"837:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":1976,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"852:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"837:20:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"831:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1970,"name":"uint8","nodeType":"ElementaryTypeName","src":"831:5:12","typeDescriptions":{}}},"id":1978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"831:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1967,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"815:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"819:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"815:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"815:44:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1980,"nodeType":"ExpressionStatement","src":"815:44:12"}]}}]},"id":2084,"implemented":true,"kind":"function","modifiers":[],"name":"encodeFixedNumeric","nameLocation":"691:18:12","nodeType":"FunctionDefinition","parameters":{"id":1962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1957,"mutability":"mutable","name":"buf","nameLocation":"740:3:12","nodeType":"VariableDeclaration","scope":2084,"src":"710:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1956,"nodeType":"UserDefinedTypeName","pathNode":{"id":1955,"name":"BufferChainlink.buffer","nameLocations":["710:15:12","726:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"710:22:12"},"referencedDeclaration":1402,"src":"710:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1959,"mutability":"mutable","name":"major","nameLocation":"751:5:12","nodeType":"VariableDeclaration","scope":2084,"src":"745:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1958,"name":"uint8","nodeType":"ElementaryTypeName","src":"745:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1961,"mutability":"mutable","name":"value","nameLocation":"765:5:12","nodeType":"VariableDeclaration","scope":2084,"src":"758:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1960,"name":"uint64","nodeType":"ElementaryTypeName","src":"758:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"709:62:12"},"returnParameters":{"id":1963,"nodeType":"ParameterList","parameters":[],"src":"785:0:12"},"scope":2363,"src":"682:625:12","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2106,"nodeType":"Block","src":"1408:52:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2097,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2089,"src":"1437:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1446:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1437:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1436:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3331","id":2101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1451:2:12","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"1436:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1430:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2095,"name":"uint8","nodeType":"ElementaryTypeName","src":"1430:5:12","typeDescriptions":{}}},"id":2103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1430:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2092,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2087,"src":"1414:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1418:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1414:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2105,"nodeType":"ExpressionStatement","src":"1414:41:12"}]},"id":2107,"implemented":true,"kind":"function","modifiers":[],"name":"encodeIndefiniteLengthType","nameLocation":"1320:26:12","nodeType":"FunctionDefinition","parameters":{"id":2090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2087,"mutability":"mutable","name":"buf","nameLocation":"1377:3:12","nodeType":"VariableDeclaration","scope":2107,"src":"1347:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2086,"nodeType":"UserDefinedTypeName","pathNode":{"id":2085,"name":"BufferChainlink.buffer","nameLocations":["1347:15:12","1363:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1347:22:12"},"referencedDeclaration":1402,"src":"1347:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2089,"mutability":"mutable","name":"major","nameLocation":"1388:5:12","nodeType":"VariableDeclaration","scope":2107,"src":"1382:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2088,"name":"uint8","nodeType":"ElementaryTypeName","src":"1382:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1346:48:12"},"returnParameters":{"id":2091,"nodeType":"ParameterList","parameters":[],"src":"1408:0:12"},"scope":2363,"src":"1311:149:12","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2135,"nodeType":"Block","src":"1545:155:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1554:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":2116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1562:18:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1554:26:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2133,"nodeType":"Block","src":"1627:69:12","statements":[{"expression":{"arguments":[{"id":2125,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"1654:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2126,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1927,"src":"1659:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"id":2129,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1682:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1675:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2127,"name":"uint64","nodeType":"ElementaryTypeName","src":"1675:6:12","typeDescriptions":{}}},"id":2130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2124,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"1635:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1635:54:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2132,"nodeType":"ExpressionStatement","src":"1635:54:12"}]},"id":2134,"nodeType":"IfStatement","src":"1551:145:12","trueBody":{"id":2123,"nodeType":"Block","src":"1582:39:12","statements":[{"expression":{"arguments":[{"id":2119,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"1603:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2120,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1608:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2118,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2258,"src":"1590:12:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":2121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2122,"nodeType":"ExpressionStatement","src":"1590:24:12"}]}}]},"id":2136,"implemented":true,"kind":"function","modifiers":[],"name":"encodeUInt","nameLocation":"1473:10:12","nodeType":"FunctionDefinition","parameters":{"id":2113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2110,"mutability":"mutable","name":"buf","nameLocation":"1514:3:12","nodeType":"VariableDeclaration","scope":2136,"src":"1484:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2109,"nodeType":"UserDefinedTypeName","pathNode":{"id":2108,"name":"BufferChainlink.buffer","nameLocations":["1484:15:12","1500:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1484:22:12"},"referencedDeclaration":1402,"src":"1484:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2112,"mutability":"mutable","name":"value","nameLocation":"1524:5:12","nodeType":"VariableDeclaration","scope":2136,"src":"1519:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2111,"name":"uint","nodeType":"ElementaryTypeName","src":"1519:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1483:47:12"},"returnParameters":{"id":2114,"nodeType":"ParameterList","parameters":[],"src":"1545:0:12"},"scope":2363,"src":"1464:236:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2201,"nodeType":"Block","src":"1783:367:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2144,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1792:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1800:20:12","subExpression":{"hexValue":"30783130303030303030303030303030303030","id":2145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1801:19:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_18446744073709551616_by_1","typeString":"int_const -18446744073709551616"}},"src":"1792:28:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2154,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1876:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":2155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1884:18:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1876:26:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2166,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1958:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":2167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1967:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1958:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2197,"nodeType":"Block","src":"2054:92:12","statements":[{"expression":{"arguments":[{"id":2183,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"2081:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2184,"name":"MAJOR_TYPE_NEGATIVE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"2086:23:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2126:2:12","subExpression":{"hexValue":"31","id":2189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2127:1:12","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"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2191,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"2131:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2126:10:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2118:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2187,"name":"uint256","nodeType":"ElementaryTypeName","src":"2118:7:12","typeDescriptions":{}}},"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2118:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2111:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2185,"name":"uint64","nodeType":"ElementaryTypeName","src":"2111:6:12","typeDescriptions":{}}},"id":2194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2182,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2062:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2062:77:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2196,"nodeType":"ExpressionStatement","src":"2062:77:12"}]},"id":2198,"nodeType":"IfStatement","src":"1955:191:12","trueBody":{"id":2181,"nodeType":"Block","src":"1970:78:12","statements":[{"expression":{"arguments":[{"id":2170,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1997:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2171,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1927,"src":"2002:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"id":2176,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"2033:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2025:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2174,"name":"uint256","nodeType":"ElementaryTypeName","src":"2025:7:12","typeDescriptions":{}}},"id":2177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2025:14:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2018:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2172,"name":"uint64","nodeType":"ElementaryTypeName","src":"2018:6:12","typeDescriptions":{}}},"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2018:22:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2169,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"1978:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2180,"nodeType":"ExpressionStatement","src":"1978:63:12"}]}},"id":2199,"nodeType":"IfStatement","src":"1873:273:12","trueBody":{"id":2165,"nodeType":"Block","src":"1904:45:12","statements":[{"expression":{"arguments":[{"id":2158,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1925:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":2161,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1935:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1930:4:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2159,"name":"uint","nodeType":"ElementaryTypeName","src":"1930:4:12","typeDescriptions":{}}},"id":2162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1930:11:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2157,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2258,"src":"1912:12:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":2163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2164,"nodeType":"ExpressionStatement","src":"1912:30:12"}]}},"id":2200,"nodeType":"IfStatement","src":"1789:357:12","trueBody":{"id":2153,"nodeType":"Block","src":"1822:45:12","statements":[{"expression":{"arguments":[{"id":2149,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1849:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2150,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1854:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2148,"name":"encodeSignedBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"1830:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_int256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":2151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1830:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2152,"nodeType":"ExpressionStatement","src":"1830:30:12"}]}}]},"id":2202,"implemented":true,"kind":"function","modifiers":[],"name":"encodeInt","nameLocation":"1713:9:12","nodeType":"FunctionDefinition","parameters":{"id":2142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2139,"mutability":"mutable","name":"buf","nameLocation":"1753:3:12","nodeType":"VariableDeclaration","scope":2202,"src":"1723:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2138,"nodeType":"UserDefinedTypeName","pathNode":{"id":2137,"name":"BufferChainlink.buffer","nameLocations":["1723:15:12","1739:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1723:22:12"},"referencedDeclaration":1402,"src":"1723:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2141,"mutability":"mutable","name":"value","nameLocation":"1762:5:12","nodeType":"VariableDeclaration","scope":2202,"src":"1758:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2140,"name":"int","nodeType":"ElementaryTypeName","src":"1758:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1722:46:12"},"returnParameters":{"id":2143,"nodeType":"ParameterList","parameters":[],"src":"1783:0:12"},"scope":2363,"src":"1704:446:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2226,"nodeType":"Block","src":"2244:97:12","statements":[{"expression":{"arguments":[{"id":2211,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"2269:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2212,"name":"MAJOR_TYPE_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1933,"src":"2274:16:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"id":2215,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"2299:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2305:6:12","memberName":"length","nodeType":"MemberAccess","src":"2299:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2292:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2213,"name":"uint64","nodeType":"ElementaryTypeName","src":"2292:6:12","typeDescriptions":{}}},"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2292:20:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2210,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2250:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2219,"nodeType":"ExpressionStatement","src":"2250:63:12"},{"expression":{"arguments":[{"id":2223,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"2330:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2220,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"2319:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2323:6:12","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"2319:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2319:17:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2225,"nodeType":"ExpressionStatement","src":"2319:17:12"}]},"id":2227,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBytes","nameLocation":"2163:11:12","nodeType":"FunctionDefinition","parameters":{"id":2208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2205,"mutability":"mutable","name":"buf","nameLocation":"2205:3:12","nodeType":"VariableDeclaration","scope":2227,"src":"2175:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2204,"nodeType":"UserDefinedTypeName","pathNode":{"id":2203,"name":"BufferChainlink.buffer","nameLocations":["2175:15:12","2191:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2175:22:12"},"referencedDeclaration":1402,"src":"2175:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2207,"mutability":"mutable","name":"value","nameLocation":"2223:5:12","nodeType":"VariableDeclaration","scope":2227,"src":"2210:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2206,"name":"bytes","nodeType":"ElementaryTypeName","src":"2210:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2174:55:12"},"returnParameters":{"id":2209,"nodeType":"ParameterList","parameters":[],"src":"2244:0:12"},"scope":2363,"src":"2154:187:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2257,"nodeType":"Block","src":"2428:115:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2240,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"2457:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2475:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2457:19:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2243,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2456:21:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2244,"name":"TAG_TYPE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"2480:15:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2456:39:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2450:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2238,"name":"uint8","nodeType":"ElementaryTypeName","src":"2450:5:12","typeDescriptions":{}}},"id":2246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2450:46:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2235,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"2434:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2438:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"2434:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2434:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2248,"nodeType":"ExpressionStatement","src":"2434:63:12"},{"expression":{"arguments":[{"id":2250,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"2515:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":2253,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2232,"src":"2531:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2251,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2520:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2524:6:12","memberName":"encode","nodeType":"MemberAccess","src":"2520:10:12","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2520:17:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2249,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2227,"src":"2503:11:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:35:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2256,"nodeType":"ExpressionStatement","src":"2503:35:12"}]},"id":2258,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBigNum","nameLocation":"2354:12:12","nodeType":"FunctionDefinition","parameters":{"id":2233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2230,"mutability":"mutable","name":"buf","nameLocation":"2397:3:12","nodeType":"VariableDeclaration","scope":2258,"src":"2367:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2229,"nodeType":"UserDefinedTypeName","pathNode":{"id":2228,"name":"BufferChainlink.buffer","nameLocations":["2367:15:12","2383:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2367:22:12"},"referencedDeclaration":1402,"src":"2367:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2232,"mutability":"mutable","name":"value","nameLocation":"2407:5:12","nodeType":"VariableDeclaration","scope":2258,"src":"2402:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2231,"name":"uint","nodeType":"ElementaryTypeName","src":"2402:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2366:47:12"},"returnParameters":{"id":2234,"nodeType":"ParameterList","parameters":[],"src":"2428:0:12"},"scope":2363,"src":"2345:198:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2294,"nodeType":"Block","src":"2635:138:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2271,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"2664:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2682:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2664:19:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2274,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2663:21:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2275,"name":"TAG_TYPE_NEGATIVE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1954,"src":"2687:24:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2663:48:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2657:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2269,"name":"uint8","nodeType":"ElementaryTypeName","src":"2657:5:12","typeDescriptions":{}}},"id":2277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2657:55:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2266,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"2641:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2645:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"2641:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:72:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2279,"nodeType":"ExpressionStatement","src":"2641:72:12"},{"expression":{"arguments":[{"id":2281,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"2731:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2755:2:12","subExpression":{"hexValue":"31","id":2286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2756:1:12","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"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2288,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2263,"src":"2760:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2755:10:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2284,"name":"uint256","nodeType":"ElementaryTypeName","src":"2747:7:12","typeDescriptions":{}}},"id":2290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2282,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2736:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2740:6:12","memberName":"encode","nodeType":"MemberAccess","src":"2736:10:12","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2736:31:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2280,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2227,"src":"2719:11:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2719:49:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2293,"nodeType":"ExpressionStatement","src":"2719:49:12"}]},"id":2295,"implemented":true,"kind":"function","modifiers":[],"name":"encodeSignedBigNum","nameLocation":"2556:18:12","nodeType":"FunctionDefinition","parameters":{"id":2264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2261,"mutability":"mutable","name":"buf","nameLocation":"2605:3:12","nodeType":"VariableDeclaration","scope":2295,"src":"2575:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2260,"nodeType":"UserDefinedTypeName","pathNode":{"id":2259,"name":"BufferChainlink.buffer","nameLocations":["2575:15:12","2591:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2575:22:12"},"referencedDeclaration":1402,"src":"2575:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2263,"mutability":"mutable","name":"input","nameLocation":"2614:5:12","nodeType":"VariableDeclaration","scope":2295,"src":"2610:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2262,"name":"int","nodeType":"ElementaryTypeName","src":"2610:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2574:46:12"},"returnParameters":{"id":2265,"nodeType":"ParameterList","parameters":[],"src":"2635:0:12"},"scope":2363,"src":"2547:226:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2325,"nodeType":"Block","src":"2869:112:12","statements":[{"expression":{"arguments":[{"id":2304,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"2894:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2305,"name":"MAJOR_TYPE_STRING","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"2899:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"arguments":[{"id":2310,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"2931:5:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2925:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2308,"name":"bytes","nodeType":"ElementaryTypeName","src":"2925:5:12","typeDescriptions":{}}},"id":2311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2938:6:12","memberName":"length","nodeType":"MemberAccess","src":"2925:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2918:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2306,"name":"uint64","nodeType":"ElementaryTypeName","src":"2918:6:12","typeDescriptions":{}}},"id":2313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2918:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2303,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2875:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2875:71:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2315,"nodeType":"ExpressionStatement","src":"2875:71:12"},{"expression":{"arguments":[{"arguments":[{"id":2321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"2969:5:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2963:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2319,"name":"bytes","nodeType":"ElementaryTypeName","src":"2963:5:12","typeDescriptions":{}}},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2316,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"2952:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2956:6:12","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"2952:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2324,"nodeType":"ExpressionStatement","src":"2952:24:12"}]},"id":2326,"implemented":true,"kind":"function","modifiers":[],"name":"encodeString","nameLocation":"2786:12:12","nodeType":"FunctionDefinition","parameters":{"id":2301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2298,"mutability":"mutable","name":"buf","nameLocation":"2829:3:12","nodeType":"VariableDeclaration","scope":2326,"src":"2799:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2297,"nodeType":"UserDefinedTypeName","pathNode":{"id":2296,"name":"BufferChainlink.buffer","nameLocations":["2799:15:12","2815:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2799:22:12"},"referencedDeclaration":1402,"src":"2799:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2300,"mutability":"mutable","name":"value","nameLocation":"2848:5:12","nodeType":"VariableDeclaration","scope":2326,"src":"2834:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2299,"name":"string","nodeType":"ElementaryTypeName","src":"2834:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2798:56:12"},"returnParameters":{"id":2302,"nodeType":"ParameterList","parameters":[],"src":"2869:0:12"},"scope":2363,"src":"2777:204:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2337,"nodeType":"Block","src":"3054:60:12","statements":[{"expression":{"arguments":[{"id":2333,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"3087:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2334,"name":"MAJOR_TYPE_ARRAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1939,"src":"3092:16:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2332,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3060:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3060:49:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2336,"nodeType":"ExpressionStatement","src":"3060:49:12"}]},"id":2338,"implemented":true,"kind":"function","modifiers":[],"name":"startArray","nameLocation":"2994:10:12","nodeType":"FunctionDefinition","parameters":{"id":2330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2329,"mutability":"mutable","name":"buf","nameLocation":"3035:3:12","nodeType":"VariableDeclaration","scope":2338,"src":"3005:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2328,"nodeType":"UserDefinedTypeName","pathNode":{"id":2327,"name":"BufferChainlink.buffer","nameLocations":["3005:15:12","3021:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3005:22:12"},"referencedDeclaration":1402,"src":"3005:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3004:35:12"},"returnParameters":{"id":2331,"nodeType":"ParameterList","parameters":[],"src":"3054:0:12"},"scope":2363,"src":"2985:129:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2349,"nodeType":"Block","src":"3185:58:12","statements":[{"expression":{"arguments":[{"id":2345,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"3218:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2346,"name":"MAJOR_TYPE_MAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"3223:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2344,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3191:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3191:47:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2348,"nodeType":"ExpressionStatement","src":"3191:47:12"}]},"id":2350,"implemented":true,"kind":"function","modifiers":[],"name":"startMap","nameLocation":"3127:8:12","nodeType":"FunctionDefinition","parameters":{"id":2342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2341,"mutability":"mutable","name":"buf","nameLocation":"3166:3:12","nodeType":"VariableDeclaration","scope":2350,"src":"3136:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2340,"nodeType":"UserDefinedTypeName","pathNode":{"id":2339,"name":"BufferChainlink.buffer","nameLocations":["3136:15:12","3152:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3136:22:12"},"referencedDeclaration":1402,"src":"3136:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3135:35:12"},"returnParameters":{"id":2343,"nodeType":"ParameterList","parameters":[],"src":"3185:0:12"},"scope":2363,"src":"3118:125:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2361,"nodeType":"Block","src":"3317:67:12","statements":[{"expression":{"arguments":[{"id":2357,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"3350:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2358,"name":"MAJOR_TYPE_CONTENT_FREE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1948,"src":"3355:23:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2356,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3323:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:56:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2360,"nodeType":"ExpressionStatement","src":"3323:56:12"}]},"id":2362,"implemented":true,"kind":"function","modifiers":[],"name":"endSequence","nameLocation":"3256:11:12","nodeType":"FunctionDefinition","parameters":{"id":2354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2353,"mutability":"mutable","name":"buf","nameLocation":"3298:3:12","nodeType":"VariableDeclaration","scope":2362,"src":"3268:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2352,"nodeType":"UserDefinedTypeName","pathNode":{"id":2351,"name":"BufferChainlink.buffer","nameLocations":["3268:15:12","3284:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3268:22:12"},"referencedDeclaration":1402,"src":"3268:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3267:35:12"},"returnParameters":{"id":2355,"nodeType":"ParameterList","parameters":[],"src":"3317:0:12"},"scope":2363,"src":"3247:137:12","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2364,"src":"115:3271:12","usedErrors":[]}],"src":"32:3355:12"},"id":12},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","exportedSymbols":{"ENSResolver":[2373]},"id":2374,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2365,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:13"},{"abstract":true,"baseContracts":[],"canonicalName":"ENSResolver","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":2373,"linearizedBaseContracts":[2373],"name":"ENSResolver","nameLocation":"75:11:13","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3b3b57de","id":2372,"implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"100:4:13","nodeType":"FunctionDefinition","parameters":{"id":2368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2367,"mutability":"mutable","name":"node","nameLocation":"113:4:13","nodeType":"VariableDeclaration","scope":2372,"src":"105:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"104:14:13"},"returnParameters":{"id":2371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2372,"src":"148:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2369,"name":"address","nodeType":"ElementaryTypeName","src":"148:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"147:9:13"},"scope":2373,"src":"91:66:13","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2374,"src":"57:102:13","usedErrors":[]}],"src":"32:128:13"},"id":13},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[3468],"SignedMath":[3885],"Strings":[2602]},"id":2603,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2375,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:14"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":2376,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2603,"sourceUnit":3469,"src":"126:25:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":2377,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2603,"sourceUnit":3886,"src":"152:31:14","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":2378,"nodeType":"StructuredDocumentation","src":"185:34:14","text":" @dev String operations."},"fullyImplemented":true,"id":2602,"linearizedBaseContracts":[2602],"name":"Strings","nameLocation":"228:7:14","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2381,"mutability":"constant","name":"_SYMBOLS","nameLocation":"267:8:14","nodeType":"VariableDeclaration","scope":2602,"src":"242:54:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":2379,"name":"bytes16","nodeType":"ElementaryTypeName","src":"242:7:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":2380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"278:18:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":2384,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"325:15:14","nodeType":"VariableDeclaration","scope":2602,"src":"302:43:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2382,"name":"uint8","nodeType":"ElementaryTypeName","src":"302:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":2383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343:2:14","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":2431,"nodeType":"Block","src":"518:625:14","statements":[{"id":2430,"nodeType":"UncheckedBlock","src":"528:609:14","statements":[{"assignments":[2393],"declarations":[{"constant":false,"id":2393,"mutability":"mutable","name":"length","nameLocation":"560:6:14","nodeType":"VariableDeclaration","scope":2430,"src":"552:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2392,"name":"uint256","nodeType":"ElementaryTypeName","src":"552:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2400,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2396,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2387,"src":"580:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2394,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3468,"src":"569:4:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$3468_$","typeString":"type(library Math)"}},"id":2395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"574:5:14","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":3305,"src":"569:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"569:17:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"589:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"569:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"552:38:14"},{"assignments":[2402],"declarations":[{"constant":false,"id":2402,"mutability":"mutable","name":"buffer","nameLocation":"618:6:14","nodeType":"VariableDeclaration","scope":2430,"src":"604:20:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2401,"name":"string","nodeType":"ElementaryTypeName","src":"604:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2407,"initialValue":{"arguments":[{"id":2405,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2393,"src":"638:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"627:10:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":2403,"name":"string","nodeType":"ElementaryTypeName","src":"631:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":2406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"604:41:14"},{"assignments":[2409],"declarations":[{"constant":false,"id":2409,"mutability":"mutable","name":"ptr","nameLocation":"667:3:14","nodeType":"VariableDeclaration","scope":2430,"src":"659:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2408,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2410,"nodeType":"VariableDeclarationStatement","src":"659:11:14"},{"AST":{"nodeType":"YulBlock","src":"740:67:14","statements":[{"nodeType":"YulAssignment","src":"758:35:14","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"769:6:14"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"781:2:14","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"785:6:14"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"777:3:14"},"nodeType":"YulFunctionCall","src":"777:15:14"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:14"},"nodeType":"YulFunctionCall","src":"765:28:14"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"758:3:14"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":2402,"isOffset":false,"isSlot":false,"src":"769:6:14","valueSize":1},{"declaration":2393,"isOffset":false,"isSlot":false,"src":"785:6:14","valueSize":1},{"declaration":2409,"isOffset":false,"isSlot":false,"src":"758:3:14","valueSize":1}],"id":2411,"nodeType":"InlineAssembly","src":"731:76:14"},{"body":{"id":2426,"nodeType":"Block","src":"833:267:14","statements":[{"expression":{"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"851:5:14","subExpression":{"id":2413,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2409,"src":"851:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2415,"nodeType":"ExpressionStatement","src":"851:5:14"},{"AST":{"nodeType":"YulBlock","src":"934:84:14","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"964:3:14"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"978:5:14"},{"kind":"number","nodeType":"YulLiteral","src":"985:2:14","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"974:3:14"},"nodeType":"YulFunctionCall","src":"974:14:14"},{"name":"_SYMBOLS","nodeType":"YulIdentifier","src":"990:8:14"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"969:4:14"},"nodeType":"YulFunctionCall","src":"969:30:14"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"956:7:14"},"nodeType":"YulFunctionCall","src":"956:44:14"},"nodeType":"YulExpressionStatement","src":"956:44:14"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":2381,"isOffset":false,"isSlot":false,"src":"990:8:14","valueSize":1},{"declaration":2409,"isOffset":false,"isSlot":false,"src":"964:3:14","valueSize":1},{"declaration":2387,"isOffset":false,"isSlot":false,"src":"978:5:14","valueSize":1}],"id":2416,"nodeType":"InlineAssembly","src":"925:93:14"},{"expression":{"id":2419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2417,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2387,"src":"1035:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":2418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1035:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2420,"nodeType":"ExpressionStatement","src":"1035:11:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2421,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2387,"src":"1068:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1068:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2425,"nodeType":"IfStatement","src":"1064:21:14","trueBody":{"id":2424,"nodeType":"Break","src":"1080:5:14"}}]},"condition":{"hexValue":"74727565","id":2412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"827:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":2427,"nodeType":"WhileStatement","src":"820:280:14"},{"expression":{"id":2428,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2402,"src":"1120:6:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2391,"id":2429,"nodeType":"Return","src":"1113:13:14"}]}]},"documentation":{"id":2385,"nodeType":"StructuredDocumentation","src":"352:90:14","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":2432,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"456:8:14","nodeType":"FunctionDefinition","parameters":{"id":2388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2387,"mutability":"mutable","name":"value","nameLocation":"473:5:14","nodeType":"VariableDeclaration","scope":2432,"src":"465:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2386,"name":"uint256","nodeType":"ElementaryTypeName","src":"465:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"464:15:14"},"returnParameters":{"id":2391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2432,"src":"503:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2389,"name":"string","nodeType":"ElementaryTypeName","src":"503:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"502:15:14"},"scope":2602,"src":"447:696:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2459,"nodeType":"Block","src":"1313:103:14","statements":[{"expression":{"arguments":[{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2444,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2435,"src":"1354:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":2445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1362:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1354:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":2448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1372:2:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":2449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1354:20:14","trueExpression":{"hexValue":"2d","id":2447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1366:3:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":2453,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2435,"src":"1400:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":2451,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3885,"src":"1385:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$3885_$","typeString":"type(library SignedMath)"}},"id":2452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1396:3:14","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":3884,"src":"1385:14:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":2454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:21:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2450,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[2432,2460],"referencedDeclaration":2432,"src":"1376:8:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":2455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2442,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1337:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1341:12:14","memberName":"encodePacked","nodeType":"MemberAccess","src":"1337:16:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1337:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1330:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2440,"name":"string","nodeType":"ElementaryTypeName","src":"1330:6:14","typeDescriptions":{}}},"id":2457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1330:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2439,"id":2458,"nodeType":"Return","src":"1323:86:14"}]},"documentation":{"id":2433,"nodeType":"StructuredDocumentation","src":"1149:89:14","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":2460,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1252:8:14","nodeType":"FunctionDefinition","parameters":{"id":2436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2435,"mutability":"mutable","name":"value","nameLocation":"1268:5:14","nodeType":"VariableDeclaration","scope":2460,"src":"1261:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2434,"name":"int256","nodeType":"ElementaryTypeName","src":"1261:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1260:14:14"},"returnParameters":{"id":2439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2460,"src":"1298:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2437,"name":"string","nodeType":"ElementaryTypeName","src":"1298:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1297:15:14"},"scope":2602,"src":"1243:173:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2479,"nodeType":"Block","src":"1595:100:14","statements":[{"id":2478,"nodeType":"UncheckedBlock","src":"1605:84:14","statements":[{"expression":{"arguments":[{"id":2469,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"1648:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2472,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"1667:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2470,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3468,"src":"1655:4:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$3468_$","typeString":"type(library Math)"}},"id":2471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1660:6:14","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":3428,"src":"1655:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:18:14","tryCall":false,"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":"1676:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1655:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2468,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[2480,2556,2576],"referencedDeclaration":2556,"src":"1636:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":2476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1636:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2467,"id":2477,"nodeType":"Return","src":"1629:49:14"}]}]},"documentation":{"id":2461,"nodeType":"StructuredDocumentation","src":"1422:94:14","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":2480,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1530:11:14","nodeType":"FunctionDefinition","parameters":{"id":2464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2463,"mutability":"mutable","name":"value","nameLocation":"1550:5:14","nodeType":"VariableDeclaration","scope":2480,"src":"1542:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2462,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1541:15:14"},"returnParameters":{"id":2467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2466,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2480,"src":"1580:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2465,"name":"string","nodeType":"ElementaryTypeName","src":"1580:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1579:15:14"},"scope":2602,"src":"1521:174:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2555,"nodeType":"Block","src":"1908:347:14","statements":[{"assignments":[2491],"declarations":[{"constant":false,"id":2491,"mutability":"mutable","name":"buffer","nameLocation":"1931:6:14","nodeType":"VariableDeclaration","scope":2555,"src":"1918:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2490,"name":"bytes","nodeType":"ElementaryTypeName","src":"1918:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2500,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1950:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2495,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"1954:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1950:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1963:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1950:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1940:9:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2492,"name":"bytes","nodeType":"ElementaryTypeName","src":"1944:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1940:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1918:47:14"},{"expression":{"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2501,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"1975:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2503,"indexExpression":{"hexValue":"30","id":2502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1982:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1975:9:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1987:3:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1975:15:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2506,"nodeType":"ExpressionStatement","src":"1975:15:14"},{"expression":{"id":2511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2507,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"2000:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2509,"indexExpression":{"hexValue":"31","id":2508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2007:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2000:9:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":2510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2012:3:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2000:15:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2512,"nodeType":"ExpressionStatement","src":"2000:15:14"},{"body":{"id":2541,"nodeType":"Block","src":"2070:83:14","statements":[{"expression":{"id":2535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2527,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"2084:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2529,"indexExpression":{"id":2528,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"2091:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2084:9:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2530,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2381,"src":"2096:8:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":2534,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2531,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2105:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":2532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:3:14","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2105:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2096:21:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2084:33:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2536,"nodeType":"ExpressionStatement","src":"2084:33:14"},{"expression":{"id":2539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2537,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2131:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":2538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2141:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2131:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2540,"nodeType":"ExpressionStatement","src":"2131:11:14"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2521,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"2058:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":2522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2062:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2058:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2542,"initializationExpression":{"assignments":[2514],"declarations":[{"constant":false,"id":2514,"mutability":"mutable","name":"i","nameLocation":"2038:1:14","nodeType":"VariableDeclaration","scope":2542,"src":"2030:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2513,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2520,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2042:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2516,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"2046:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2055:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2042:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2030:26:14"},"loopExpression":{"expression":{"id":2525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2065:3:14","subExpression":{"id":2524,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"2067:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2526,"nodeType":"ExpressionStatement","src":"2065:3:14"},"nodeType":"ForStatement","src":"2025:128:14"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2544,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2170:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2179:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2170:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":2547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2182:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":2543,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2162:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2549,"nodeType":"ExpressionStatement","src":"2162:55:14"},{"expression":{"arguments":[{"id":2552,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"2241:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2234:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2550,"name":"string","nodeType":"ElementaryTypeName","src":"2234:6:14","typeDescriptions":{}}},"id":2553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2234:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2489,"id":2554,"nodeType":"Return","src":"2227:21:14"}]},"documentation":{"id":2481,"nodeType":"StructuredDocumentation","src":"1701:112:14","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":2556,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1827:11:14","nodeType":"FunctionDefinition","parameters":{"id":2486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2483,"mutability":"mutable","name":"value","nameLocation":"1847:5:14","nodeType":"VariableDeclaration","scope":2556,"src":"1839:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2482,"name":"uint256","nodeType":"ElementaryTypeName","src":"1839:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2485,"mutability":"mutable","name":"length","nameLocation":"1862:6:14","nodeType":"VariableDeclaration","scope":2556,"src":"1854:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2484,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:31:14"},"returnParameters":{"id":2489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2556,"src":"1893:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2487,"name":"string","nodeType":"ElementaryTypeName","src":"1893:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1892:15:14"},"scope":2602,"src":"1818:437:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2575,"nodeType":"Block","src":"2480:76:14","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":2569,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2559,"src":"2525:4:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2517:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2567,"name":"uint160","nodeType":"ElementaryTypeName","src":"2517:7:14","typeDescriptions":{}}},"id":2570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2517:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:14","typeDescriptions":{}}},"id":2571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:22:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2572,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2384,"src":"2533:15:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2564,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[2480,2556,2576],"referencedDeclaration":2556,"src":"2497:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":2573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2497:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2563,"id":2574,"nodeType":"Return","src":"2490:59:14"}]},"documentation":{"id":2557,"nodeType":"StructuredDocumentation","src":"2261:141:14","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":2576,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2416:11:14","nodeType":"FunctionDefinition","parameters":{"id":2560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2559,"mutability":"mutable","name":"addr","nameLocation":"2436:4:14","nodeType":"VariableDeclaration","scope":2576,"src":"2428:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2558,"name":"address","nodeType":"ElementaryTypeName","src":"2428:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2427:14:14"},"returnParameters":{"id":2563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2576,"src":"2465:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2561,"name":"string","nodeType":"ElementaryTypeName","src":"2465:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2464:15:14"},"scope":2602,"src":"2407:149:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2600,"nodeType":"Block","src":"2711:66:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2589,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"2744:1:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2738:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2587,"name":"bytes","nodeType":"ElementaryTypeName","src":"2738:5:14","typeDescriptions":{}}},"id":2590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2738:8:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2586,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2728:9:14","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":2595,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2581,"src":"2767:1:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2761:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2593,"name":"bytes","nodeType":"ElementaryTypeName","src":"2761:5:14","typeDescriptions":{}}},"id":2596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2761:8:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2592,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2751:9:14","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2751:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2728:42:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2585,"id":2599,"nodeType":"Return","src":"2721:49:14"}]},"documentation":{"id":2577,"nodeType":"StructuredDocumentation","src":"2562:66:14","text":" @dev Returns true if the two strings are equal."},"id":2601,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2642:5:14","nodeType":"FunctionDefinition","parameters":{"id":2582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2579,"mutability":"mutable","name":"a","nameLocation":"2662:1:14","nodeType":"VariableDeclaration","scope":2601,"src":"2648:15:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2578,"name":"string","nodeType":"ElementaryTypeName","src":"2648:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2581,"mutability":"mutable","name":"b","nameLocation":"2679:1:14","nodeType":"VariableDeclaration","scope":2601,"src":"2665:15:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2580,"name":"string","nodeType":"ElementaryTypeName","src":"2665:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2647:34:14"},"returnParameters":{"id":2585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2601,"src":"2705:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2583,"name":"bool","nodeType":"ElementaryTypeName","src":"2705:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2704:6:14"},"scope":2602,"src":"2633:144:14","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2603,"src":"220:2559:14","usedErrors":[]}],"src":"101:2679:14"},"id":14},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[3468]},"id":3469,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2604,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:15"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":2605,"nodeType":"StructuredDocumentation","src":"128:73:15","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3468,"linearizedBaseContracts":[3468],"name":"Math","nameLocation":"210:4:15","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":2609,"members":[{"id":2606,"name":"Down","nameLocation":"245:4:15","nodeType":"EnumValue","src":"245:4:15"},{"id":2607,"name":"Up","nameLocation":"287:2:15","nodeType":"EnumValue","src":"287:2:15"},{"id":2608,"name":"Zero","nameLocation":"318:4:15","nodeType":"EnumValue","src":"318:4:15"}],"name":"Rounding","nameLocation":"226:8:15","nodeType":"EnumDefinition","src":"221:122:15"},{"body":{"id":2626,"nodeType":"Block","src":"480:37:15","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2619,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2612,"src":"497:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2620,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2614,"src":"501:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2623,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2614,"src":"509:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:15","trueExpression":{"id":2622,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2612,"src":"505:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2618,"id":2625,"nodeType":"Return","src":"490:20:15"}]},"documentation":{"id":2610,"nodeType":"StructuredDocumentation","src":"349:59:15","text":" @dev Returns the largest of two numbers."},"id":2627,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:15","nodeType":"FunctionDefinition","parameters":{"id":2615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2612,"mutability":"mutable","name":"a","nameLocation":"434:1:15","nodeType":"VariableDeclaration","scope":2627,"src":"426:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2611,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2614,"mutability":"mutable","name":"b","nameLocation":"445:1:15","nodeType":"VariableDeclaration","scope":2627,"src":"437:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2613,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:15"},"returnParameters":{"id":2618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2617,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2627,"src":"471:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2616,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:15"},"scope":3468,"src":"413:104:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2644,"nodeType":"Block","src":"655:37:15","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2637,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2630,"src":"672:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2638,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2632,"src":"676:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2641,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2632,"src":"684:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:15","trueExpression":{"id":2640,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2630,"src":"680:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2636,"id":2643,"nodeType":"Return","src":"665:20:15"}]},"documentation":{"id":2628,"nodeType":"StructuredDocumentation","src":"523:60:15","text":" @dev Returns the smallest of two numbers."},"id":2645,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:15","nodeType":"FunctionDefinition","parameters":{"id":2633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2630,"mutability":"mutable","name":"a","nameLocation":"609:1:15","nodeType":"VariableDeclaration","scope":2645,"src":"601:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2629,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2632,"mutability":"mutable","name":"b","nameLocation":"620:1:15","nodeType":"VariableDeclaration","scope":2645,"src":"612:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2631,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:15"},"returnParameters":{"id":2636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2635,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2645,"src":"646:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2634,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:15"},"scope":3468,"src":"588:104:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2667,"nodeType":"Block","src":"876:82:15","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2655,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2648,"src":"931:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":2656,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2650,"src":"935:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2659,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2648,"src":"941:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2660,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2650,"src":"945:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2662,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":2663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2654,"id":2666,"nodeType":"Return","src":"923:28:15"}]},"documentation":{"id":2646,"nodeType":"StructuredDocumentation","src":"698:102:15","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":2668,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:15","nodeType":"FunctionDefinition","parameters":{"id":2651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2648,"mutability":"mutable","name":"a","nameLocation":"830:1:15","nodeType":"VariableDeclaration","scope":2668,"src":"822:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2647,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2650,"mutability":"mutable","name":"b","nameLocation":"841:1:15","nodeType":"VariableDeclaration","scope":2668,"src":"833:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2649,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:15"},"returnParameters":{"id":2654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2668,"src":"867:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2652,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:15"},"scope":3468,"src":"805:153:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2692,"nodeType":"Block","src":"1228:123:15","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2678,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2671,"src":"1316:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2682,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2671,"src":"1330:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2685,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2686,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2673,"src":"1339:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:15","trueExpression":{"hexValue":"30","id":2681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2677,"id":2691,"nodeType":"Return","src":"1309:35:15"}]},"documentation":{"id":2669,"nodeType":"StructuredDocumentation","src":"964:188:15","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"id":2693,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:15","nodeType":"FunctionDefinition","parameters":{"id":2674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2671,"mutability":"mutable","name":"a","nameLocation":"1182:1:15","nodeType":"VariableDeclaration","scope":2693,"src":"1174:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2670,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2673,"mutability":"mutable","name":"b","nameLocation":"1193:1:15","nodeType":"VariableDeclaration","scope":2693,"src":"1185:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2672,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:15"},"returnParameters":{"id":2677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2693,"src":"1219:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2675,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:15"},"scope":3468,"src":"1157:194:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2815,"nodeType":"Block","src":"1765:4115:15","statements":[{"id":2814,"nodeType":"UncheckedBlock","src":"1775:4099:15","statements":[{"assignments":[2706],"declarations":[{"constant":false,"id":2706,"mutability":"mutable","name":"prod0","nameLocation":"2104:5:15","nodeType":"VariableDeclaration","scope":2814,"src":"2096:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2705,"name":"uint256","nodeType":"ElementaryTypeName","src":"2096:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2707,"nodeType":"VariableDeclarationStatement","src":"2096:13:15"},{"assignments":[2709],"declarations":[{"constant":false,"id":2709,"mutability":"mutable","name":"prod1","nameLocation":"2176:5:15","nodeType":"VariableDeclaration","scope":2814,"src":"2168:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2708,"name":"uint256","nodeType":"ElementaryTypeName","src":"2168:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2710,"nodeType":"VariableDeclarationStatement","src":"2168:13:15"},{"AST":{"nodeType":"YulBlock","src":"2248:157:15","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:30:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2283:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"2286:1:15"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2293:1:15","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2289:3:15"},"nodeType":"YulFunctionCall","src":"2289:6:15"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2276:6:15"},"nodeType":"YulFunctionCall","src":"2276:20:15"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"2270:2:15","type":""}]},{"nodeType":"YulAssignment","src":"2313:18:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2326:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"2329:1:15"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2322:3:15"},"nodeType":"YulFunctionCall","src":"2322:9:15"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2313:5:15"}]},{"nodeType":"YulAssignment","src":"2348:43:15","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2365:2:15"},{"name":"prod0","nodeType":"YulIdentifier","src":"2369:5:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2361:3:15"},"nodeType":"YulFunctionCall","src":"2361:14:15"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2380:2:15"},{"name":"prod0","nodeType":"YulIdentifier","src":"2384:5:15"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2377:2:15"},"nodeType":"YulFunctionCall","src":"2377:13:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2357:3:15"},"nodeType":"YulFunctionCall","src":"2357:34:15"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2348:5:15"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2706,"isOffset":false,"isSlot":false,"src":"2313:5:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"2369:5:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"2384:5:15","valueSize":1},{"declaration":2709,"isOffset":false,"isSlot":false,"src":"2348:5:15","valueSize":1},{"declaration":2696,"isOffset":false,"isSlot":false,"src":"2283:1:15","valueSize":1},{"declaration":2696,"isOffset":false,"isSlot":false,"src":"2326:1:15","valueSize":1},{"declaration":2698,"isOffset":false,"isSlot":false,"src":"2286:1:15","valueSize":1},{"declaration":2698,"isOffset":false,"isSlot":false,"src":"2329:1:15","valueSize":1}],"id":2711,"nodeType":"InlineAssembly","src":"2239:166:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2712,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2709,"src":"2486:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2486:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2720,"nodeType":"IfStatement","src":"2482:368:15","trueBody":{"id":2719,"nodeType":"Block","src":"2498:352:15","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2715,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2706,"src":"2816:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2716,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"2824:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2816:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2704,"id":2718,"nodeType":"Return","src":"2809:26:15"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2722,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"2960:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2723,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2709,"src":"2974:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2960:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6174683a206d756c446976206f766572666c6f77","id":2725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2981:23:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""},"value":"Math: mulDiv overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""}],"id":2721,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2952:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:53:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2727,"nodeType":"ExpressionStatement","src":"2952:53:15"},{"assignments":[2729],"declarations":[{"constant":false,"id":2729,"mutability":"mutable","name":"remainder","nameLocation":"3269:9:15","nodeType":"VariableDeclaration","scope":2814,"src":"3261:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint256","nodeType":"ElementaryTypeName","src":"3261:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2730,"nodeType":"VariableDeclarationStatement","src":"3261:17:15"},{"AST":{"nodeType":"YulBlock","src":"3301:291:15","statements":[{"nodeType":"YulAssignment","src":"3370:38:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3390:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"3393:1:15"},{"name":"denominator","nodeType":"YulIdentifier","src":"3396:11:15"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"3383:6:15"},"nodeType":"YulFunctionCall","src":"3383:25:15"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"3370:9:15"}]},{"nodeType":"YulAssignment","src":"3490:41:15","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"3503:5:15"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"3513:9:15"},{"name":"prod0","nodeType":"YulIdentifier","src":"3524:5:15"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3510:2:15"},"nodeType":"YulFunctionCall","src":"3510:20:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3499:3:15"},"nodeType":"YulFunctionCall","src":"3499:32:15"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"3490:5:15"}]},{"nodeType":"YulAssignment","src":"3548:30:15","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3561:5:15"},{"name":"remainder","nodeType":"YulIdentifier","src":"3568:9:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3557:3:15"},"nodeType":"YulFunctionCall","src":"3557:21:15"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3548:5:15"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2700,"isOffset":false,"isSlot":false,"src":"3396:11:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"3524:5:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"3548:5:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"3561:5:15","valueSize":1},{"declaration":2709,"isOffset":false,"isSlot":false,"src":"3490:5:15","valueSize":1},{"declaration":2709,"isOffset":false,"isSlot":false,"src":"3503:5:15","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"3370:9:15","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"3513:9:15","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"3568:9:15","valueSize":1},{"declaration":2696,"isOffset":false,"isSlot":false,"src":"3390:1:15","valueSize":1},{"declaration":2698,"isOffset":false,"isSlot":false,"src":"3393:1:15","valueSize":1}],"id":2731,"nodeType":"InlineAssembly","src":"3292:300:15"},{"assignments":[2733],"declarations":[{"constant":false,"id":2733,"mutability":"mutable","name":"twos","nameLocation":"3907:4:15","nodeType":"VariableDeclaration","scope":2814,"src":"3899:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2732,"name":"uint256","nodeType":"ElementaryTypeName","src":"3899:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2741,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2734,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"3914:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3929:12:15","subExpression":{"id":2735,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"3930:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3944:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3929:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2739,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3928:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3914:32:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3899:47:15"},{"AST":{"nodeType":"YulBlock","src":"3969:362:15","statements":[{"nodeType":"YulAssignment","src":"4034:37:15","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"4053:11:15"},{"name":"twos","nodeType":"YulIdentifier","src":"4066:4:15"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4049:3:15"},"nodeType":"YulFunctionCall","src":"4049:22:15"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"4034:11:15"}]},{"nodeType":"YulAssignment","src":"4138:25:15","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"4151:5:15"},{"name":"twos","nodeType":"YulIdentifier","src":"4158:4:15"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4147:3:15"},"nodeType":"YulFunctionCall","src":"4147:16:15"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"4138:5:15"}]},{"nodeType":"YulAssignment","src":"4278:39:15","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4298:1:15","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"4301:4:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4294:3:15"},"nodeType":"YulFunctionCall","src":"4294:12:15"},{"name":"twos","nodeType":"YulIdentifier","src":"4308:4:15"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4290:3:15"},"nodeType":"YulFunctionCall","src":"4290:23:15"},{"kind":"number","nodeType":"YulLiteral","src":"4315:1:15","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4286:3:15"},"nodeType":"YulFunctionCall","src":"4286:31:15"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"4278:4:15"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2700,"isOffset":false,"isSlot":false,"src":"4034:11:15","valueSize":1},{"declaration":2700,"isOffset":false,"isSlot":false,"src":"4053:11:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"4138:5:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"4151:5:15","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"4066:4:15","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"4158:4:15","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"4278:4:15","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"4301:4:15","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"4308:4:15","valueSize":1}],"id":2742,"nodeType":"InlineAssembly","src":"3960:371:15"},{"expression":{"id":2747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2743,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2706,"src":"4397:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2744,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2709,"src":"4406:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2745,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"4414:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4406:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4397:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2748,"nodeType":"ExpressionStatement","src":"4397:21:15"},{"assignments":[2750],"declarations":[{"constant":false,"id":2750,"mutability":"mutable","name":"inverse","nameLocation":"4744:7:15","nodeType":"VariableDeclaration","scope":2814,"src":"4736:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2749,"name":"uint256","nodeType":"ElementaryTypeName","src":"4736:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2757,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":2751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4755:1:15","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2752,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"4759:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4755:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2754,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4754:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":2755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4774:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4754:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4736:39:15"},{"expression":{"id":2764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2758,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"4992:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5003:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2760,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5007:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2761,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5021:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5007:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5003:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4992:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2765,"nodeType":"ExpressionStatement","src":"4992:36:15"},{"expression":{"id":2772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2766,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5061:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5072:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2768,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5076:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2769,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5090:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5076:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5072:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5061:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2773,"nodeType":"ExpressionStatement","src":"5061:36:15"},{"expression":{"id":2780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2774,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5131:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5142:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2776,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5146:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2777,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5160:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5146:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5142:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5131:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2781,"nodeType":"ExpressionStatement","src":"5131:36:15"},{"expression":{"id":2788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2782,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5201:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5212:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2784,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5216:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2785,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5230:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5216:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5212:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5201:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2789,"nodeType":"ExpressionStatement","src":"5201:36:15"},{"expression":{"id":2796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2790,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5271:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5282:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2792,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5286:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2793,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5300:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5286:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5282:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5271:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2797,"nodeType":"ExpressionStatement","src":"5271:36:15"},{"expression":{"id":2804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2798,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5342:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5353:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2800,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5357:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2801,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5371:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5353:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5342:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2805,"nodeType":"ExpressionStatement","src":"5342:36:15"},{"expression":{"id":2810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2806,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"5812:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2807,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2706,"src":"5821:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2808,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5829:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5821:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5812:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2811,"nodeType":"ExpressionStatement","src":"5812:24:15"},{"expression":{"id":2812,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"5857:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2704,"id":2813,"nodeType":"Return","src":"5850:13:15"}]}]},"documentation":{"id":2694,"nodeType":"StructuredDocumentation","src":"1357:305:15","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"id":2816,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:15","nodeType":"FunctionDefinition","parameters":{"id":2701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2696,"mutability":"mutable","name":"x","nameLocation":"1691:1:15","nodeType":"VariableDeclaration","scope":2816,"src":"1683:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2695,"name":"uint256","nodeType":"ElementaryTypeName","src":"1683:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2698,"mutability":"mutable","name":"y","nameLocation":"1702:1:15","nodeType":"VariableDeclaration","scope":2816,"src":"1694:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2697,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2700,"mutability":"mutable","name":"denominator","nameLocation":"1713:11:15","nodeType":"VariableDeclaration","scope":2816,"src":"1705:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2699,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:43:15"},"returnParameters":{"id":2704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2703,"mutability":"mutable","name":"result","nameLocation":"1757:6:15","nodeType":"VariableDeclaration","scope":2816,"src":"1749:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2702,"name":"uint256","nodeType":"ElementaryTypeName","src":"1749:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1748:16:15"},"scope":3468,"src":"1667:4213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2859,"nodeType":"Block","src":"6122:189:15","statements":[{"assignments":[2832],"declarations":[{"constant":false,"id":2832,"mutability":"mutable","name":"result","nameLocation":"6140:6:15","nodeType":"VariableDeclaration","scope":2859,"src":"6132:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2831,"name":"uint256","nodeType":"ElementaryTypeName","src":"6132:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2838,"initialValue":{"arguments":[{"id":2834,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2819,"src":"6156:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2835,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2821,"src":"6159:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2836,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2823,"src":"6162:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2833,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[2816,2860],"referencedDeclaration":2816,"src":"6149:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6149:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6132:42:15"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"id":2842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2839,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2826,"src":"6188:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2840,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"6200:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2609_$","typeString":"type(enum Math.Rounding)"}},"id":2841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6209:2:15","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2607,"src":"6200:11:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"src":"6188:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2844,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2819,"src":"6222:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2845,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2821,"src":"6225:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2846,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2823,"src":"6228:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2843,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"6215:6:15","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6215:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6243:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6215:29:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6188:56:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2856,"nodeType":"IfStatement","src":"6184:98:15","trueBody":{"id":2855,"nodeType":"Block","src":"6246:36:15","statements":[{"expression":{"id":2853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2851,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2832,"src":"6260:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6270:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6260:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2854,"nodeType":"ExpressionStatement","src":"6260:11:15"}]}},{"expression":{"id":2857,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2832,"src":"6298:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2830,"id":2858,"nodeType":"Return","src":"6291:13:15"}]},"documentation":{"id":2817,"nodeType":"StructuredDocumentation","src":"5886:121:15","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":2860,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"6021:6:15","nodeType":"FunctionDefinition","parameters":{"id":2827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2819,"mutability":"mutable","name":"x","nameLocation":"6036:1:15","nodeType":"VariableDeclaration","scope":2860,"src":"6028:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2818,"name":"uint256","nodeType":"ElementaryTypeName","src":"6028:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2821,"mutability":"mutable","name":"y","nameLocation":"6047:1:15","nodeType":"VariableDeclaration","scope":2860,"src":"6039:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2820,"name":"uint256","nodeType":"ElementaryTypeName","src":"6039:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2823,"mutability":"mutable","name":"denominator","nameLocation":"6058:11:15","nodeType":"VariableDeclaration","scope":2860,"src":"6050:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2822,"name":"uint256","nodeType":"ElementaryTypeName","src":"6050:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2826,"mutability":"mutable","name":"rounding","nameLocation":"6080:8:15","nodeType":"VariableDeclaration","scope":2860,"src":"6071:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"typeName":{"id":2825,"nodeType":"UserDefinedTypeName","pathNode":{"id":2824,"name":"Rounding","nameLocations":["6071:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":2609,"src":"6071:8:15"},"referencedDeclaration":2609,"src":"6071:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"6027:62:15"},"returnParameters":{"id":2830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2860,"src":"6113:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2828,"name":"uint256","nodeType":"ElementaryTypeName","src":"6113:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6112:9:15"},"scope":3468,"src":"6012:299:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2971,"nodeType":"Block","src":"6587:1585:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2868,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"6601:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6606:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6601:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2874,"nodeType":"IfStatement","src":"6597:45:15","trueBody":{"id":2873,"nodeType":"Block","src":"6609:33:15","statements":[{"expression":{"hexValue":"30","id":2871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6630:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2867,"id":2872,"nodeType":"Return","src":"6623:8:15"}]}},{"assignments":[2876],"declarations":[{"constant":false,"id":2876,"mutability":"mutable","name":"result","nameLocation":"7329:6:15","nodeType":"VariableDeclaration","scope":2971,"src":"7321:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2875,"name":"uint256","nodeType":"ElementaryTypeName","src":"7321:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2885,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7338:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2879,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7349:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2878,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3140,3176],"referencedDeclaration":3140,"src":"7344:4:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7344:7:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7344:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2883,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7343:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7338:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7321:36:15"},{"id":2970,"nodeType":"UncheckedBlock","src":"7758:408:15","statements":[{"expression":{"id":2895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2886,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7782:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2887,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7792:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2888,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7801:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2889,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7805:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7792:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2892,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7791:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7816:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7791:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7782:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2896,"nodeType":"ExpressionStatement","src":"7782:35:15"},{"expression":{"id":2906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2897,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7831:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2898,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7841:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2899,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7850:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2900,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7854:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7841:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2903,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7840:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7865:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7840:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7831:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2907,"nodeType":"ExpressionStatement","src":"7831:35:15"},{"expression":{"id":2917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2908,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7880:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2909,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7890:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2910,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7899:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2911,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7903:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2914,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7889:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7914:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7889:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7880:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2918,"nodeType":"ExpressionStatement","src":"7880:35:15"},{"expression":{"id":2928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2919,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7929:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2920,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7939:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2921,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7948:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2922,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7952:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7939:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2925,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7938:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7963:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7938:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7929:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2929,"nodeType":"ExpressionStatement","src":"7929:35:15"},{"expression":{"id":2939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2930,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7978:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2931,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7988:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2932,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7997:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2933,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8001:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7997:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7988:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7987:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8012:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7987:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7978:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2940,"nodeType":"ExpressionStatement","src":"7978:35:15"},{"expression":{"id":2950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2941,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8027:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2942,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8037:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"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":2863,"src":"8046:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2944,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8050:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8046:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8037:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2947,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8036:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8061:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8036:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8027:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2951,"nodeType":"ExpressionStatement","src":"8027:35:15"},{"expression":{"id":2961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2952,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8076:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2953,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8086:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2954,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"8095:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2955,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8099:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8095:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8086:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2958,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8085:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8110:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8085:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8076:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2962,"nodeType":"ExpressionStatement","src":"8076:35:15"},{"expression":{"arguments":[{"id":2964,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8136:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2965,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"8144:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2966,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8148:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8144:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2963,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2645,"src":"8132:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2867,"id":2969,"nodeType":"Return","src":"8125:30:15"}]}]},"documentation":{"id":2861,"nodeType":"StructuredDocumentation","src":"6317:208:15","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":2972,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6539:4:15","nodeType":"FunctionDefinition","parameters":{"id":2864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2863,"mutability":"mutable","name":"a","nameLocation":"6552:1:15","nodeType":"VariableDeclaration","scope":2972,"src":"6544:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2862,"name":"uint256","nodeType":"ElementaryTypeName","src":"6544:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6543:11:15"},"returnParameters":{"id":2867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2866,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2972,"src":"6578:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2865,"name":"uint256","nodeType":"ElementaryTypeName","src":"6578:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6577:9:15"},"scope":3468,"src":"6530:1642:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3007,"nodeType":"Block","src":"8348:161:15","statements":[{"id":3006,"nodeType":"UncheckedBlock","src":"8358:145:15","statements":[{"assignments":[2984],"declarations":[{"constant":false,"id":2984,"mutability":"mutable","name":"result","nameLocation":"8390:6:15","nodeType":"VariableDeclaration","scope":3006,"src":"8382:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2983,"name":"uint256","nodeType":"ElementaryTypeName","src":"8382:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2988,"initialValue":{"arguments":[{"id":2986,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"8404:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2985,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[2972,3008],"referencedDeclaration":2972,"src":"8399:4:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8399:7:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8382:24:15"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2989,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2984,"src":"8427:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"id":2993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2990,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2978,"src":"8437:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2991,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"8449:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2609_$","typeString":"type(enum Math.Rounding)"}},"id":2992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8458:2:15","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2607,"src":"8449:11:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"src":"8437:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2994,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2984,"src":"8464:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2995,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2984,"src":"8473:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2997,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"8482:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8437:46:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8490:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8437:54:15","trueExpression":{"hexValue":"31","id":3000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8486:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3003,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8436:56:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8427:65:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2982,"id":3005,"nodeType":"Return","src":"8420:72:15"}]}]},"documentation":{"id":2973,"nodeType":"StructuredDocumentation","src":"8178:89:15","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":3008,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8281:4:15","nodeType":"FunctionDefinition","parameters":{"id":2979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2975,"mutability":"mutable","name":"a","nameLocation":"8294:1:15","nodeType":"VariableDeclaration","scope":3008,"src":"8286:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2974,"name":"uint256","nodeType":"ElementaryTypeName","src":"8286:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2978,"mutability":"mutable","name":"rounding","nameLocation":"8306:8:15","nodeType":"VariableDeclaration","scope":3008,"src":"8297:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"typeName":{"id":2977,"nodeType":"UserDefinedTypeName","pathNode":{"id":2976,"name":"Rounding","nameLocations":["8297:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":2609,"src":"8297:8:15"},"referencedDeclaration":2609,"src":"8297:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8285:30:15"},"returnParameters":{"id":2982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3008,"src":"8339:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2980,"name":"uint256","nodeType":"ElementaryTypeName","src":"8339:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8338:9:15"},"scope":3468,"src":"8272:237:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3139,"nodeType":"Block","src":"8694:922:15","statements":[{"assignments":[3017],"declarations":[{"constant":false,"id":3017,"mutability":"mutable","name":"result","nameLocation":"8712:6:15","nodeType":"VariableDeclaration","scope":3139,"src":"8704:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3016,"name":"uint256","nodeType":"ElementaryTypeName","src":"8704:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3019,"initialValue":{"hexValue":"30","id":3018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8721:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8704:18:15"},{"id":3136,"nodeType":"UncheckedBlock","src":"8732:855:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3020,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"8760:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8769:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8760:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8775:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8760:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3034,"nodeType":"IfStatement","src":"8756:99:15","trueBody":{"id":3033,"nodeType":"Block","src":"8778:77:15","statements":[{"expression":{"id":3027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3025,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"8796:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8796:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3028,"nodeType":"ExpressionStatement","src":"8796:13:15"},{"expression":{"id":3031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3029,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"8827:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":3030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8837:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8827:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3032,"nodeType":"ExpressionStatement","src":"8827:13:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3035,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"8872:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8881:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8872:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8886:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8872:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3049,"nodeType":"IfStatement","src":"8868:96:15","trueBody":{"id":3048,"nodeType":"Block","src":"8889:75:15","statements":[{"expression":{"id":3042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3040,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"8907:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8917:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8907:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3043,"nodeType":"ExpressionStatement","src":"8907:12:15"},{"expression":{"id":3046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3044,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"8937:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8947:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8937:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3047,"nodeType":"ExpressionStatement","src":"8937:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3050,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"8981:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8990:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8981:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8995:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8981:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3064,"nodeType":"IfStatement","src":"8977:96:15","trueBody":{"id":3063,"nodeType":"Block","src":"8998:75:15","statements":[{"expression":{"id":3057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3055,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9016:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9026:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9016:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3058,"nodeType":"ExpressionStatement","src":"9016:12:15"},{"expression":{"id":3061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3059,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9046:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9056:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9046:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3062,"nodeType":"ExpressionStatement","src":"9046:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9090:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9090:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9104:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9090:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3079,"nodeType":"IfStatement","src":"9086:96:15","trueBody":{"id":3078,"nodeType":"Block","src":"9107:75:15","statements":[{"expression":{"id":3072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3070,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9125:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9135:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9125:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3073,"nodeType":"ExpressionStatement","src":"9125:12:15"},{"expression":{"id":3076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3074,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9155:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9165:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9155:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3077,"nodeType":"ExpressionStatement","src":"9155:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3080,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9199:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9208:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9199:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9212:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9199:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3094,"nodeType":"IfStatement","src":"9195:93:15","trueBody":{"id":3093,"nodeType":"Block","src":"9215:73:15","statements":[{"expression":{"id":3087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3085,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9233:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":3086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9243:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9233:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3088,"nodeType":"ExpressionStatement","src":"9233:11:15"},{"expression":{"id":3091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3089,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9262:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9262:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3092,"nodeType":"ExpressionStatement","src":"9262:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3095,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9305:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":3096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9314:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9305:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9318:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9305:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3109,"nodeType":"IfStatement","src":"9301:93:15","trueBody":{"id":3108,"nodeType":"Block","src":"9321:73:15","statements":[{"expression":{"id":3102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3100,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9339:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9349:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9339:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3103,"nodeType":"ExpressionStatement","src":"9339:11:15"},{"expression":{"id":3106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3104,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9368:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9378:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9368:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3107,"nodeType":"ExpressionStatement","src":"9368:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3110,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9411:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":3111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9420:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9411:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9424:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9411:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3124,"nodeType":"IfStatement","src":"9407:93:15","trueBody":{"id":3123,"nodeType":"Block","src":"9427:73:15","statements":[{"expression":{"id":3117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9445:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":3116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9455:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9445:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3118,"nodeType":"ExpressionStatement","src":"9445:11:15"},{"expression":{"id":3121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3119,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9474:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9484:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9474:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3122,"nodeType":"ExpressionStatement","src":"9474:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3125,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9517:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9526:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9517:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9530:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9517:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3135,"nodeType":"IfStatement","src":"9513:64:15","trueBody":{"id":3134,"nodeType":"Block","src":"9533:44:15","statements":[{"expression":{"id":3132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3130,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9551:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9561:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9551:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3133,"nodeType":"ExpressionStatement","src":"9551:11:15"}]}}]},{"expression":{"id":3137,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9603:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3015,"id":3138,"nodeType":"Return","src":"9596:13:15"}]},"documentation":{"id":3009,"nodeType":"StructuredDocumentation","src":"8515:113:15","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":3140,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8642:4:15","nodeType":"FunctionDefinition","parameters":{"id":3012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3011,"mutability":"mutable","name":"value","nameLocation":"8655:5:15","nodeType":"VariableDeclaration","scope":3140,"src":"8647:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3010,"name":"uint256","nodeType":"ElementaryTypeName","src":"8647:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8646:15:15"},"returnParameters":{"id":3015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3140,"src":"8685:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3013,"name":"uint256","nodeType":"ElementaryTypeName","src":"8685:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8684:9:15"},"scope":3468,"src":"8633:983:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3175,"nodeType":"Block","src":"9849:165:15","statements":[{"id":3174,"nodeType":"UncheckedBlock","src":"9859:149:15","statements":[{"assignments":[3152],"declarations":[{"constant":false,"id":3152,"mutability":"mutable","name":"result","nameLocation":"9891:6:15","nodeType":"VariableDeclaration","scope":3174,"src":"9883:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3151,"name":"uint256","nodeType":"ElementaryTypeName","src":"9883:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3156,"initialValue":{"arguments":[{"id":3154,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"9905:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3153,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3140,3176],"referencedDeclaration":3140,"src":"9900:4:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9900:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9883:28:15"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3157,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"9932:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"id":3161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3158,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3146,"src":"9942:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3159,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"9954:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2609_$","typeString":"type(enum Math.Rounding)"}},"id":3160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9963:2:15","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2607,"src":"9954:11:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"src":"9942:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9969:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":3163,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"9974:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"9983:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9942:46:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9995:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9942:54:15","trueExpression":{"hexValue":"31","id":3168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9991:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3171,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9941:56:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9932:65:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3150,"id":3173,"nodeType":"Return","src":"9925:72:15"}]}]},"documentation":{"id":3141,"nodeType":"StructuredDocumentation","src":"9622:142:15","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3176,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9778:4:15","nodeType":"FunctionDefinition","parameters":{"id":3147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3143,"mutability":"mutable","name":"value","nameLocation":"9791:5:15","nodeType":"VariableDeclaration","scope":3176,"src":"9783:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3142,"name":"uint256","nodeType":"ElementaryTypeName","src":"9783:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3146,"mutability":"mutable","name":"rounding","nameLocation":"9807:8:15","nodeType":"VariableDeclaration","scope":3176,"src":"9798:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"typeName":{"id":3145,"nodeType":"UserDefinedTypeName","pathNode":{"id":3144,"name":"Rounding","nameLocations":["9798:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":2609,"src":"9798:8:15"},"referencedDeclaration":2609,"src":"9798:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9782:34:15"},"returnParameters":{"id":3150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3176,"src":"9840:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3148,"name":"uint256","nodeType":"ElementaryTypeName","src":"9840:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9839:9:15"},"scope":3468,"src":"9769:245:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3304,"nodeType":"Block","src":"10201:854:15","statements":[{"assignments":[3185],"declarations":[{"constant":false,"id":3185,"mutability":"mutable","name":"result","nameLocation":"10219:6:15","nodeType":"VariableDeclaration","scope":3304,"src":"10211:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3184,"name":"uint256","nodeType":"ElementaryTypeName","src":"10211:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3187,"initialValue":{"hexValue":"30","id":3186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10228:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10211:18:15"},{"id":3301,"nodeType":"UncheckedBlock","src":"10239:787:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3188,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10267:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":3191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10276:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10282:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10276:8:15","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10267:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3204,"nodeType":"IfStatement","src":"10263:103:15","trueBody":{"id":3203,"nodeType":"Block","src":"10286:80:15","statements":[{"expression":{"id":3197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3193,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10304:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":3196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10313:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10313:8:15","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10304:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3198,"nodeType":"ExpressionStatement","src":"10304:17:15"},{"expression":{"id":3201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3199,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10339:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10349:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10339:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3202,"nodeType":"ExpressionStatement","src":"10339:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3205,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10383:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":3208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10392:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10398:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10392:8:15","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10383:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3221,"nodeType":"IfStatement","src":"10379:103:15","trueBody":{"id":3220,"nodeType":"Block","src":"10402:80:15","statements":[{"expression":{"id":3214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3210,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10420:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":3213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10435:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10429:8:15","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10420:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3215,"nodeType":"ExpressionStatement","src":"10420:17:15"},{"expression":{"id":3218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3216,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10455:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10465:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10455:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3219,"nodeType":"ExpressionStatement","src":"10455:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3222,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10499:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10508:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10514:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10508:8:15","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10499:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3238,"nodeType":"IfStatement","src":"10495:103:15","trueBody":{"id":3237,"nodeType":"Block","src":"10518:80:15","statements":[{"expression":{"id":3231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3227,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10536:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10545:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10551:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10545:8:15","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10536:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3232,"nodeType":"ExpressionStatement","src":"10536:17:15"},{"expression":{"id":3235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3233,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10571:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10571:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3236,"nodeType":"ExpressionStatement","src":"10571:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3239,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10615:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10624:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10630:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10624:7:15","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10615:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3255,"nodeType":"IfStatement","src":"10611:100:15","trueBody":{"id":3254,"nodeType":"Block","src":"10633:78:15","statements":[{"expression":{"id":3248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3244,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10651:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10660:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10666:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10660:7:15","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10651:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3249,"nodeType":"ExpressionStatement","src":"10651:16:15"},{"expression":{"id":3252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3250,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10685:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10695:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10685:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3253,"nodeType":"ExpressionStatement","src":"10685:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3256,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10728:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10737:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10743:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10737:7:15","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10728:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3272,"nodeType":"IfStatement","src":"10724:100:15","trueBody":{"id":3271,"nodeType":"Block","src":"10746:78:15","statements":[{"expression":{"id":3265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3261,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10764:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10779:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10773:7:15","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10764:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3266,"nodeType":"ExpressionStatement","src":"10764:16:15"},{"expression":{"id":3269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3267,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10798:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10808:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10798:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3270,"nodeType":"ExpressionStatement","src":"10798:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3273,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10841:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10850:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10856:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10850:7:15","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10841:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3289,"nodeType":"IfStatement","src":"10837:100:15","trueBody":{"id":3288,"nodeType":"Block","src":"10859:78:15","statements":[{"expression":{"id":3282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3278,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10877:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10886:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10892:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10886:7:15","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10877:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3283,"nodeType":"ExpressionStatement","src":"10877:16:15"},{"expression":{"id":3286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3284,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10911:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10921:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10911:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3287,"nodeType":"ExpressionStatement","src":"10911:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3290,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10954:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":3293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10963:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":3292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10969:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10963:7:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10954:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3300,"nodeType":"IfStatement","src":"10950:66:15","trueBody":{"id":3299,"nodeType":"Block","src":"10972:44:15","statements":[{"expression":{"id":3297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3295,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10990:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11000:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10990:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3298,"nodeType":"ExpressionStatement","src":"10990:11:15"}]}}]},{"expression":{"id":3302,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"11042:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3183,"id":3303,"nodeType":"Return","src":"11035:13:15"}]},"documentation":{"id":3177,"nodeType":"StructuredDocumentation","src":"10020:114:15","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":3305,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10148:5:15","nodeType":"FunctionDefinition","parameters":{"id":3180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3179,"mutability":"mutable","name":"value","nameLocation":"10162:5:15","nodeType":"VariableDeclaration","scope":3305,"src":"10154:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3178,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:15:15"},"returnParameters":{"id":3183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3182,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3305,"src":"10192:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3181,"name":"uint256","nodeType":"ElementaryTypeName","src":"10192:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10191:9:15"},"scope":3468,"src":"10139:916:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3340,"nodeType":"Block","src":"11290:167:15","statements":[{"id":3339,"nodeType":"UncheckedBlock","src":"11300:151:15","statements":[{"assignments":[3317],"declarations":[{"constant":false,"id":3317,"mutability":"mutable","name":"result","nameLocation":"11332:6:15","nodeType":"VariableDeclaration","scope":3339,"src":"11324:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3316,"name":"uint256","nodeType":"ElementaryTypeName","src":"11324:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3321,"initialValue":{"arguments":[{"id":3319,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3308,"src":"11347:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3318,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[3305,3341],"referencedDeclaration":3305,"src":"11341:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11341:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11324:29:15"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3322,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3317,"src":"11374:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3323,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"11384:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3324,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"11396:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2609_$","typeString":"type(enum Math.Rounding)"}},"id":3325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11405:2:15","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2607,"src":"11396:11:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"src":"11384:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11411:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":3328,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3317,"src":"11417:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3330,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3308,"src":"11426:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11384:47:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11438:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11384:55:15","trueExpression":{"hexValue":"31","id":3333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11434:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3336,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11383:57:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11374:66:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3315,"id":3338,"nodeType":"Return","src":"11367:73:15"}]}]},"documentation":{"id":3306,"nodeType":"StructuredDocumentation","src":"11061:143:15","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3341,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"11218:5:15","nodeType":"FunctionDefinition","parameters":{"id":3312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3308,"mutability":"mutable","name":"value","nameLocation":"11232:5:15","nodeType":"VariableDeclaration","scope":3341,"src":"11224:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3307,"name":"uint256","nodeType":"ElementaryTypeName","src":"11224:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3311,"mutability":"mutable","name":"rounding","nameLocation":"11248:8:15","nodeType":"VariableDeclaration","scope":3341,"src":"11239:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"typeName":{"id":3310,"nodeType":"UserDefinedTypeName","pathNode":{"id":3309,"name":"Rounding","nameLocations":["11239:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":2609,"src":"11239:8:15"},"referencedDeclaration":2609,"src":"11239:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11223:34:15"},"returnParameters":{"id":3315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3341,"src":"11281:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3313,"name":"uint256","nodeType":"ElementaryTypeName","src":"11281:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11280:9:15"},"scope":3468,"src":"11209:248:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3427,"nodeType":"Block","src":"11771:600:15","statements":[{"assignments":[3350],"declarations":[{"constant":false,"id":3350,"mutability":"mutable","name":"result","nameLocation":"11789:6:15","nodeType":"VariableDeclaration","scope":3427,"src":"11781:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3349,"name":"uint256","nodeType":"ElementaryTypeName","src":"11781:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3352,"initialValue":{"hexValue":"30","id":3351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11798:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11781:18:15"},{"id":3424,"nodeType":"UncheckedBlock","src":"11809:533:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3353,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"11837:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11846:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11837:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11852:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11837:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3367,"nodeType":"IfStatement","src":"11833:98:15","trueBody":{"id":3366,"nodeType":"Block","src":"11855:76:15","statements":[{"expression":{"id":3360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"11873:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11883:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11873:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3361,"nodeType":"ExpressionStatement","src":"11873:13:15"},{"expression":{"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3362,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"11904:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11914:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11904:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3365,"nodeType":"ExpressionStatement","src":"11904:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3368,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"11948:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11957:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11948:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11962:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11948:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3382,"nodeType":"IfStatement","src":"11944:95:15","trueBody":{"id":3381,"nodeType":"Block","src":"11965:74:15","statements":[{"expression":{"id":3375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3373,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"11983:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11993:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11983:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3376,"nodeType":"ExpressionStatement","src":"11983:12:15"},{"expression":{"id":3379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3377,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"12013:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12023:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12013:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3380,"nodeType":"ExpressionStatement","src":"12013:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3383,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"12056:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12065:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12056:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12070:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12056:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3397,"nodeType":"IfStatement","src":"12052:95:15","trueBody":{"id":3396,"nodeType":"Block","src":"12073:74:15","statements":[{"expression":{"id":3390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3388,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"12091:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12101:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12091:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3391,"nodeType":"ExpressionStatement","src":"12091:12:15"},{"expression":{"id":3394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3392,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"12121:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12121:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3395,"nodeType":"ExpressionStatement","src":"12121:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3398,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"12164:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12173:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12164:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12178:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12164:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3412,"nodeType":"IfStatement","src":"12160:95:15","trueBody":{"id":3411,"nodeType":"Block","src":"12181:74:15","statements":[{"expression":{"id":3405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3403,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"12199:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12209:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12199:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3406,"nodeType":"ExpressionStatement","src":"12199:12:15"},{"expression":{"id":3409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3407,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"12229:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12229:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3410,"nodeType":"ExpressionStatement","src":"12229:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3413,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"12272:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12281:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12272:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12285:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12272:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3423,"nodeType":"IfStatement","src":"12268:64:15","trueBody":{"id":3422,"nodeType":"Block","src":"12288:44:15","statements":[{"expression":{"id":3420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3418,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"12306:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12316:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12306:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3421,"nodeType":"ExpressionStatement","src":"12306:11:15"}]}}]},{"expression":{"id":3425,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"12358:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3348,"id":3426,"nodeType":"Return","src":"12351:13:15"}]},"documentation":{"id":3342,"nodeType":"StructuredDocumentation","src":"11463:240:15","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":3428,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11717:6:15","nodeType":"FunctionDefinition","parameters":{"id":3345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3344,"mutability":"mutable","name":"value","nameLocation":"11732:5:15","nodeType":"VariableDeclaration","scope":3428,"src":"11724:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3343,"name":"uint256","nodeType":"ElementaryTypeName","src":"11724:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11723:15:15"},"returnParameters":{"id":3348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3428,"src":"11762:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3346,"name":"uint256","nodeType":"ElementaryTypeName","src":"11762:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11761:9:15"},"scope":3468,"src":"11708:663:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3466,"nodeType":"Block","src":"12608:174:15","statements":[{"id":3465,"nodeType":"UncheckedBlock","src":"12618:158:15","statements":[{"assignments":[3440],"declarations":[{"constant":false,"id":3440,"mutability":"mutable","name":"result","nameLocation":"12650:6:15","nodeType":"VariableDeclaration","scope":3465,"src":"12642:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3439,"name":"uint256","nodeType":"ElementaryTypeName","src":"12642:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3444,"initialValue":{"arguments":[{"id":3442,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"12666:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3441,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[3428,3467],"referencedDeclaration":3428,"src":"12659:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12659:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12642:30:15"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3445,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3440,"src":"12693:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"id":3449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3446,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"12703:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3447,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"12715:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2609_$","typeString":"type(enum Math.Rounding)"}},"id":3448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12724:2:15","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2607,"src":"12715:11:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"src":"12703:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12730:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3451,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3440,"src":"12736:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":3452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12746:1:15","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12736:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3454,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12735:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3456,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"12751:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12703:53:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12763:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12703:61:15","trueExpression":{"hexValue":"31","id":3459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12759:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3462,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12702:63:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12693:72:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3438,"id":3464,"nodeType":"Return","src":"12686:79:15"}]}]},"documentation":{"id":3429,"nodeType":"StructuredDocumentation","src":"12377:144:15","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3467,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12535:6:15","nodeType":"FunctionDefinition","parameters":{"id":3435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3431,"mutability":"mutable","name":"value","nameLocation":"12550:5:15","nodeType":"VariableDeclaration","scope":3467,"src":"12542:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3430,"name":"uint256","nodeType":"ElementaryTypeName","src":"12542:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3434,"mutability":"mutable","name":"rounding","nameLocation":"12566:8:15","nodeType":"VariableDeclaration","scope":3467,"src":"12557:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"typeName":{"id":3433,"nodeType":"UserDefinedTypeName","pathNode":{"id":3432,"name":"Rounding","nameLocations":["12557:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":2609,"src":"12557:8:15"},"referencedDeclaration":2609,"src":"12557:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12541:34:15"},"returnParameters":{"id":3438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3467,"src":"12599:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3436,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12598:9:15"},"scope":3468,"src":"12526:256:15","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3469,"src":"202:12582:15","usedErrors":[]}],"src":"103:12682:15"},"id":15},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","exportedSymbols":{"SafeMath":[3780]},"id":3781,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3470,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:16"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeMath","contractDependencies":[],"contractKind":"library","documentation":{"id":3471,"nodeType":"StructuredDocumentation","src":"285:196:16","text":" @dev Wrappers over Solidity's arithmetic operations.\n NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler\n now has built in overflow checking."},"fullyImplemented":true,"id":3780,"linearizedBaseContracts":[3780],"name":"SafeMath","nameLocation":"490:8:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":3502,"nodeType":"Block","src":"717:140:16","statements":[{"id":3501,"nodeType":"UncheckedBlock","src":"727:124:16","statements":[{"assignments":[3484],"declarations":[{"constant":false,"id":3484,"mutability":"mutable","name":"c","nameLocation":"759:1:16","nodeType":"VariableDeclaration","scope":3501,"src":"751:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3483,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3488,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3485,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3474,"src":"763:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3486,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"767:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"763:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"751:17:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3489,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3484,"src":"786:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3490,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3474,"src":"790:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"786:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3496,"nodeType":"IfStatement","src":"782:28:16","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"801:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"808:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"800:10:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3482,"id":3495,"nodeType":"Return","src":"793:17:16"}},{"expression":{"components":[{"hexValue":"74727565","id":3497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"832:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":3498,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3484,"src":"838:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3499,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"831:9:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3482,"id":3500,"nodeType":"Return","src":"824:16:16"}]}]},"documentation":{"id":3472,"nodeType":"StructuredDocumentation","src":"505:131:16","text":" @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":3503,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"650:6:16","nodeType":"FunctionDefinition","parameters":{"id":3477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3474,"mutability":"mutable","name":"a","nameLocation":"665:1:16","nodeType":"VariableDeclaration","scope":3503,"src":"657:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3473,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3476,"mutability":"mutable","name":"b","nameLocation":"676:1:16","nodeType":"VariableDeclaration","scope":3503,"src":"668:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3475,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"656:22:16"},"returnParameters":{"id":3482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3479,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3503,"src":"702:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3478,"name":"bool","nodeType":"ElementaryTypeName","src":"702:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3503,"src":"708:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3480,"name":"uint256","nodeType":"ElementaryTypeName","src":"708:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"701:15:16"},"scope":3780,"src":"641:216:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3530,"nodeType":"Block","src":"1078:113:16","statements":[{"id":3529,"nodeType":"UncheckedBlock","src":"1088:97:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3515,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3508,"src":"1116:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3516,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3506,"src":"1120:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1116:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3522,"nodeType":"IfStatement","src":"1112:28:16","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1131:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1138:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3520,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1130:10:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3514,"id":3521,"nodeType":"Return","src":"1123:17:16"}},{"expression":{"components":[{"hexValue":"74727565","id":3523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1162:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3524,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3506,"src":"1168:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3525,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3508,"src":"1172:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1168:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3527,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1161:13:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3514,"id":3528,"nodeType":"Return","src":"1154:20:16"}]}]},"documentation":{"id":3504,"nodeType":"StructuredDocumentation","src":"863:134:16","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":3531,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"1011:6:16","nodeType":"FunctionDefinition","parameters":{"id":3509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3506,"mutability":"mutable","name":"a","nameLocation":"1026:1:16","nodeType":"VariableDeclaration","scope":3531,"src":"1018:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3505,"name":"uint256","nodeType":"ElementaryTypeName","src":"1018:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3508,"mutability":"mutable","name":"b","nameLocation":"1037:1:16","nodeType":"VariableDeclaration","scope":3531,"src":"1029:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3507,"name":"uint256","nodeType":"ElementaryTypeName","src":"1029:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1017:22:16"},"returnParameters":{"id":3514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3531,"src":"1063:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3510,"name":"bool","nodeType":"ElementaryTypeName","src":"1063:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3531,"src":"1069:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3512,"name":"uint256","nodeType":"ElementaryTypeName","src":"1069:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1062:15:16"},"scope":3780,"src":"1002:189:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3572,"nodeType":"Block","src":"1415:417:16","statements":[{"id":3571,"nodeType":"UncheckedBlock","src":"1425:401:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3543,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"1683:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1688:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1683:6:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3550,"nodeType":"IfStatement","src":"1679:28:16","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":3546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1699:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":3547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1705:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3548,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1698:9:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3542,"id":3549,"nodeType":"Return","src":"1691:16:16"}},{"assignments":[3552],"declarations":[{"constant":false,"id":3552,"mutability":"mutable","name":"c","nameLocation":"1729:1:16","nodeType":"VariableDeclaration","scope":3571,"src":"1721:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3551,"name":"uint256","nodeType":"ElementaryTypeName","src":"1721:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3556,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3553,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"1733:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3554,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3536,"src":"1737:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1733:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1721:17:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3557,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3552,"src":"1756:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3558,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"1760:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1756:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3560,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3536,"src":"1765:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1756:10:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3566,"nodeType":"IfStatement","src":"1752:33:16","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1776:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1783:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3564,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1775:10:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3542,"id":3565,"nodeType":"Return","src":"1768:17:16"}},{"expression":{"components":[{"hexValue":"74727565","id":3567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1807:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":3568,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3552,"src":"1813:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3569,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1806:9:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3542,"id":3570,"nodeType":"Return","src":"1799:16:16"}]}]},"documentation":{"id":3532,"nodeType":"StructuredDocumentation","src":"1197:137:16","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":3573,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1348:6:16","nodeType":"FunctionDefinition","parameters":{"id":3537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3534,"mutability":"mutable","name":"a","nameLocation":"1363:1:16","nodeType":"VariableDeclaration","scope":3573,"src":"1355:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3533,"name":"uint256","nodeType":"ElementaryTypeName","src":"1355:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3536,"mutability":"mutable","name":"b","nameLocation":"1374:1:16","nodeType":"VariableDeclaration","scope":3573,"src":"1366:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3535,"name":"uint256","nodeType":"ElementaryTypeName","src":"1366:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1354:22:16"},"returnParameters":{"id":3542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3573,"src":"1400:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3538,"name":"bool","nodeType":"ElementaryTypeName","src":"1400:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3573,"src":"1406:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3540,"name":"uint256","nodeType":"ElementaryTypeName","src":"1406:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1399:15:16"},"scope":3780,"src":"1339:493:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3600,"nodeType":"Block","src":"2057:114:16","statements":[{"id":3599,"nodeType":"UncheckedBlock","src":"2067:98:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3585,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"2095:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2100:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2095:6:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3592,"nodeType":"IfStatement","src":"2091:29:16","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2111:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2118:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3590,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2110:10:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3584,"id":3591,"nodeType":"Return","src":"2103:17:16"}},{"expression":{"components":[{"hexValue":"74727565","id":3593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2142:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3594,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3576,"src":"2148:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3595,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"2152:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2148:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3597,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2141:13:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3584,"id":3598,"nodeType":"Return","src":"2134:20:16"}]}]},"documentation":{"id":3574,"nodeType":"StructuredDocumentation","src":"1838:138:16","text":" @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"id":3601,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1990:6:16","nodeType":"FunctionDefinition","parameters":{"id":3579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3576,"mutability":"mutable","name":"a","nameLocation":"2005:1:16","nodeType":"VariableDeclaration","scope":3601,"src":"1997:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3575,"name":"uint256","nodeType":"ElementaryTypeName","src":"1997:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3578,"mutability":"mutable","name":"b","nameLocation":"2016:1:16","nodeType":"VariableDeclaration","scope":3601,"src":"2008:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3577,"name":"uint256","nodeType":"ElementaryTypeName","src":"2008:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1996:22:16"},"returnParameters":{"id":3584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3581,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3601,"src":"2042:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3580,"name":"bool","nodeType":"ElementaryTypeName","src":"2042:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3583,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3601,"src":"2048:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3582,"name":"uint256","nodeType":"ElementaryTypeName","src":"2048:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2041:15:16"},"scope":3780,"src":"1981:190:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3628,"nodeType":"Block","src":"2406:114:16","statements":[{"id":3627,"nodeType":"UncheckedBlock","src":"2416:98:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3613,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3606,"src":"2444:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2449:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2444:6:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3620,"nodeType":"IfStatement","src":"2440:29:16","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2460:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2467:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3618,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2459:10:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3612,"id":3619,"nodeType":"Return","src":"2452:17:16"}},{"expression":{"components":[{"hexValue":"74727565","id":3621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2491:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3622,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"2497:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3623,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3606,"src":"2501:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2497:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3625,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2490:13:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3612,"id":3626,"nodeType":"Return","src":"2483:20:16"}]}]},"documentation":{"id":3602,"nodeType":"StructuredDocumentation","src":"2177:148:16","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"id":3629,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2339:6:16","nodeType":"FunctionDefinition","parameters":{"id":3607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3604,"mutability":"mutable","name":"a","nameLocation":"2354:1:16","nodeType":"VariableDeclaration","scope":3629,"src":"2346:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3603,"name":"uint256","nodeType":"ElementaryTypeName","src":"2346:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3606,"mutability":"mutable","name":"b","nameLocation":"2365:1:16","nodeType":"VariableDeclaration","scope":3629,"src":"2357:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3605,"name":"uint256","nodeType":"ElementaryTypeName","src":"2357:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2345:22:16"},"returnParameters":{"id":3612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3629,"src":"2391:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3608,"name":"bool","nodeType":"ElementaryTypeName","src":"2391:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3629,"src":"2397:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3610,"name":"uint256","nodeType":"ElementaryTypeName","src":"2397:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2390:15:16"},"scope":3780,"src":"2330:190:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3643,"nodeType":"Block","src":"2822:29:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3639,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3632,"src":"2839:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3640,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3634,"src":"2843:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2839:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3638,"id":3642,"nodeType":"Return","src":"2832:12:16"}]},"documentation":{"id":3630,"nodeType":"StructuredDocumentation","src":"2526:224:16","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":3644,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"2764:3:16","nodeType":"FunctionDefinition","parameters":{"id":3635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3632,"mutability":"mutable","name":"a","nameLocation":"2776:1:16","nodeType":"VariableDeclaration","scope":3644,"src":"2768:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3631,"name":"uint256","nodeType":"ElementaryTypeName","src":"2768:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3634,"mutability":"mutable","name":"b","nameLocation":"2787:1:16","nodeType":"VariableDeclaration","scope":3644,"src":"2779:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3633,"name":"uint256","nodeType":"ElementaryTypeName","src":"2779:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2767:22:16"},"returnParameters":{"id":3638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3644,"src":"2813:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3636,"name":"uint256","nodeType":"ElementaryTypeName","src":"2813:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2812:9:16"},"scope":3780,"src":"2755:96:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3658,"nodeType":"Block","src":"3189:29:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3654,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3647,"src":"3206:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3655,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"3210:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3206:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3653,"id":3657,"nodeType":"Return","src":"3199:12:16"}]},"documentation":{"id":3645,"nodeType":"StructuredDocumentation","src":"2857:260:16","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":3659,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"3131:3:16","nodeType":"FunctionDefinition","parameters":{"id":3650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3647,"mutability":"mutable","name":"a","nameLocation":"3143:1:16","nodeType":"VariableDeclaration","scope":3659,"src":"3135:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3646,"name":"uint256","nodeType":"ElementaryTypeName","src":"3135:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3649,"mutability":"mutable","name":"b","nameLocation":"3154:1:16","nodeType":"VariableDeclaration","scope":3659,"src":"3146:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3648,"name":"uint256","nodeType":"ElementaryTypeName","src":"3146:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3134:22:16"},"returnParameters":{"id":3653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3659,"src":"3180:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3651,"name":"uint256","nodeType":"ElementaryTypeName","src":"3180:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3179:9:16"},"scope":3780,"src":"3122:96:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3673,"nodeType":"Block","src":"3532:29:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3669,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3662,"src":"3549:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3670,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3664,"src":"3553:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3549:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3668,"id":3672,"nodeType":"Return","src":"3542:12:16"}]},"documentation":{"id":3660,"nodeType":"StructuredDocumentation","src":"3224:236:16","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":3674,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nameLocation":"3474:3:16","nodeType":"FunctionDefinition","parameters":{"id":3665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3662,"mutability":"mutable","name":"a","nameLocation":"3486:1:16","nodeType":"VariableDeclaration","scope":3674,"src":"3478:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3661,"name":"uint256","nodeType":"ElementaryTypeName","src":"3478:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3664,"mutability":"mutable","name":"b","nameLocation":"3497:1:16","nodeType":"VariableDeclaration","scope":3674,"src":"3489:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3663,"name":"uint256","nodeType":"ElementaryTypeName","src":"3489:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3477:22:16"},"returnParameters":{"id":3668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3667,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3674,"src":"3523:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3523:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3522:9:16"},"scope":3780,"src":"3465:96:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3688,"nodeType":"Block","src":"3917:29:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3684,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"3934:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3685,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"3938:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3934:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3683,"id":3687,"nodeType":"Return","src":"3927:12:16"}]},"documentation":{"id":3675,"nodeType":"StructuredDocumentation","src":"3567:278:16","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.\n Requirements:\n - The divisor cannot be zero."},"id":3689,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"3859:3:16","nodeType":"FunctionDefinition","parameters":{"id":3680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3677,"mutability":"mutable","name":"a","nameLocation":"3871:1:16","nodeType":"VariableDeclaration","scope":3689,"src":"3863:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3676,"name":"uint256","nodeType":"ElementaryTypeName","src":"3863:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3679,"mutability":"mutable","name":"b","nameLocation":"3882:1:16","nodeType":"VariableDeclaration","scope":3689,"src":"3874:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3678,"name":"uint256","nodeType":"ElementaryTypeName","src":"3874:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3862:22:16"},"returnParameters":{"id":3683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3689,"src":"3908:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3681,"name":"uint256","nodeType":"ElementaryTypeName","src":"3908:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3907:9:16"},"scope":3780,"src":"3850:96:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3703,"nodeType":"Block","src":"4466:29:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3699,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3692,"src":"4483:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3700,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3694,"src":"4487:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4483:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3698,"id":3702,"nodeType":"Return","src":"4476:12:16"}]},"documentation":{"id":3690,"nodeType":"StructuredDocumentation","src":"3952:442:16","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":3704,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"4408:3:16","nodeType":"FunctionDefinition","parameters":{"id":3695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3692,"mutability":"mutable","name":"a","nameLocation":"4420:1:16","nodeType":"VariableDeclaration","scope":3704,"src":"4412:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3691,"name":"uint256","nodeType":"ElementaryTypeName","src":"4412:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3694,"mutability":"mutable","name":"b","nameLocation":"4431:1:16","nodeType":"VariableDeclaration","scope":3704,"src":"4423:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3693,"name":"uint256","nodeType":"ElementaryTypeName","src":"4423:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4411:22:16"},"returnParameters":{"id":3698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3704,"src":"4457:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3696,"name":"uint256","nodeType":"ElementaryTypeName","src":"4457:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4456:9:16"},"scope":3780,"src":"4399:96:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3728,"nodeType":"Block","src":"5054:106:16","statements":[{"id":3727,"nodeType":"UncheckedBlock","src":"5064:90:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3717,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3709,"src":"5096:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":3718,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"5101:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5096:6:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3720,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3711,"src":"5104:12:16","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":3716,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5088:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5088:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3722,"nodeType":"ExpressionStatement","src":"5088:29:16"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3723,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"5138:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3724,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3709,"src":"5142:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5138:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3715,"id":3726,"nodeType":"Return","src":"5131:12:16"}]}]},"documentation":{"id":3705,"nodeType":"StructuredDocumentation","src":"4501:453:16","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":3729,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"4968:3:16","nodeType":"FunctionDefinition","parameters":{"id":3712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3707,"mutability":"mutable","name":"a","nameLocation":"4980:1:16","nodeType":"VariableDeclaration","scope":3729,"src":"4972:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3706,"name":"uint256","nodeType":"ElementaryTypeName","src":"4972:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3709,"mutability":"mutable","name":"b","nameLocation":"4991:1:16","nodeType":"VariableDeclaration","scope":3729,"src":"4983:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3708,"name":"uint256","nodeType":"ElementaryTypeName","src":"4983:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3711,"mutability":"mutable","name":"errorMessage","nameLocation":"5008:12:16","nodeType":"VariableDeclaration","scope":3729,"src":"4994:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3710,"name":"string","nodeType":"ElementaryTypeName","src":"4994:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4971:50:16"},"returnParameters":{"id":3715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3729,"src":"5045:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3713,"name":"uint256","nodeType":"ElementaryTypeName","src":"5045:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5044:9:16"},"scope":3780,"src":"4959:201:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3753,"nodeType":"Block","src":"5739:105:16","statements":[{"id":3752,"nodeType":"UncheckedBlock","src":"5749:89:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3742,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3734,"src":"5781:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5785:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5781:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3745,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3736,"src":"5788:12:16","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":3741,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5773:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5773:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3747,"nodeType":"ExpressionStatement","src":"5773:28:16"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3748,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"5822:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3749,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3734,"src":"5826:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5822:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3740,"id":3751,"nodeType":"Return","src":"5815:12:16"}]}]},"documentation":{"id":3730,"nodeType":"StructuredDocumentation","src":"5166:473:16","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 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":3754,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"5653:3:16","nodeType":"FunctionDefinition","parameters":{"id":3737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3732,"mutability":"mutable","name":"a","nameLocation":"5665:1:16","nodeType":"VariableDeclaration","scope":3754,"src":"5657:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3731,"name":"uint256","nodeType":"ElementaryTypeName","src":"5657:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3734,"mutability":"mutable","name":"b","nameLocation":"5676:1:16","nodeType":"VariableDeclaration","scope":3754,"src":"5668:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3733,"name":"uint256","nodeType":"ElementaryTypeName","src":"5668:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3736,"mutability":"mutable","name":"errorMessage","nameLocation":"5693:12:16","nodeType":"VariableDeclaration","scope":3754,"src":"5679:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3735,"name":"string","nodeType":"ElementaryTypeName","src":"5679:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5656:50:16"},"returnParameters":{"id":3740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3739,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3754,"src":"5730:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3738,"name":"uint256","nodeType":"ElementaryTypeName","src":"5730:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5729:9:16"},"scope":3780,"src":"5644:200:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3778,"nodeType":"Block","src":"6585:105:16","statements":[{"id":3777,"nodeType":"UncheckedBlock","src":"6595:89:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3767,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3759,"src":"6627:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6631:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6627:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3770,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3761,"src":"6634:12:16","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":3766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6619:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6619:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3772,"nodeType":"ExpressionStatement","src":"6619:28:16"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3773,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"6668:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3774,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3759,"src":"6672:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6668:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3765,"id":3776,"nodeType":"Return","src":"6661:12:16"}]}]},"documentation":{"id":3755,"nodeType":"StructuredDocumentation","src":"5850:635:16","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":3779,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"6499:3:16","nodeType":"FunctionDefinition","parameters":{"id":3762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3757,"mutability":"mutable","name":"a","nameLocation":"6511:1:16","nodeType":"VariableDeclaration","scope":3779,"src":"6503:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3756,"name":"uint256","nodeType":"ElementaryTypeName","src":"6503:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3759,"mutability":"mutable","name":"b","nameLocation":"6522:1:16","nodeType":"VariableDeclaration","scope":3779,"src":"6514:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3758,"name":"uint256","nodeType":"ElementaryTypeName","src":"6514:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3761,"mutability":"mutable","name":"errorMessage","nameLocation":"6539:12:16","nodeType":"VariableDeclaration","scope":3779,"src":"6525:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3760,"name":"string","nodeType":"ElementaryTypeName","src":"6525:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6502:50:16"},"returnParameters":{"id":3765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3779,"src":"6576:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3763,"name":"uint256","nodeType":"ElementaryTypeName","src":"6576:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6575:9:16"},"scope":3780,"src":"6490:200:16","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3781,"src":"482:6210:16","usedErrors":[]}],"src":"107:6586:16"},"id":16},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[3885]},"id":3886,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3782,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"109:23:17"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":3783,"nodeType":"StructuredDocumentation","src":"134:80:17","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3885,"linearizedBaseContracts":[3885],"name":"SignedMath","nameLocation":"223:10:17","nodeType":"ContractDefinition","nodes":[{"body":{"id":3800,"nodeType":"Block","src":"375:37:17","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3793,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3786,"src":"392:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3794,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"396:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"392:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3797,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"404:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"392:13:17","trueExpression":{"id":3796,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3786,"src":"400:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3792,"id":3799,"nodeType":"Return","src":"385:20:17"}]},"documentation":{"id":3784,"nodeType":"StructuredDocumentation","src":"240:66:17","text":" @dev Returns the largest of two signed numbers."},"id":3801,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"320:3:17","nodeType":"FunctionDefinition","parameters":{"id":3789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3786,"mutability":"mutable","name":"a","nameLocation":"331:1:17","nodeType":"VariableDeclaration","scope":3801,"src":"324:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3785,"name":"int256","nodeType":"ElementaryTypeName","src":"324:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3788,"mutability":"mutable","name":"b","nameLocation":"341:1:17","nodeType":"VariableDeclaration","scope":3801,"src":"334:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3787,"name":"int256","nodeType":"ElementaryTypeName","src":"334:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"323:20:17"},"returnParameters":{"id":3792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3801,"src":"367:6:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3790,"name":"int256","nodeType":"ElementaryTypeName","src":"367:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"366:8:17"},"scope":3885,"src":"311:101:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3818,"nodeType":"Block","src":"554:37:17","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3811,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"571:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3812,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"575:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"571:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3815,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"583:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"571:13:17","trueExpression":{"id":3814,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"579:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3810,"id":3817,"nodeType":"Return","src":"564:20:17"}]},"documentation":{"id":3802,"nodeType":"StructuredDocumentation","src":"418:67:17","text":" @dev Returns the smallest of two signed numbers."},"id":3819,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"499:3:17","nodeType":"FunctionDefinition","parameters":{"id":3807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3804,"mutability":"mutable","name":"a","nameLocation":"510:1:17","nodeType":"VariableDeclaration","scope":3819,"src":"503:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3803,"name":"int256","nodeType":"ElementaryTypeName","src":"503:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3806,"mutability":"mutable","name":"b","nameLocation":"520:1:17","nodeType":"VariableDeclaration","scope":3819,"src":"513:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3805,"name":"int256","nodeType":"ElementaryTypeName","src":"513:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"502:20:17"},"returnParameters":{"id":3810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3819,"src":"546:6:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3808,"name":"int256","nodeType":"ElementaryTypeName","src":"546:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"545:8:17"},"scope":3885,"src":"490:101:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3862,"nodeType":"Block","src":"796:162:17","statements":[{"assignments":[3830],"declarations":[{"constant":false,"id":3830,"mutability":"mutable","name":"x","nameLocation":"865:1:17","nodeType":"VariableDeclaration","scope":3862,"src":"858:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3829,"name":"int256","nodeType":"ElementaryTypeName","src":"858:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":3843,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3831,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"870:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3832,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"874:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:5:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3834,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"869:7:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3835,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"881:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3836,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"885:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"881:5:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3838,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:7:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"880:12:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3841,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"879:14:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"869:24:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"858:35:17"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3844,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"910:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3849,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"930:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"922:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3847,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:17","typeDescriptions":{}}},"id":3850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:10:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":3851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:3:17","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"922:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":3845,"name":"int256","nodeType":"ElementaryTypeName","src":"915:6:17","typeDescriptions":{}}},"id":3853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3854,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"944:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3855,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"948:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"944:5:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3857,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"943:7:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"915:35:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3859,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"914:37:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"910:41:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3828,"id":3861,"nodeType":"Return","src":"903:48:17"}]},"documentation":{"id":3820,"nodeType":"StructuredDocumentation","src":"597:126:17","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":3863,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"737:7:17","nodeType":"FunctionDefinition","parameters":{"id":3825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3822,"mutability":"mutable","name":"a","nameLocation":"752:1:17","nodeType":"VariableDeclaration","scope":3863,"src":"745:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3821,"name":"int256","nodeType":"ElementaryTypeName","src":"745:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3824,"mutability":"mutable","name":"b","nameLocation":"762:1:17","nodeType":"VariableDeclaration","scope":3863,"src":"755:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3823,"name":"int256","nodeType":"ElementaryTypeName","src":"755:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"744:20:17"},"returnParameters":{"id":3828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3863,"src":"788:6:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3826,"name":"int256","nodeType":"ElementaryTypeName","src":"788:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"787:8:17"},"scope":3885,"src":"728:230:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3883,"nodeType":"Block","src":"1102:158:17","statements":[{"id":3882,"nodeType":"UncheckedBlock","src":"1112:142:17","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3873,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3866,"src":"1227:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":3874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1227:6:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1240:2:17","subExpression":{"id":3877,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3866,"src":"1241:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1227:15:17","trueExpression":{"id":3876,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3866,"src":"1236:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3871,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:17","typeDescriptions":{}}},"id":3880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3870,"id":3881,"nodeType":"Return","src":"1212:31:17"}]}]},"documentation":{"id":3864,"nodeType":"StructuredDocumentation","src":"964:78:17","text":" @dev Returns the absolute unsigned value of a signed value."},"id":3884,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1056:3:17","nodeType":"FunctionDefinition","parameters":{"id":3867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3866,"mutability":"mutable","name":"n","nameLocation":"1067:1:17","nodeType":"VariableDeclaration","scope":3884,"src":"1060:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3865,"name":"int256","nodeType":"ElementaryTypeName","src":"1060:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1059:10:17"},"returnParameters":{"id":3870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3869,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3884,"src":"1093:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3868,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:9:17"},"scope":3885,"src":"1047:213:17","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3886,"src":"215:1047:17","usedErrors":[]}],"src":"109:1154:17"},"id":17},"contracts/AdmodConsumer.sol":{"ast":{"absolutePath":"contracts/AdmodConsumer.sol","exportedSymbols":{"AdmodConsumer":[4192],"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[1076],"ConfirmedOwner":[881],"ConfirmedOwnerWithProposal":[1043],"ENSInterface":[1156],"ENSResolver_Chainlink":[2373],"LinkTokenInterface":[1251],"Math":[3468],"OperatorInterface":[1331],"OracleInterface":[1370],"OwnableInterface":[1386],"PointerInterface":[1394],"SafeMath":[3780],"SignedMath":[3885],"Strings":[2602]},"id":4193,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3887,"literals":["solidity","0.8",".17"],"nodeType":"PragmaDirective","src":"32:23:18"},{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","file":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","id":3888,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4193,"sourceUnit":862,"src":"57:59:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","file":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","id":3889,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4193,"sourceUnit":882,"src":"117:58:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","file":"@openzeppelin/contracts/utils/math/SafeMath.sol","id":3890,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4193,"sourceUnit":3781,"src":"176:57:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","id":3891,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4193,"sourceUnit":2603,"src":"234:51:18","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3892,"name":"ChainlinkClient","nameLocations":["314:15:18"],"nodeType":"IdentifierPath","referencedDeclaration":861,"src":"314:15:18"},"id":3893,"nodeType":"InheritanceSpecifier","src":"314:15:18"},{"baseName":{"id":3894,"name":"ConfirmedOwner","nameLocations":["331:14:18"],"nodeType":"IdentifierPath","referencedDeclaration":881,"src":"331:14:18"},"id":3895,"nodeType":"InheritanceSpecifier","src":"331:14:18"}],"canonicalName":"AdmodConsumer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4192,"linearizedBaseContracts":[4192,881,1043,1386,861],"name":"AdmodConsumer","nameLocation":"297:13:18","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3899,"libraryName":{"id":3896,"name":"Chainlink","nameLocations":["358:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":268,"src":"358:9:18"},"nodeType":"UsingForDirective","src":"352:38:18","typeName":{"id":3898,"nodeType":"UserDefinedTypeName","pathNode":{"id":3897,"name":"Chainlink.Request","nameLocations":["372:9:18","382:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"372:17:18"},"referencedDeclaration":25,"src":"372:17:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"global":false,"id":3902,"libraryName":{"id":3900,"name":"SafeMath","nameLocations":["402:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":3780,"src":"402:8:18"},"nodeType":"UsingForDirective","src":"396:24:18","typeName":{"id":3901,"name":"uint","nodeType":"ElementaryTypeName","src":"415:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"functionSelector":"df78abe6","id":3904,"mutability":"mutable","name":"earning","nameLocation":"481:7:18","nodeType":"VariableDeclaration","scope":4192,"src":"466:22:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3903,"name":"uint256","nodeType":"ElementaryTypeName","src":"466:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"a035b1fe","id":3906,"mutability":"mutable","name":"price","nameLocation":"577:5:18","nodeType":"VariableDeclaration","scope":4192,"src":"562:20:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3905,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"403a7761","id":3908,"mutability":"mutable","name":"ggJobId","nameLocation":"664:7:18","nodeType":"VariableDeclaration","scope":4192,"src":"649:22:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"649:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"350844ce","id":3910,"mutability":"mutable","name":"transakJobId","nameLocation":"692:12:18","nodeType":"VariableDeclaration","scope":4192,"src":"677:27:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"677:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"id":3912,"mutability":"mutable","name":"fee","nameLocation":"727:3:18","nodeType":"VariableDeclaration","scope":4192,"src":"711:19:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3911,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"functionSelector":"9e2f9084","id":3916,"mutability":"mutable","name":"earningReports","nameLocation":"771:14:18","nodeType":"VariableDeclaration","scope":4192,"src":"736:49:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":3915,"keyType":{"id":3913,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"736:27:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":3914,"name":"uint256","nodeType":"ElementaryTypeName","src":"755:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"43e1ca49","id":3918,"mutability":"mutable","name":"isEligible","nameLocation":"803:10:18","nodeType":"VariableDeclaration","scope":4192,"src":"791:22:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3917,"name":"bool","nodeType":"ElementaryTypeName","src":"791:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"documentation":{"id":3919,"nodeType":"StructuredDocumentation","src":"820:207:18","text":" @notice\n @beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it\n In this 0xSplits contract will contain the list of charity organizations' addresses"},"functionSelector":"38af3eed","id":3921,"mutability":"mutable","name":"beneficiary","nameLocation":"1047:11:18","nodeType":"VariableDeclaration","scope":4192,"src":"1032:26:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3920,"name":"address","nodeType":"ElementaryTypeName","src":"1032:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"eventSelector":"9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0","id":3927,"name":"RequestEarning","nameLocation":"1071:14:18","nodeType":"EventDefinition","parameters":{"id":3926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3923,"indexed":true,"mutability":"mutable","name":"requestId","nameLocation":"1102:9:18","nodeType":"VariableDeclaration","scope":3927,"src":"1086:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3922,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1086:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3925,"indexed":false,"mutability":"mutable","name":"earning","nameLocation":"1121:7:18","nodeType":"VariableDeclaration","scope":3927,"src":"1113:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3924,"name":"uint256","nodeType":"ElementaryTypeName","src":"1113:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1085:44:18"},"src":"1065:65:18"},{"anonymous":false,"eventSelector":"2e48c207bbe18ca424eae69ca096badb69cc821f8cb72b42f49599f3390a3b1c","id":3933,"name":"RequestBoughtAmount","nameLocation":"1141:19:18","nodeType":"EventDefinition","parameters":{"id":3932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3929,"indexed":true,"mutability":"mutable","name":"requestId","nameLocation":"1177:9:18","nodeType":"VariableDeclaration","scope":3933,"src":"1161:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1161:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3931,"indexed":false,"mutability":"mutable","name":"price","nameLocation":"1196:5:18","nodeType":"VariableDeclaration","scope":3933,"src":"1188:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3930,"name":"uint256","nodeType":"ElementaryTypeName","src":"1188:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1160:42:18"},"src":"1135:68:18"},{"body":{"id":3977,"nodeType":"Block","src":"1571:415:18","statements":[{"expression":{"arguments":[{"hexValue":"307833323643393737453665666338344535313262423943333066373645333063313630654430364642","id":3945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1599:42:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x326C977E6efc84E512bB9C30f76E30c160eD06FB"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3944,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"1581:17:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1581:61:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3947,"nodeType":"ExpressionStatement","src":"1581:61:18"},{"expression":{"arguments":[{"hexValue":"307861413337343733633864373846306631433836633964386145453533453842383936624342344435","id":3949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1671:42:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3948,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"1652:18:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1652:62:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3951,"nodeType":"ExpressionStatement","src":"1652:62:18"},{"expression":{"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3952,"name":"ggJobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"1724:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"6231643432636435346133613432303062316637323561363865343838383838","id":3953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1734:34:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_1279806ce6db11c89121bbea4c15608b4b52482ad47bd18e6ea9ce5893a70f51","typeString":"literal_string \"b1d42cd54a3a4200b1f725a68e488888\""},"value":"b1d42cd54a3a4200b1f725a68e488888"},"src":"1724:44:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3955,"nodeType":"ExpressionStatement","src":"1724:44:18"},{"expression":{"id":3958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3956,"name":"transakJobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"1778:12:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"6231643432636435346133613432303062316637323561363865343838383838","id":3957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1793:34:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_1279806ce6db11c89121bbea4c15608b4b52482ad47bd18e6ea9ce5893a70f51","typeString":"literal_string \"b1d42cd54a3a4200b1f725a68e488888\""},"value":"b1d42cd54a3a4200b1f725a68e488888"},"src":"1778:49:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3959,"nodeType":"ExpressionStatement","src":"1778:49:18"},{"expression":{"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3960,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"1837:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1844:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3962,"name":"LINK_DIVISIBILITY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"1848:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1844:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3964,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1843:23:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":3965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1869:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1843:28:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1837:34:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3968,"nodeType":"ExpressionStatement","src":"1837:34:18"},{"expression":{"id":3971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3969,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"1925:11:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3970,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3938,"src":"1939:12:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1925:26:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3972,"nodeType":"ExpressionStatement","src":"1925:26:18"},{"expression":{"id":3975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3973,"name":"isEligible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"1961:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1974:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1961:18:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3976,"nodeType":"ExpressionStatement","src":"1961:18:18"}]},"documentation":{"id":3934,"nodeType":"StructuredDocumentation","src":"1210:283:18","text":" @notice Initialize the link token and target oracle\n Mumbai Testnet details:\n Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB\n Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 \n jobId: b1d42cd54a3a4200b1f725a68e488888"},"id":3978,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3941,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3936,"src":"1563:6:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3942,"kind":"baseConstructorSpecifier","modifierName":{"id":3940,"name":"ConfirmedOwner","nameLocations":["1548:14:18"],"nodeType":"IdentifierPath","referencedDeclaration":881,"src":"1548:14:18"},"nodeType":"ModifierInvocation","src":"1548:22:18"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3936,"mutability":"mutable","name":"_owner","nameLocation":"1518:6:18","nodeType":"VariableDeclaration","scope":3978,"src":"1510:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3935,"name":"address","nodeType":"ElementaryTypeName","src":"1510:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3938,"mutability":"mutable","name":"_beneficiary","nameLocation":"1534:12:18","nodeType":"VariableDeclaration","scope":3978,"src":"1526:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3937,"name":"address","nodeType":"ElementaryTypeName","src":"1526:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1509:38:18"},"returnParameters":{"id":3943,"nodeType":"ParameterList","parameters":[],"src":"1571:0:18"},"scope":4192,"src":"1498:488:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4019,"nodeType":"Block","src":"2238:508:18","statements":[{"assignments":[3988],"declarations":[{"constant":false,"id":3988,"mutability":"mutable","name":"req","nameLocation":"2273:3:18","nodeType":"VariableDeclaration","scope":4019,"src":"2248:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":3987,"nodeType":"UserDefinedTypeName","pathNode":{"id":3986,"name":"Chainlink.Request","nameLocations":["2248:9:18","2258:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2248:17:18"},"referencedDeclaration":25,"src":"2248:17:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":3999,"initialValue":{"arguments":[{"id":3990,"name":"ggJobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"2314:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":3993,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2343:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$4192","typeString":"contract AdmodConsumer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AdmodConsumer_$4192","typeString":"contract AdmodConsumer"}],"id":3992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2335:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3991,"name":"address","nodeType":"ElementaryTypeName","src":"2335:7:18","typeDescriptions":{}}},"id":3994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2335:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":3995,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2362:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$4192","typeString":"contract AdmodConsumer"}},"id":3996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2367:7:18","memberName":"fulfill","nodeType":"MemberAccess","referencedDeclaration":4048,"src":"2362:12:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":3997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2375:8:18","memberName":"selector","nodeType":"MemberAccess","src":"2362:21:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":3989,"name":"buildChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"2279:21:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":3998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2279:114:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"nodeType":"VariableDeclarationStatement","src":"2248:145:18"},{"expression":{"arguments":[{"hexValue":"676574","id":4003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2478:5:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},"value":"get"},{"hexValue":"68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274","id":4004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2497:78:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_2951f46cc986317dd19e0aff69f07b81260ff04938edb6663dfc83d944c37d93","typeString":"literal_string \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\""},"value":"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},{"typeIdentifier":"t_stringliteral_2951f46cc986317dd19e0aff69f07b81260ff04938edb6663dfc83d944c37d93","typeString":"literal_string \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\""}],"expression":{"id":4000,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3988,"src":"2457:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":4002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2461:3:18","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2457:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":4005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2457:128:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4006,"nodeType":"ExpressionStatement","src":"2457:128:18"},{"expression":{"arguments":[{"hexValue":"70617468","id":4010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2604:6:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},"value":"path"},{"hexValue":"726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565","id":4011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2612:49:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dc5377b9552c5187c2f765c9772a9f30d6c0e04ce19232cb7bc0187b9472339","typeString":"literal_string \"row,metricValues,ESTIMATED_EARNINGS,microsValue\""},"value":"row,metricValues,ESTIMATED_EARNINGS,microsValue"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},{"typeIdentifier":"t_stringliteral_6dc5377b9552c5187c2f765c9772a9f30d6c0e04ce19232cb7bc0187b9472339","typeString":"literal_string \"row,metricValues,ESTIMATED_EARNINGS,microsValue\""}],"expression":{"id":4007,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3988,"src":"2596:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":4009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2600:3:18","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2596:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":4012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2596:66:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4013,"nodeType":"ExpressionStatement","src":"2596:66:18"},{"expression":{"arguments":[{"id":4015,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3988,"src":"2730:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":4016,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"2735:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4014,"name":"sendChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"2709:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":4017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2709:30:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3983,"id":4018,"nodeType":"Return","src":"2702:37:18"}]},"documentation":{"id":3979,"nodeType":"StructuredDocumentation","src":"1993:175:18","text":" Create a Chainlink request to retrieve API response, find the target\n data, then multiply by 1000000000000000000 (to remove decimal places from data)."},"functionSelector":"50ed6a95","id":4020,"implemented":true,"kind":"function","modifiers":[],"name":"requestWeekEarning","nameLocation":"2182:18:18","nodeType":"FunctionDefinition","parameters":{"id":3980,"nodeType":"ParameterList","parameters":[],"src":"2200:2:18"},"returnParameters":{"id":3983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3982,"mutability":"mutable","name":"requestId","nameLocation":"2227:9:18","nodeType":"VariableDeclaration","scope":4020,"src":"2219:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2219:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2218:19:18"},"scope":4192,"src":"2173:573:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4047,"nodeType":"Block","src":"2950:266:18","statements":[{"eventCall":{"arguments":[{"id":4032,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4023,"src":"2980:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4033,"name":"_earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2992:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4031,"name":"RequestEarning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3927,"src":"2965:14:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2965:36:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4035,"nodeType":"EmitStatement","src":"2960:41:18"},{"documentation":"@notice earning will be a total of earning this week subtract for Transak transaction fee","expression":{"id":4042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4036,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"3133:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4039,"name":"_earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"3156:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313030303030","id":4040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3165:6:18","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"}],"expression":{"id":4037,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3780,"src":"3143:8:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$3780_$","typeString":"type(library SafeMath)"}},"id":4038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3152:3:18","memberName":"div","nodeType":"MemberAccess","referencedDeclaration":3689,"src":"3143:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3143:29:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3133:39:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4043,"nodeType":"ExpressionStatement","src":"3133:39:18"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4044,"name":"_requestTransakValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4103,"src":"3182:25:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_bytes32_$","typeString":"function () returns (bytes32)"}},"id":4045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3182:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4046,"nodeType":"ExpressionStatement","src":"3182:27:18"}]},"documentation":{"id":4021,"nodeType":"StructuredDocumentation","src":"2752:70:18","text":"@notice\n Receive the response in the form of uint256"},"functionSelector":"4357855e","id":4048,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4028,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4023,"src":"2938:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4029,"kind":"modifierInvocation","modifierName":{"id":4027,"name":"recordChainlinkFulfillment","nameLocations":["2911:26:18"],"nodeType":"IdentifierPath","referencedDeclaration":841,"src":"2911:26:18"},"nodeType":"ModifierInvocation","src":"2911:38:18"}],"name":"fulfill","nameLocation":"2836:7:18","nodeType":"FunctionDefinition","parameters":{"id":4026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4023,"mutability":"mutable","name":"_requestId","nameLocation":"2861:10:18","nodeType":"VariableDeclaration","scope":4048,"src":"2853:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2853:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4025,"mutability":"mutable","name":"_earning","nameLocation":"2889:8:18","nodeType":"VariableDeclaration","scope":4048,"src":"2881:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2881:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2843:60:18"},"returnParameters":{"id":4030,"nodeType":"ParameterList","parameters":[],"src":"2950:0:18"},"scope":4192,"src":"2827:389:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4102,"nodeType":"Block","src":"3295:729:18","statements":[{"assignments":[4057],"declarations":[{"constant":false,"id":4057,"mutability":"mutable","name":"req","nameLocation":"3330:3:18","nodeType":"VariableDeclaration","scope":4102,"src":"3305:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":4056,"nodeType":"UserDefinedTypeName","pathNode":{"id":4055,"name":"Chainlink.Request","nameLocations":["3305:9:18","3315:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3305:17:18"},"referencedDeclaration":25,"src":"3305:17:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":4068,"initialValue":{"arguments":[{"id":4059,"name":"transakJobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"3371:12:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":4062,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3405:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$4192","typeString":"contract AdmodConsumer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AdmodConsumer_$4192","typeString":"contract AdmodConsumer"}],"id":4061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3397:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4060,"name":"address","nodeType":"ElementaryTypeName","src":"3397:7:18","typeDescriptions":{}}},"id":4063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3397:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":4064,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3424:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$4192","typeString":"contract AdmodConsumer"}},"id":4065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3429:19:18","memberName":"fulfillTransakPrice","nodeType":"MemberAccess","referencedDeclaration":4126,"src":"3424:24:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":4066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3449:8:18","memberName":"selector","nodeType":"MemberAccess","src":"3424:33:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":4058,"name":"buildChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"3336:21:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":4067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3336:131:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"nodeType":"VariableDeclarationStatement","src":"3305:162:18"},{"assignments":[4070],"declarations":[{"constant":false,"id":4070,"mutability":"mutable","name":"apiUrl","nameLocation":"3492:6:18","nodeType":"VariableDeclaration","scope":4102,"src":"3478:20:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4069,"name":"string","nodeType":"ElementaryTypeName","src":"3478:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4082,"initialValue":{"arguments":[{"arguments":[{"hexValue":"68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f76322f63757272656e636965732f70726963653f706172746e65724170694b65793d30363235323566302d383536622d343330322d396434382d386236393062623565363334266669617443757272656e63793d5553442663727970746f43757272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f726b3d657468657265756d267061796d656e744d6574686f643d6372656469745f64656269745f636172642666696174416d6f756e743d","id":4075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3525:217:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad","typeString":"literal_string \"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount=\""},"value":"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount="},{"arguments":[{"id":4078,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"3761:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4076,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2602,"src":"3744:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$2602_$","typeString":"type(library Strings)"}},"id":4077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3752:8:18","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2432,"src":"3744:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3744:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad","typeString":"literal_string \"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount=\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4073,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3508:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3512:12:18","memberName":"encodePacked","nodeType":"MemberAccess","src":"3508:16:18","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3508:262:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3501:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4071,"name":"string","nodeType":"ElementaryTypeName","src":"3501:6:18","typeDescriptions":{}}},"id":4081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3501:270:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"3478:293:18"},{"expression":{"arguments":[{"hexValue":"676574","id":4086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3856:5:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},"value":"get"},{"id":4087,"name":"apiUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4070,"src":"3875:6:18","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4083,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4057,"src":"3835:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":4085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3839:3:18","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"3835:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":4088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3835:56:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4089,"nodeType":"ExpressionStatement","src":"3835:56:18"},{"expression":{"arguments":[{"hexValue":"70617468","id":4093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3910:6:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},"value":"path"},{"hexValue":"726573706f6e73652c66696174416d6f756e74","id":4094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3918:21:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0a2fdf5133af9e68e806b665a08069d68385ac316e585c00460d521bde98f4d","typeString":"literal_string \"response,fiatAmount\""},"value":"response,fiatAmount"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},{"typeIdentifier":"t_stringliteral_a0a2fdf5133af9e68e806b665a08069d68385ac316e585c00460d521bde98f4d","typeString":"literal_string \"response,fiatAmount\""}],"expression":{"id":4090,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4057,"src":"3902:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":4092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3906:3:18","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"3902:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":4095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3902:38:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4096,"nodeType":"ExpressionStatement","src":"3902:38:18"},{"expression":{"arguments":[{"id":4098,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4057,"src":"4008:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":4099,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"4013:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4097,"name":"sendChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"3987:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":4100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3987:30:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4052,"id":4101,"nodeType":"Return","src":"3980:37:18"}]},"id":4103,"implemented":true,"kind":"function","modifiers":[],"name":"_requestTransakValidation","nameLocation":"3231:25:18","nodeType":"FunctionDefinition","parameters":{"id":4049,"nodeType":"ParameterList","parameters":[],"src":"3256:2:18"},"returnParameters":{"id":4052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4051,"mutability":"mutable","name":"requestId","nameLocation":"3284:9:18","nodeType":"VariableDeclaration","scope":4103,"src":"3276:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3276:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3275:19:18"},"scope":4192,"src":"3222:802:18","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4125,"nodeType":"Block","src":"4163:240:18","statements":[{"eventCall":{"arguments":[{"id":4114,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"4198:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4115,"name":"_price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4107,"src":"4210:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4113,"name":"RequestBoughtAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"4178:19:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4178:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4117,"nodeType":"EmitStatement","src":"4173:44:18"},{"documentation":"@notice earning will be a total of earning this week subtract for Transak transaction fee","expression":{"id":4120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4118,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3906,"src":"4349:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4119,"name":"_price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4107,"src":"4357:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4349:14:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4121,"nodeType":"ExpressionStatement","src":"4349:14:18"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4122,"name":"_checkEligibleEarning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4191,"src":"4373:21:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4373:23:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4124,"nodeType":"ExpressionStatement","src":"4373:23:18"}]},"functionSelector":"93232d9f","id":4126,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4110,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"4151:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4111,"kind":"modifierInvocation","modifierName":{"id":4109,"name":"recordChainlinkFulfillment","nameLocations":["4124:26:18"],"nodeType":"IdentifierPath","referencedDeclaration":841,"src":"4124:26:18"},"nodeType":"ModifierInvocation","src":"4124:38:18"}],"name":"fulfillTransakPrice","nameLocation":"4039:19:18","nodeType":"FunctionDefinition","parameters":{"id":4108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4105,"mutability":"mutable","name":"_requestId","nameLocation":"4076:10:18","nodeType":"VariableDeclaration","scope":4126,"src":"4068:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4068:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4107,"mutability":"mutable","name":"_price","nameLocation":"4104:6:18","nodeType":"VariableDeclaration","scope":4126,"src":"4096:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4106,"name":"uint256","nodeType":"ElementaryTypeName","src":"4096:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4058:58:18"},"returnParameters":{"id":4112,"nodeType":"ParameterList","parameters":[],"src":"4163:0:18"},"scope":4192,"src":"4030:373:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4155,"nodeType":"Block","src":"4595:218:18","statements":[{"assignments":[4134],"declarations":[{"constant":false,"id":4134,"mutability":"mutable","name":"link","nameLocation":"4624:4:18","nodeType":"VariableDeclaration","scope":4155,"src":"4605:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"},"typeName":{"id":4133,"nodeType":"UserDefinedTypeName","pathNode":{"id":4132,"name":"LinkTokenInterface","nameLocations":["4605:18:18"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"4605:18:18"},"referencedDeclaration":1251,"src":"4605:18:18","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"visibility":"internal"}],"id":4139,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4136,"name":"chainlinkTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"4650:21:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4650:23:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4135,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"4631:18:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1251_$","typeString":"type(contract LinkTokenInterface)"}},"id":4138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4631:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"nodeType":"VariableDeclarationStatement","src":"4605:69:18"},{"expression":{"arguments":[{"arguments":[{"id":4143,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"4719:11:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":4148,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4755:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$4192","typeString":"contract AdmodConsumer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AdmodConsumer_$4192","typeString":"contract AdmodConsumer"}],"id":4147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4747:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4146,"name":"address","nodeType":"ElementaryTypeName","src":"4747:7:18","typeDescriptions":{}}},"id":4149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4747:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4144,"name":"link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4134,"src":"4732:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":4145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4737:9:18","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1183,"src":"4732:14:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":4150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4732:29:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4141,"name":"link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4134,"src":"4705:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":4142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4710:8:18","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":1228,"src":"4705:13:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":4151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4705:57:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e61626c6520746f207472616e73666572","id":4152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4776:20:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1","typeString":"literal_string \"Unable to transfer\""},"value":"Unable to transfer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1","typeString":"literal_string \"Unable to transfer\""}],"id":4140,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4684:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4684:122:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4154,"nodeType":"ExpressionStatement","src":"4684:122:18"}]},"documentation":{"id":4127,"nodeType":"StructuredDocumentation","src":"4409:139:18","text":"@notice\n Allow withdraw of Link tokens from the contract\n LINK will always be sent to beneficiary 0xSplits contract"},"functionSelector":"8dc654a2","id":4156,"implemented":true,"kind":"function","modifiers":[{"id":4130,"kind":"modifierInvocation","modifierName":{"id":4129,"name":"onlyOwner","nameLocations":["4585:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":1042,"src":"4585:9:18"},"nodeType":"ModifierInvocation","src":"4585:9:18"}],"name":"withdrawLink","nameLocation":"4563:12:18","nodeType":"FunctionDefinition","parameters":{"id":4128,"nodeType":"ParameterList","parameters":[],"src":"4575:2:18"},"returnParameters":{"id":4131,"nodeType":"ParameterList","parameters":[],"src":"4595:0:18"},"scope":4192,"src":"4554:259:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4190,"nodeType":"Block","src":"4860:274:18","statements":[{"assignments":[4161],"declarations":[{"constant":false,"id":4161,"mutability":"mutable","name":"link","nameLocation":"4889:4:18","nodeType":"VariableDeclaration","scope":4190,"src":"4870:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"},"typeName":{"id":4160,"nodeType":"UserDefinedTypeName","pathNode":{"id":4159,"name":"LinkTokenInterface","nameLocations":["4870:18:18"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"4870:18:18"},"referencedDeclaration":1251,"src":"4870:18:18","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"visibility":"internal"}],"id":4166,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4163,"name":"chainlinkTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"4915:21:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4915:23:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4162,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"4896:18:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1251_$","typeString":"type(contract LinkTokenInterface)"}},"id":4165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4896:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"nodeType":"VariableDeclarationStatement","src":"4870:69:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4169,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"4968:11:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4167,"name":"link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4161,"src":"4953:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":4168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4958:9:18","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1183,"src":"4953:14:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":4170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4953:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4171,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"4984:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4953:38:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"id":4187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4185,"name":"isEligible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"5109:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5122:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5109:18:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4188,"nodeType":"ExpressionStatement","src":"5109:18:18"},"id":4189,"nodeType":"IfStatement","src":"4949:178:18","trueBody":{"id":4184,"nodeType":"Block","src":"5001:94:18","statements":[{"expression":{"id":4178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4173,"name":"earningReports","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3916,"src":"5015:14:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4176,"indexExpression":{"expression":{"id":4174,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5030:5:18","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5036:6:18","memberName":"number","nodeType":"MemberAccess","src":"5030:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5015:28:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4177,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"5046:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5015:38:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4179,"nodeType":"ExpressionStatement","src":"5015:38:18"},{"expression":{"id":4182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4180,"name":"isEligible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"5067:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5080:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5067:17:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4183,"nodeType":"ExpressionStatement","src":"5067:17:18"}]}}]},"id":4191,"implemented":true,"kind":"function","modifiers":[],"name":"_checkEligibleEarning","nameLocation":"4828:21:18","nodeType":"FunctionDefinition","parameters":{"id":4157,"nodeType":"ParameterList","parameters":[],"src":"4849:2:18"},"returnParameters":{"id":4158,"nodeType":"ParameterList","parameters":[],"src":"4860:0:18"},"scope":4192,"src":"4819:315:18","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":4193,"src":"288:4849:18","usedErrors":[]}],"src":"32:5105:18"},"id":18}},"contracts":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"Chainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220105cba522c50bcfa40d79857ca1cf61e43326a5bb6975a5f5eafaf335714c55f64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 LT 0x5C 0xBA MSTORE 0x2C POP 0xBC STATICCALL BLOCKHASH 0xD7 SWAP9 JUMPI 0xCA SHR 0xF6 0x1E NUMBER ORIGIN PUSH11 0x5BB6975A5F5EAFAF335714 0xC5 0x5F PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;293:3494:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220105cba522c50bcfa40d79857ca1cf61e43326a5bb6975a5f5eafaf335714c55f64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT 0x5C 0xBA MSTORE 0x2C POP 0xBC STATICCALL BLOCKHASH 0xD7 SWAP9 JUMPI 0xCA SHR 0xF6 0x1E NUMBER ORIGIN PUSH11 0x5BB6975A5F5EAFAF335714 0xC5 0x5F PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Uses imported CBOR library for encoding to buffer\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Library for common Chainlink functions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":\"Chainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ChainlinkClient":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ChainlinkClient contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contract writers can inherit this contract in order to create requests for the Chainlink network\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":\"ChainlinkClient\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"ConfirmedOwner":{"abi":[{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_880":{"entryPoint":null,"id":880,"parameterSlots":1,"returnSlots":0},"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":197,"id":1021,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":366,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1011:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:19","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:19"},"nodeType":"YulFunctionCall","src":"143:12:19"},"nodeType":"YulExpressionStatement","src":"143:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:19"},"nodeType":"YulFunctionCall","src":"112:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:19"},"nodeType":"YulFunctionCall","src":"108:32:19"},"nodeType":"YulIf","src":"105:52:19"},{"nodeType":"YulVariableDeclaration","src":"166:29:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:19"},"nodeType":"YulFunctionCall","src":"179:16:19"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:19"},"nodeType":"YulFunctionCall","src":"260:12:19"},"nodeType":"YulExpressionStatement","src":"260:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:19"},"nodeType":"YulFunctionCall","src":"239:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:19"},"nodeType":"YulFunctionCall","src":"235:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:19"},"nodeType":"YulFunctionCall","src":"224:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:19"},"nodeType":"YulFunctionCall","src":"214:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:19"},"nodeType":"YulFunctionCall","src":"207:50:19"},"nodeType":"YulIf","src":"204:70:19"},{"nodeType":"YulAssignment","src":"283:15:19","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:19"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:19","type":""}],"src":"14:290:19"},{"body":{"nodeType":"YulBlock","src":"483:174:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"500:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"511:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:19"},"nodeType":"YulFunctionCall","src":"493:21:19"},"nodeType":"YulExpressionStatement","src":"493:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"534:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"545:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"530:3:19"},"nodeType":"YulFunctionCall","src":"530:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"550:2:19","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"523:6:19"},"nodeType":"YulFunctionCall","src":"523:30:19"},"nodeType":"YulExpressionStatement","src":"523:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"573:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"584:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:19"},"nodeType":"YulFunctionCall","src":"569:18:19"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"589:26:19","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"562:6:19"},"nodeType":"YulFunctionCall","src":"562:54:19"},"nodeType":"YulExpressionStatement","src":"562:54:19"},{"nodeType":"YulAssignment","src":"625:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"637:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"648:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"633:3:19"},"nodeType":"YulFunctionCall","src":"633:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"625:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"460:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"474:4:19","type":""}],"src":"309:348:19"},{"body":{"nodeType":"YulBlock","src":"836:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"853:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"864:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"846:6:19"},"nodeType":"YulFunctionCall","src":"846:21:19"},"nodeType":"YulExpressionStatement","src":"846:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"887:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"898:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"883:3:19"},"nodeType":"YulFunctionCall","src":"883:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"903:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"876:6:19"},"nodeType":"YulFunctionCall","src":"876:30:19"},"nodeType":"YulExpressionStatement","src":"876:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"926:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"937:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"922:3:19"},"nodeType":"YulFunctionCall","src":"922:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"942:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"915:6:19"},"nodeType":"YulFunctionCall","src":"915:53:19"},"nodeType":"YulExpressionStatement","src":"915:53:19"},{"nodeType":"YulAssignment","src":"977:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"989:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1000:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"985:3:19"},"nodeType":"YulFunctionCall","src":"985:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"977:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"813:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"827:4:19","type":""}],"src":"662:347:19"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161045638038061045683398101604081905261002f9161016e565b8060006001600160a01b03821661008d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03848116919091179091558116156100bd576100bd816100c5565b50505061019e565b336001600160a01b0382160361011d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610084565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561018057600080fd5b81516001600160a01b038116811461019757600080fd5b9392505050565b6102a9806101ad6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea26469706673582212201739d59a9a74282c0b5b391ffbf3f28ae1e523716204ee3945844347ccadf1d664736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x456 CODESIZE SUB DUP1 PUSH2 0x456 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x16E JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH2 0xBD JUMPI PUSH2 0xBD DUP2 PUSH2 0xC5 JUMP JUMPDEST POP POP POP PUSH2 0x19E JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x11D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x84 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x197 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2A9 DUP1 PUSH2 0x1AD 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR CODECOPY 0xD5 SWAP11 SWAP11 PUSH21 0x282C0B5B391FFBF3F28AE1E523716204EE39458443 SELFBALANCE 0xCC 0xAD CALL 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"212:141:2:-:0;;;270:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;327:8;345:1;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;511:2:19;544:59:3;;;493:21:19;550:2;530:18;;;523:30;589:26;569:18;;;562:54;633:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;270:81:2;212:141;;1497:188:3;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;864:2:19;1551:52:3;;;846:21:19;903:2;883:18;;;876:30;942:25;922:18;;;915:53;985:18;;1551:52:3;662:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;14:290:19:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:19;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:19:o;662:347::-;212:141:2;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_transferOwnership_1021":{"entryPoint":410,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":325,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":130,"id":987,"parameterSlots":0,"returnSlots":0},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@transferOwnership_951":{"entryPoint":305,"id":951,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":579,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1564:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:102:19","statements":[{"nodeType":"YulAssignment","src":"125:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:19"},"nodeType":"YulFunctionCall","src":"133:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"182:6:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"198:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"203:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"194:3:19"},"nodeType":"YulFunctionCall","src":"194:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"207:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"190:3:19"},"nodeType":"YulFunctionCall","src":"190:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"178:3:19"},"nodeType":"YulFunctionCall","src":"178:32:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:19"},"nodeType":"YulFunctionCall","src":"160:51:19"},"nodeType":"YulExpressionStatement","src":"160:51:19"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:19","type":""}],"src":"14:203:19"},{"body":{"nodeType":"YulBlock","src":"292:216:19","statements":[{"body":{"nodeType":"YulBlock","src":"338:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"347:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"350:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"340:6:19"},"nodeType":"YulFunctionCall","src":"340:12:19"},"nodeType":"YulExpressionStatement","src":"340:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"313:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"309:3:19"},"nodeType":"YulFunctionCall","src":"309:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"334:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"305:3:19"},"nodeType":"YulFunctionCall","src":"305:32:19"},"nodeType":"YulIf","src":"302:52:19"},{"nodeType":"YulVariableDeclaration","src":"363:36:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"389:9:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"376:12:19"},"nodeType":"YulFunctionCall","src":"376:23:19"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"367:5:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"471:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"474:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"464:6:19"},"nodeType":"YulFunctionCall","src":"464:12:19"},"nodeType":"YulExpressionStatement","src":"464:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"421:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"432:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"447:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"452:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"443:3:19"},"nodeType":"YulFunctionCall","src":"443:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"456:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"439:3:19"},"nodeType":"YulFunctionCall","src":"439:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"428:3:19"},"nodeType":"YulFunctionCall","src":"428:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"418:2:19"},"nodeType":"YulFunctionCall","src":"418:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"411:6:19"},"nodeType":"YulFunctionCall","src":"411:50:19"},"nodeType":"YulIf","src":"408:70:19"},{"nodeType":"YulAssignment","src":"487:15:19","value":{"name":"value","nodeType":"YulIdentifier","src":"497:5:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"487:6:19"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"258:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"269:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"281:6:19","type":""}],"src":"222:286:19"},{"body":{"nodeType":"YulBlock","src":"687:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"704:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"715:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"697:6:19"},"nodeType":"YulFunctionCall","src":"697:21:19"},"nodeType":"YulExpressionStatement","src":"697:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"738:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"749:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:19"},"nodeType":"YulFunctionCall","src":"734:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"754:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:19"},"nodeType":"YulFunctionCall","src":"727:30:19"},"nodeType":"YulExpressionStatement","src":"727:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"777:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"788:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"773:3:19"},"nodeType":"YulFunctionCall","src":"773:18:19"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"793:24:19","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"766:6:19"},"nodeType":"YulFunctionCall","src":"766:52:19"},"nodeType":"YulExpressionStatement","src":"766:52:19"},{"nodeType":"YulAssignment","src":"827:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"839:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"850:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"835:3:19"},"nodeType":"YulFunctionCall","src":"835:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"827:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"664:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"678:4:19","type":""}],"src":"513:346:19"},{"body":{"nodeType":"YulBlock","src":"1038:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1066:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1048:6:19"},"nodeType":"YulFunctionCall","src":"1048:21:19"},"nodeType":"YulExpressionStatement","src":"1048:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1089:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1085:3:19"},"nodeType":"YulFunctionCall","src":"1085:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1105:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1078:6:19"},"nodeType":"YulFunctionCall","src":"1078:30:19"},"nodeType":"YulExpressionStatement","src":"1078:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1139:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1124:3:19"},"nodeType":"YulFunctionCall","src":"1124:18:19"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1144:24:19","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1117:6:19"},"nodeType":"YulFunctionCall","src":"1117:52:19"},"nodeType":"YulExpressionStatement","src":"1117:52:19"},{"nodeType":"YulAssignment","src":"1178:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1190:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1201:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1186:3:19"},"nodeType":"YulFunctionCall","src":"1186:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1178:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1015:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1029:4:19","type":""}],"src":"864:346:19"},{"body":{"nodeType":"YulBlock","src":"1389:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1417:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1399:6:19"},"nodeType":"YulFunctionCall","src":"1399:21:19"},"nodeType":"YulExpressionStatement","src":"1399:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1440:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1451:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:19"},"nodeType":"YulFunctionCall","src":"1436:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1456:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1429:6:19"},"nodeType":"YulFunctionCall","src":"1429:30:19"},"nodeType":"YulExpressionStatement","src":"1429:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1479:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1490:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:19"},"nodeType":"YulFunctionCall","src":"1475:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1495:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1468:6:19"},"nodeType":"YulFunctionCall","src":"1468:53:19"},"nodeType":"YulExpressionStatement","src":"1468:53:19"},{"nodeType":"YulAssignment","src":"1530:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1542:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1553:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1538:3:19"},"nodeType":"YulFunctionCall","src":"1538:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1530:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1366:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1380:4:19","type":""}],"src":"1215:347:19"}]},"contents":"{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea26469706673582212201739d59a9a74282c0b5b391ffbf3f28ae1e523716204ee3945844347ccadf1d664736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR CODECOPY 0xD5 SWAP11 SWAP11 PUSH21 0x282C0B5B391FFBF3F28AE1E523716204EE39458443 SELFBALANCE 0xCC 0xAD CALL 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"212:141:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:265:3;;;:::i;:::-;;1332:81;1379:7;1401;1332:81;;;-1:-1:-1;;;;;1401:7:3;;;160:51:19;;1332:81:3;;;;;148:2:19;1332:81:3;;;826:98;;;;;;:::i;:::-;;:::i;1016:265::-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;715:2:19;1067:63:3;;;697:21:19;754:2;734:18;;;727:30;-1:-1:-1;;;773:18:19;;;766:52;835:18;;1067:63:3;;;;;;;;;1137:16;1156:7;;1179:10;-1:-1:-1;;;;;;1169:20:3;;;;;;;-1:-1:-1;1195:27:3;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;;1156:7;;1234:42;;;1061:220;1016:265::o;826:98::-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;:::-;826:98:::0;:::o;1730:111::-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;1066:2:19;1780:56:3;;;1048:21:19;1105:2;1085:18;;;1078:30;-1:-1:-1;;;1124:18:19;;;1117:52;1186:18;;1780:56:3;864:346:19;1780:56:3;1730:111::o;1497:188::-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1417:2:19;1551:52:3;;;1399:21:19;1456:2;1436:18;;;1429:30;1495:25;1475:18;;;1468:53;1538:18;;1551:52:3;1215:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;222:286:19:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:19;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:19:o"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ConfirmedOwner contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"}},\"notice\":\"A contract with helpers for basic contract ownership.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":\"ConfirmedOwner\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":{\"keccak256\":\"0x99d0b0786fe368970009c703f2249bfbc56340ddf1a28b60d2915bb58c34cd72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0371c1af45db651823b9a3d5af761b08243c78f105166342eee28de356c8dd\",\"dweb:/ipfs/QmPnC9qNDKwJFd5unwLb9pxjrutoe8MWjm5EXHTxq2kJ4x\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"ConfirmedOwnerWithProposal":{"abi":[{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":193,"id":1021,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":362,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":390,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1196:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:19","statements":[{"nodeType":"YulAssignment","src":"84:22:19","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:19"},"nodeType":"YulFunctionCall","src":"93:13:19"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:19"}]},{"body":{"nodeType":"YulBlock","src":"169:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:19"},"nodeType":"YulFunctionCall","src":"171:12:19"},"nodeType":"YulExpressionStatement","src":"171:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:19"},"nodeType":"YulFunctionCall","src":"150:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:19"},"nodeType":"YulFunctionCall","src":"146:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:19"},"nodeType":"YulFunctionCall","src":"135:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:19"},"nodeType":"YulFunctionCall","src":"125:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:19"},"nodeType":"YulFunctionCall","src":"118:50:19"},"nodeType":"YulIf","src":"115:70:19"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:19","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:19","type":""}],"src":"14:177:19"},{"body":{"nodeType":"YulBlock","src":"294:195:19","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:19"},"nodeType":"YulFunctionCall","src":"342:12:19"},"nodeType":"YulExpressionStatement","src":"342:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:19"},"nodeType":"YulFunctionCall","src":"311:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:19","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:19"},"nodeType":"YulFunctionCall","src":"307:32:19"},"nodeType":"YulIf","src":"304:52:19"},{"nodeType":"YulAssignment","src":"365:50:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:19"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:19"},"nodeType":"YulFunctionCall","src":"375:40:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:19"}]},{"nodeType":"YulAssignment","src":"424:59:19","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:19"},"nodeType":"YulFunctionCall","src":"464:18:19"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:19"},"nodeType":"YulFunctionCall","src":"434:49:19"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:19"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:19","type":""}],"src":"196:293:19"},{"body":{"nodeType":"YulBlock","src":"668:174:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:19"},"nodeType":"YulFunctionCall","src":"678:21:19"},"nodeType":"YulExpressionStatement","src":"678:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:19"},"nodeType":"YulFunctionCall","src":"715:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:19","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:19"},"nodeType":"YulFunctionCall","src":"708:30:19"},"nodeType":"YulExpressionStatement","src":"708:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:19"},"nodeType":"YulFunctionCall","src":"754:18:19"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"774:26:19","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:19"},"nodeType":"YulFunctionCall","src":"747:54:19"},"nodeType":"YulExpressionStatement","src":"747:54:19"},{"nodeType":"YulAssignment","src":"810:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"822:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"833:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"818:3:19"},"nodeType":"YulFunctionCall","src":"818:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"810:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:19","type":""}],"src":"494:348:19"},{"body":{"nodeType":"YulBlock","src":"1021:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1038:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1031:6:19"},"nodeType":"YulFunctionCall","src":"1031:21:19"},"nodeType":"YulExpressionStatement","src":"1031:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1072:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1083:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1068:3:19"},"nodeType":"YulFunctionCall","src":"1068:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1088:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1061:6:19"},"nodeType":"YulFunctionCall","src":"1061:30:19"},"nodeType":"YulExpressionStatement","src":"1061:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1111:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1122:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1107:3:19"},"nodeType":"YulFunctionCall","src":"1107:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1127:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1100:6:19"},"nodeType":"YulFunctionCall","src":"1100:53:19"},"nodeType":"YulExpressionStatement","src":"1100:53:19"},{"nodeType":"YulAssignment","src":"1162:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1174:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1185:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1170:3:19"},"nodeType":"YulFunctionCall","src":"1170:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1162:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"998:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1012:4:19","type":""}],"src":"847:347:19"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161047138038061047183398101604081905261002f91610186565b6001600160a01b03821661008a5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03848116919091179091558116156100ba576100ba816100c1565b50506101b9565b336001600160a01b038216036101195760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610081565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b038116811461018157600080fd5b919050565b6000806040838503121561019957600080fd5b6101a28361016a565b91506101b06020840161016a565b90509250929050565b6102a9806101c86000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea2646970667358221220768354278908a9a8fa21a7093ee5414379b9ee80a33d9f06b906f6d52bff6b1c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x471 CODESIZE SUB DUP1 PUSH2 0x471 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x186 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH2 0xBA JUMPI PUSH2 0xBA DUP2 PUSH2 0xC1 JUMP JUMPDEST POP POP PUSH2 0x1B9 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x119 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x81 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x181 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A2 DUP4 PUSH2 0x16A JUMP JUMPDEST SWAP2 POP PUSH2 0x1B0 PUSH1 0x20 DUP5 ADD PUSH2 0x16A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A9 DUP1 PUSH2 0x1C8 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x8354278908A9A8FA21A7093EE5414379B9EE80A33D9F06 0xB9 MOD 0xF6 0xD5 0x2B SELFDESTRUCT PUSH12 0x1C64736F6C63430008110033 ","sourceMap":"213:1777:3:-:0;;;486:231;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;696:2:19;544:59:3;;;678:21:19;735:2;715:18;;;708:30;774:26;754:18;;;747:54;818:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;213:1777;;1497:188;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1049:2:19;1551:52:3;;;1031:21:19;1088:2;1068:18;;;1061:30;1127:25;1107:18;;;1100:53;1170:18;;1551:52:3;847:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;14:177:19:-;93:13;;-1:-1:-1;;;;;135:31:19;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;847:347::-;213:1777:3;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_transferOwnership_1021":{"entryPoint":410,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":325,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":130,"id":987,"parameterSlots":0,"returnSlots":0},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@transferOwnership_951":{"entryPoint":305,"id":951,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":579,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1564:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:102:19","statements":[{"nodeType":"YulAssignment","src":"125:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:19"},"nodeType":"YulFunctionCall","src":"133:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"182:6:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"198:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"203:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"194:3:19"},"nodeType":"YulFunctionCall","src":"194:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"207:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"190:3:19"},"nodeType":"YulFunctionCall","src":"190:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"178:3:19"},"nodeType":"YulFunctionCall","src":"178:32:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:19"},"nodeType":"YulFunctionCall","src":"160:51:19"},"nodeType":"YulExpressionStatement","src":"160:51:19"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:19","type":""}],"src":"14:203:19"},{"body":{"nodeType":"YulBlock","src":"292:216:19","statements":[{"body":{"nodeType":"YulBlock","src":"338:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"347:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"350:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"340:6:19"},"nodeType":"YulFunctionCall","src":"340:12:19"},"nodeType":"YulExpressionStatement","src":"340:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"313:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"309:3:19"},"nodeType":"YulFunctionCall","src":"309:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"334:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"305:3:19"},"nodeType":"YulFunctionCall","src":"305:32:19"},"nodeType":"YulIf","src":"302:52:19"},{"nodeType":"YulVariableDeclaration","src":"363:36:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"389:9:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"376:12:19"},"nodeType":"YulFunctionCall","src":"376:23:19"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"367:5:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"471:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"474:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"464:6:19"},"nodeType":"YulFunctionCall","src":"464:12:19"},"nodeType":"YulExpressionStatement","src":"464:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"421:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"432:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"447:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"452:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"443:3:19"},"nodeType":"YulFunctionCall","src":"443:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"456:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"439:3:19"},"nodeType":"YulFunctionCall","src":"439:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"428:3:19"},"nodeType":"YulFunctionCall","src":"428:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"418:2:19"},"nodeType":"YulFunctionCall","src":"418:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"411:6:19"},"nodeType":"YulFunctionCall","src":"411:50:19"},"nodeType":"YulIf","src":"408:70:19"},{"nodeType":"YulAssignment","src":"487:15:19","value":{"name":"value","nodeType":"YulIdentifier","src":"497:5:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"487:6:19"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"258:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"269:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"281:6:19","type":""}],"src":"222:286:19"},{"body":{"nodeType":"YulBlock","src":"687:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"704:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"715:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"697:6:19"},"nodeType":"YulFunctionCall","src":"697:21:19"},"nodeType":"YulExpressionStatement","src":"697:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"738:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"749:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:19"},"nodeType":"YulFunctionCall","src":"734:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"754:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:19"},"nodeType":"YulFunctionCall","src":"727:30:19"},"nodeType":"YulExpressionStatement","src":"727:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"777:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"788:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"773:3:19"},"nodeType":"YulFunctionCall","src":"773:18:19"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"793:24:19","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"766:6:19"},"nodeType":"YulFunctionCall","src":"766:52:19"},"nodeType":"YulExpressionStatement","src":"766:52:19"},{"nodeType":"YulAssignment","src":"827:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"839:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"850:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"835:3:19"},"nodeType":"YulFunctionCall","src":"835:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"827:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"664:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"678:4:19","type":""}],"src":"513:346:19"},{"body":{"nodeType":"YulBlock","src":"1038:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1066:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1048:6:19"},"nodeType":"YulFunctionCall","src":"1048:21:19"},"nodeType":"YulExpressionStatement","src":"1048:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1089:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1085:3:19"},"nodeType":"YulFunctionCall","src":"1085:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1105:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1078:6:19"},"nodeType":"YulFunctionCall","src":"1078:30:19"},"nodeType":"YulExpressionStatement","src":"1078:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1139:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1124:3:19"},"nodeType":"YulFunctionCall","src":"1124:18:19"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1144:24:19","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1117:6:19"},"nodeType":"YulFunctionCall","src":"1117:52:19"},"nodeType":"YulExpressionStatement","src":"1117:52:19"},{"nodeType":"YulAssignment","src":"1178:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1190:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1201:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1186:3:19"},"nodeType":"YulFunctionCall","src":"1186:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1178:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1015:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1029:4:19","type":""}],"src":"864:346:19"},{"body":{"nodeType":"YulBlock","src":"1389:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1417:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1399:6:19"},"nodeType":"YulFunctionCall","src":"1399:21:19"},"nodeType":"YulExpressionStatement","src":"1399:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1440:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1451:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:19"},"nodeType":"YulFunctionCall","src":"1436:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1456:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1429:6:19"},"nodeType":"YulFunctionCall","src":"1429:30:19"},"nodeType":"YulExpressionStatement","src":"1429:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1479:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1490:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:19"},"nodeType":"YulFunctionCall","src":"1475:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1495:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1468:6:19"},"nodeType":"YulFunctionCall","src":"1468:53:19"},"nodeType":"YulExpressionStatement","src":"1468:53:19"},{"nodeType":"YulAssignment","src":"1530:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1542:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1553:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1538:3:19"},"nodeType":"YulFunctionCall","src":"1538:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1530:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1366:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1380:4:19","type":""}],"src":"1215:347:19"}]},"contents":"{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea2646970667358221220768354278908a9a8fa21a7093ee5414379b9ee80a33d9f06b906f6d52bff6b1c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x8354278908A9A8FA21A7093EE5414379B9EE80A33D9F06 0xB9 MOD 0xF6 0xD5 0x2B SELFDESTRUCT PUSH12 0x1C64736F6C63430008110033 ","sourceMap":"213:1777:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:265;;;:::i;:::-;;1332:81;1379:7;1401;1332:81;;;-1:-1:-1;;;;;1401:7:3;;;160:51:19;;1332:81:3;;;;;148:2:19;1332:81:3;;;826:98;;;;;;:::i;:::-;;:::i;1016:265::-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;715:2:19;1067:63:3;;;697:21:19;754:2;734:18;;;727:30;-1:-1:-1;;;773:18:19;;;766:52;835:18;;1067:63:3;;;;;;;;;1137:16;1156:7;;1179:10;-1:-1:-1;;;;;;1169:20:3;;;;;;;-1:-1:-1;1195:27:3;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;;1156:7;;1234:42;;;1061:220;1016:265::o;826:98::-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;:::-;826:98:::0;:::o;1730:111::-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;1066:2:19;1780:56:3;;;1048:21:19;1105:2;1085:18;;;1078:30;-1:-1:-1;;;1124:18:19;;;1117:52;1186:18;;1780:56:3;864:346:19;1780:56:3;1730:111::o;1497:188::-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1417:2:19;1551:52:3;;;1399:21:19;1456:2;1436:18;;;1429:30;1495:25;1475:18;;;1468:53;1538:18;;1551:52:3;1215:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;222:286:19:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:19;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:19:o"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ConfirmedOwner contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"}},\"notice\":\"A contract with helpers for basic contract ownership.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":\"ConfirmedOwnerWithProposal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ChainlinkRequestInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":\"ChainlinkRequestInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ENSInterface":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"label","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner(bytes32)":"02571be3","resolver(bytes32)":"0178b8bf","setOwner(bytes32,address)":"5b0fc9c3","setResolver(bytes32,address)":"1896f70a","setSubnodeOwner(bytes32,bytes32,address)":"06ab5923","setTTL(bytes32,uint64)":"14ab9038","ttl(bytes32)":"16a25cbd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":\"ENSInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"LinkTokenInterface":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"decimalPlaces","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"increaseApproval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"tokenName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"tokenSymbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"totalTokensIssued","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseApproval(address,uint256)":"66188463","increaseApproval(address,uint256)":"d73dd623","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferAndCall(address,uint256,bytes)":"4000aea0","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"decimalPlaces\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalTokensIssued\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":\"LinkTokenInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"OperatorInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"distributeFunds","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"fulfillOracleRequest2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAuthorizedSenders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getForwarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes32","name":"specId","type":"bytes32"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"operatorRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ownerTransferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"senders","type":"address[]"}],"name":"setAuthorizedSenders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","distributeFunds(address[],uint256[])":"6bd59ec0","fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)":"6ae0bc76","getAuthorizedSenders()":"2408afaa","getForwarder()":"a0042526","isAuthorizedSender(address)":"fa00763a","operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes)":"3c6d41b9","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946","ownerTransferAndCall(address,uint256,bytes)":"902fc370","setAuthorizedSenders(address[])":"ee56997b","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"distributeFunds\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"fulfillOracleRequest2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuthorizedSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"specId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"operatorRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ownerTransferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"senders\",\"type\":\"address[]\"}],\"name\":\"setAuthorizedSenders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":\"OperatorInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"OracleInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","isAuthorizedSender(address)":"fa00763a","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":\"OracleInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"OwnableInterface":{"abi":[{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":\"OwnableInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"PointerInterface":{"abi":[{"inputs":[],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getAddress()":"38cc4831"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":\"PointerInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"BufferChainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e86a3ae4595e07c02fc63bb9fa7644f0282d309680ceb2c0cfb8ba039b2776bb64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0xE8 PUSH11 0x3AE4595E07C02FC63BB9FA PUSH23 0x44F0282D309680CEB2C0CFB8BA039B2776BB64736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"441:9632:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;441:9632:11;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e86a3ae4595e07c02fc63bb9fa7644f0282d309680ceb2c0cfb8ba039b2776bb64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE8 PUSH11 0x3AE4595E07C02FC63BB9FA PUSH23 0x44F0282D309680CEB2C0CFB8BA039B2776BB64736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"441:9632:11:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"A library for working with mutable byte buffers in Solidity. Byte buffers are mutable and expandable, and provide a variety of primitives for writing to them. At any time you can fetch a bytes object containing the current contents of the buffer. The bytes object should not be stored between operations, as it may change due to resizing of the buffer.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":\"BufferChainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"CBORChainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7f6205a46b5929d7528a5cbcc4e9160178d1084fdd91e38d125311819bd729164736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0xD7 0xF6 KECCAK256 GAS CHAINID 0xB5 SWAP3 SWAP14 PUSH22 0x28A5CBCC4E9160178D1084FDD91E38D125311819BD72 SWAP2 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"115:3271:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;115:3271:12;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7f6205a46b5929d7528a5cbcc4e9160178d1084fdd91e38d125311819bd729164736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 0xF6 KECCAK256 GAS CHAINID 0xB5 SWAP3 SWAP14 PUSH22 0x28A5CBCC4E9160178D1084FDD91E38D125311819BD72 SWAP2 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"115:3271:12:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":\"CBORChainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ENSResolver":{"abi":[{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"addr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addr(bytes32)":"3b3b57de"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":\"ENSResolver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220554120e6795de1095fd54992294a43b7bbd9d054b9da4b5204aea17e03b6254e64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 SSTORE COINBASE KECCAK256 0xE6 PUSH26 0x5DE1095FD54992294A43B7BBD9D054B9DA4B5204AEA17E03B625 0x4E PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"220:2559:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;220:2559:14;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220554120e6795de1095fd54992294a43b7bbd9d054b9da4b5204aea17e03b6254e64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SSTORE COINBASE KECCAK256 0xE6 PUSH26 0x5DE1095FD54992294A43B7BBD9D054B9DA4B5204AEA17E03B625 0x4E PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"220:2559:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220feec7b17524d34f3c20d4922777dea9e0c157695b6e02a8bd0951b2ebf853fa864736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 INVALID 0xEC PUSH28 0x17524D34F3C20D4922777DEA9E0C157695B6E02A8BD0951B2EBF853F 0xA8 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"202:12582:15:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12582:15;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220feec7b17524d34f3c20d4922777dea9e0c157695b6e02a8bd0951b2ebf853fa864736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID 0xEC PUSH28 0x17524D34F3C20D4922777DEA9E0C157695B6E02A8BD0951B2EBF853F 0xA8 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"202:12582:15:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"SafeMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208e77a4680532ae9e9e61e1cd4ff6be2a8d9dddec98c69552d2944258cddde66d64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 DUP15 PUSH24 0xA4680532AE9E9E61E1CD4FF6BE2A8D9DDDEC98C69552D294 TIMESTAMP PC 0xCD 0xDD 0xE6 PUSH14 0x64736F6C63430008110033000000 ","sourceMap":"482:6210:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;482:6210:16;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208e77a4680532ae9e9e61e1cd4ff6be2a8d9dddec98c69552d2944258cddde66d64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP15 PUSH24 0xA4680532AE9E9E61E1CD4FF6BE2A8D9DDDEC98C69552D294 TIMESTAMP PC 0xCD 0xDD 0xE6 PUSH14 0x64736F6C63430008110033000000 ","sourceMap":"482:6210:16:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations. NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler now has built in overflow checking.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x58b21219689909c4f8339af00813760337f7e2e7f169a97fe49e2896dcfb3b9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8e012e946dec20e59f2d4446f4b44bb098f3fa8bac103b1b5112fff777447b\",\"dweb:/ipfs/QmVTooKWcLkJ9W68yNX4MgdrbAKiAXwuRN9A7f4NkdcdtQ\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c5d6c734e147510a4cba68515ad7f9014cd66d2f51dc998c071d660dc98eca8564736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0xC5 0xD6 0xC7 CALLVALUE 0xE1 SELFBALANCE MLOAD EXP 0x4C 0xBA PUSH9 0x515AD7F9014CD66D2F MLOAD 0xDC SWAP10 DUP13 SMOD SAR PUSH7 0xDC98ECA856473 PUSH16 0x6C634300081100330000000000000000 ","sourceMap":"215:1047:17:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;215:1047:17;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c5d6c734e147510a4cba68515ad7f9014cd66d2f51dc998c071d660dc98eca8564736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0xD6 0xC7 CALLVALUE 0xE1 SELFBALANCE MLOAD EXP 0x4C 0xBA PUSH9 0x515AD7F9014CD66D2F MLOAD 0xDC SWAP10 DUP13 SMOD SAR PUSH7 0xDC98ECA856473 PUSH16 0x6C634300081100330000000000000000 ","sourceMap":"215:1047:17:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}"}},"contracts/AdmodConsumer.sol":{"AdmodConsumer":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"RequestBoughtAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"earning","type":"uint256"}],"name":"RequestEarning","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"earningReports","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_requestId","type":"bytes32"},{"internalType":"uint256","name":"_earning","type":"uint256"}],"name":"fulfill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_requestId","type":"bytes32"},{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"fulfillTransakPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ggJobId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isEligible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"requestWeekEarning","outputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transakJobId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawLink","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3978":{"entryPoint":null,"id":3978,"parameterSlots":2,"returnSlots":0},"@_880":{"entryPoint":null,"id":880,"parameterSlots":1,"returnSlots":0},"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":412,"id":1021,"parameterSlots":1,"returnSlots":0},"@setChainlinkOracle_656":{"entryPoint":null,"id":656,"parameterSlots":1,"returnSlots":0},"@setChainlinkToken_669":{"entryPoint":584,"id":669,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":618,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":647,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":747,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":703,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1688:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:19","statements":[{"nodeType":"YulAssignment","src":"84:22:19","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:19"},"nodeType":"YulFunctionCall","src":"93:13:19"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:19"}]},{"body":{"nodeType":"YulBlock","src":"169:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:19"},"nodeType":"YulFunctionCall","src":"171:12:19"},"nodeType":"YulExpressionStatement","src":"171:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:19"},"nodeType":"YulFunctionCall","src":"150:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:19"},"nodeType":"YulFunctionCall","src":"146:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:19"},"nodeType":"YulFunctionCall","src":"135:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:19"},"nodeType":"YulFunctionCall","src":"125:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:19"},"nodeType":"YulFunctionCall","src":"118:50:19"},"nodeType":"YulIf","src":"115:70:19"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:19","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:19","type":""}],"src":"14:177:19"},{"body":{"nodeType":"YulBlock","src":"294:195:19","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:19"},"nodeType":"YulFunctionCall","src":"342:12:19"},"nodeType":"YulExpressionStatement","src":"342:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:19"},"nodeType":"YulFunctionCall","src":"311:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:19","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:19"},"nodeType":"YulFunctionCall","src":"307:32:19"},"nodeType":"YulIf","src":"304:52:19"},{"nodeType":"YulAssignment","src":"365:50:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:19"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:19"},"nodeType":"YulFunctionCall","src":"375:40:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:19"}]},{"nodeType":"YulAssignment","src":"424:59:19","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:19"},"nodeType":"YulFunctionCall","src":"464:18:19"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:19"},"nodeType":"YulFunctionCall","src":"434:49:19"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:19"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:19","type":""}],"src":"196:293:19"},{"body":{"nodeType":"YulBlock","src":"668:174:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:19"},"nodeType":"YulFunctionCall","src":"678:21:19"},"nodeType":"YulExpressionStatement","src":"678:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:19"},"nodeType":"YulFunctionCall","src":"715:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:19","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:19"},"nodeType":"YulFunctionCall","src":"708:30:19"},"nodeType":"YulExpressionStatement","src":"708:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:19"},"nodeType":"YulFunctionCall","src":"754:18:19"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"774:26:19","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:19"},"nodeType":"YulFunctionCall","src":"747:54:19"},"nodeType":"YulExpressionStatement","src":"747:54:19"},{"nodeType":"YulAssignment","src":"810:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"822:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"833:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"818:3:19"},"nodeType":"YulFunctionCall","src":"818:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"810:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:19","type":""}],"src":"494:348:19"},{"body":{"nodeType":"YulBlock","src":"899:213:19","statements":[{"nodeType":"YulAssignment","src":"909:20:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"924:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"927:1:19"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"920:3:19"},"nodeType":"YulFunctionCall","src":"920:9:19"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"909:7:19"}]},{"body":{"nodeType":"YulBlock","src":"995:111:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1016:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1023:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1028:10:19","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1019:3:19"},"nodeType":"YulFunctionCall","src":"1019:20:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1009:6:19"},"nodeType":"YulFunctionCall","src":"1009:31:19"},"nodeType":"YulExpressionStatement","src":"1009:31:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1060:1:19","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1063:4:19","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1053:6:19"},"nodeType":"YulFunctionCall","src":"1053:15:19"},"nodeType":"YulExpressionStatement","src":"1053:15:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1088:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1091:4:19","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1081:6:19"},"nodeType":"YulFunctionCall","src":"1081:15:19"},"nodeType":"YulExpressionStatement","src":"1081:15:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"958:1:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"951:6:19"},"nodeType":"YulFunctionCall","src":"951:9:19"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"965:1:19"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"972:7:19"},{"name":"x","nodeType":"YulIdentifier","src":"981:1:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"968:3:19"},"nodeType":"YulFunctionCall","src":"968:15:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"962:2:19"},"nodeType":"YulFunctionCall","src":"962:22:19"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"948:2:19"},"nodeType":"YulFunctionCall","src":"948:37:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"941:6:19"},"nodeType":"YulFunctionCall","src":"941:45:19"},"nodeType":"YulIf","src":"938:168:19"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"878:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"881:1:19","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"887:7:19","type":""}],"src":"847:265:19"},{"body":{"nodeType":"YulBlock","src":"1163:171:19","statements":[{"body":{"nodeType":"YulBlock","src":"1194:111:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1215:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1222:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1227:10:19","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1218:3:19"},"nodeType":"YulFunctionCall","src":"1218:20:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1208:6:19"},"nodeType":"YulFunctionCall","src":"1208:31:19"},"nodeType":"YulExpressionStatement","src":"1208:31:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1259:1:19","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1262:4:19","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1252:6:19"},"nodeType":"YulFunctionCall","src":"1252:15:19"},"nodeType":"YulExpressionStatement","src":"1252:15:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1287:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1290:4:19","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1280:6:19"},"nodeType":"YulFunctionCall","src":"1280:15:19"},"nodeType":"YulExpressionStatement","src":"1280:15:19"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1183:1:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1176:6:19"},"nodeType":"YulFunctionCall","src":"1176:9:19"},"nodeType":"YulIf","src":"1173:132:19"},{"nodeType":"YulAssignment","src":"1314:14:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1323:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"1326:1:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1319:3:19"},"nodeType":"YulFunctionCall","src":"1319:9:19"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1314:1:19"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1148:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"1151:1:19","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"1157:1:19","type":""}],"src":"1117:217:19"},{"body":{"nodeType":"YulBlock","src":"1513:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1530:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1541:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1523:6:19"},"nodeType":"YulFunctionCall","src":"1523:21:19"},"nodeType":"YulExpressionStatement","src":"1523:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1564:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1575:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1560:3:19"},"nodeType":"YulFunctionCall","src":"1560:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1580:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1553:6:19"},"nodeType":"YulFunctionCall","src":"1553:30:19"},"nodeType":"YulExpressionStatement","src":"1553:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1603:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1614:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1599:3:19"},"nodeType":"YulFunctionCall","src":"1599:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1619:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1592:6:19"},"nodeType":"YulFunctionCall","src":"1592:53:19"},"nodeType":"YulExpressionStatement","src":"1592:53:19"},{"nodeType":"YulAssignment","src":"1654:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1666:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1677:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1662:3:19"},"nodeType":"YulFunctionCall","src":"1662:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1654:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1490:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1504:4:19","type":""}],"src":"1339:347:19"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x))))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405260016004553480156200001657600080fd5b506040516200198938038062001989833981016040819052620000399162000287565b818060006001600160a01b038216620000995760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0384811691909117909155811615620000cc57620000cc816200019c565b505050620000f473326c977e6efc84e512bb9c30f76e30c160ed06fb6200024860201b60201c565b600380546001600160a01b03191673aa37473c8d78f0f1c86c9d8aee53e8b896bcb4d51790557f6231643432636435346133613432303062316637323561363865343838383838600a818155600b919091556200015b670de0b6b3a76400006001620002bf565b620001679190620002eb565b600c55600e80546001600160a81b0319166101006001600160a01b03939093169290920260ff1916919091179055506200030e565b336001600160a01b03821603620001f65760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000090565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b03811681146200028257600080fd5b919050565b600080604083850312156200029b57600080fd5b620002a6836200026a565b9150620002b6602084016200026a565b90509250929050565b8082028115828204841417620002e557634e487b7160e01b600052601160045260246000fd5b92915050565b6000826200030957634e487b7160e01b600052601260045260246000fd5b500490565b61166b806200031e6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c5780639e2f9084116100665780639e2f9084146101b2578063a035b1fe146101d2578063df78abe6146101db578063f2fde38b146101e457600080fd5b80638da5cb5b146101865780638dc654a21461019757806393232d9f1461019f57600080fd5b80634357855e116100c85780634357855e1461014457806343e1ca491461015957806350ed6a951461017657806379ba50971461017e57600080fd5b8063350844ce146100ef57806338af3eed1461010b578063403a77611461013b575b600080fd5b6100f8600b5481565b6040519081526020015b60405180910390f35b600e546101239061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610102565b6100f8600a5481565b61015761015236600461112d565b6101f7565b005b600e546101669060ff1681565b6040519015158152602001610102565b6100f86102d3565b61015761037f565b6006546001600160a01b0316610123565b61015761042d565b6101576101ad36600461112d565b61057c565b6100f86101c036600461114f565b600d6020526000908152604090205481565b6100f860095481565b6100f860085481565b6101576101f2366004611168565b610643565b60008281526005602052604090205482906001600160a01b031633146102385760405162461bcd60e51b815260040161022f90611198565b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0836040516102ad91815260200190565b60405180910390a26102c282620186a0610654565b6008556102cd610669565b50505050565b6000806102ea600a5430634357855e60e01b61073f565b905061032c6040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c81526020016115bb604c9139839190610764565b61036d604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001611607602f9139839190610764565b61037981600c54610782565b91505090565b6007546001600160a01b031633146103d25760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161022f565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b61043561079c565b60006104496002546001600160a01b031690565b600e546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb9261010090049091169083906370a0823190602401602060405180830381865afa1580156104a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c991906111e0565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610514573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053891906111f9565b6105795760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161022f565b50565b60008281526005602052604090205482906001600160a01b031633146105b45760405162461bcd60e51b815260040161022f90611198565b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f2e48c207bbe18ca424eae69ca096badb69cc821f8cb72b42f49599f3390a3b1c8360405161062991815260200190565b60405180910390a2600982905561063e6107f1565b505050565b61064b61079c565b610579816108b5565b60006106608284611247565b90505b92915050565b600080610680600b54306393232d9f60e01b61073f565b9050600061068f60085461095f565b60405160200161069f919061127f565b60408051601f19818403018152828201909152600382526219d95d60ea1b602083015291506106d090839083610764565b61072c604051806040016040528060048152602001630e0c2e8d60e31b815250604051806040016040528060138152602001721c995cdc1bdb9cd94b199a585d105b5bdd5b9d606a1b815250846107649092919063ffffffff16565b61073882600c54610782565b9250505090565b6107476110f2565b61074f6110f2565b61075b818686866109f2565b95945050505050565b60808301516107739083610a38565b608083015161063e9082610a38565b600354600090610660906001600160a01b03168484610a4f565b6006546001600160a01b031633146107ef5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161022f565b565b60006108056002546001600160a01b031690565b600854600e546040516370a0823160e01b81526101009091046001600160a01b03908116600483015292935090918316906370a0823190602401602060405180830381865afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088091906111e0565b036108a857600854436000908152600d6020526040902055600e805460ff1916600117905550565b600e805460ff1916905550565b336001600160a01b0382160361090d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161022f565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b6060600061096c83610ae2565b600101905060008167ffffffffffffffff81111561098c5761098c6113a8565b6040519080825280601f01601f1916602001820160405280156109b6576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109c057509392505050565b6109fa6110f2565b610a0a8560800151610100610bba565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b610a458260038351610c1f565b61063e8282610d2e565b600454600090610a608160016113be565b600455835160408086015160808701515191516000936320214ca360e11b93610a989386938493923092918a916001916024016113fd565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610ad886838684610d55565b9695505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610b215772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610b4d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610b6b57662386f26fc10000830492506010015b6305f5e1008310610b83576305f5e100830492506008015b6127108310610b9757612710830492506004015b60648310610ba9576064830492506002015b600a83106106635760010192915050565b604080518082019091526060815260006020820152610bda602083611465565b15610c0257610bea602083611465565b610bf5906020611479565b610bff90836113be565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff1611610c44576102cd8360e0600585901b168317610eb3565b60ff8167ffffffffffffffff1611610c8257610c6b836018611fe0600586901b1617610eb3565b506102cd8367ffffffffffffffff83166001610ed8565b61ffff8167ffffffffffffffff1611610cc157610caa836019611fe0600586901b1617610eb3565b506102cd8367ffffffffffffffff83166002610ed8565b63ffffffff8167ffffffffffffffff1611610d0257610ceb83601a611fe0600586901b1617610eb3565b506102cd8367ffffffffffffffff83166004610ed8565b610d1783601b611fe0600586901b1617610eb3565b506102cd8367ffffffffffffffff83166008610ed8565b60408051808201909152606081526000602082015261066083846000015151848551610efe565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea090610e189088908790879060040161148c565b6020604051808303816000875af1158015610e37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5b91906111f9565b610a305760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161022f565b6040805180820190915260608152600060208201526106608384600001515184610fe8565b604080518082019091526060815260006020820152610a30848560000151518585611043565b6040805180820190915260608152600060208201528251821115610f2157600080fd5b6020850151610f3083866113be565b1115610f6357610f6385610f5387602001518786610f4e91906113be565b6110c4565b610f5e9060026114b3565b6110db565b600080865180518760208301019350808887011115610f825787860182525b505050602084015b60208410610fc25780518252610fa16020836113be565b9150610fae6020826113be565b9050610fbb602085611479565b9350610f8a565b51815160001960208690036101000a019081169019919091161790525083949350505050565b6040805180820190915260608152600060208201528360200151831061101d5761101d8485602001516002610f5e91906114b3565b8351805160208583010184815350808503611039576001810182525b5093949350505050565b604080518082019091526060815260006020820152602085015161106785846113be565b111561107b5761107b85610f5386856113be565b6000600161108b846101006115ae565b6110959190611479565b90508551838682010185831982511617815250805184870111156110b95783860181525b509495945050505050565b6000818311156110d5575081610663565b50919050565b81516110e78383610bba565b506102cd8382610d2e565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000806040838503121561114057600080fd5b50508035926020909101359150565b60006020828403121561116157600080fd5b5035919050565b60006020828403121561117a57600080fd5b81356001600160a01b038116811461119157600080fd5b9392505050565b60208082526028908201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604082015267081c995c5d595cdd60c21b606082015260800190565b6000602082840312156111f257600080fd5b5051919050565b60006020828403121561120b57600080fd5b8151801515811461119157600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826112565761125661121b565b500490565b60005b8381101561127657818101518382015260200161125e565b50506000910152565b7f68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f81527f76322f63757272656e636965732f70726963653f706172746e65724170694b6560208201527f793d30363235323566302d383536622d343330322d396434382d38623639306260408201527f623565363334266669617443757272656e63793d5553442663727970746f437560608201527f7272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f60808201527f726b3d657468657265756d267061796d656e744d6574686f643d63726564697460a08201527f5f64656269745f636172642666696174416d6f756e743d00000000000000000060c08201526000825161139b8160d785016020870161125b565b9190910160d70192915050565b634e487b7160e01b600052604160045260246000fd5b8082018082111561066357610663611231565b600081518084526113e981602086016020860161125b565b601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e08201819052600090611456838201856113d1565b9b9a5050505050505050505050565b6000826114745761147461121b565b500690565b8181038181111561066357610663611231565b60018060a01b038416815282602082015260606040820152600061075b60608301846113d1565b808202811582820484141761066357610663611231565b600181815b808511156115055781600019048211156114eb576114eb611231565b808516156114f857918102915b93841c93908002906114cf565b509250929050565b60008261151c57506001610663565b8161152957506000610663565b816001811461153f576002811461154957611565565b6001915050610663565b60ff84111561155a5761155a611231565b50506001821b610663565b5060208310610133831016604e8410600b8410161715611588575081810a610663565b61159283836114ca565b80600019048211156115a6576115a6611231565b029392505050565b6000610660838361150d56fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a2646970667358221220f1c72b5d122780ba8333648dfe0d627969bfb8bc91f367921a0575488bfda9cc64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1989 CODESIZE SUB DUP1 PUSH3 0x1989 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x39 SWAP2 PUSH3 0x287 JUMP JUMPDEST DUP2 DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH3 0xCC JUMPI PUSH3 0xCC DUP2 PUSH3 0x19C JUMP JUMPDEST POP POP POP PUSH3 0xF4 PUSH20 0x326C977E6EFC84E512BB9C30F76E30C160ED06FB PUSH3 0x248 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH20 0xAA37473C8D78F0F1C86C9D8AEE53E8B896BCB4D5 OR SWAP1 SSTORE PUSH32 0x6231643432636435346133613432303062316637323561363865343838383838 PUSH1 0xA DUP2 DUP2 SSTORE PUSH1 0xB SWAP2 SWAP1 SWAP2 SSTORE PUSH3 0x15B PUSH8 0xDE0B6B3A7640000 PUSH1 0x1 PUSH3 0x2BF JUMP JUMPDEST PUSH3 0x167 SWAP2 SWAP1 PUSH3 0x2EB JUMP JUMPDEST PUSH1 0xC SSTORE PUSH1 0xE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 MUL PUSH1 0xFF NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x30E JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH3 0x1F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x90 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x29B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2A6 DUP4 PUSH3 0x26A JUMP JUMPDEST SWAP2 POP PUSH3 0x2B6 PUSH1 0x20 DUP5 ADD PUSH3 0x26A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH3 0x2E5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x309 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH2 0x166B DUP1 PUSH3 0x31E 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 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x9E2F9084 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x9E2F9084 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0xA035B1FE EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0xDF78ABE6 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x93232D9F EQ PUSH2 0x19F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4357855E GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x4357855E EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x43E1CA49 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x50ED6A95 EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x350844CE EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x38AF3EED EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x403A7761 EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0xE SLOAD PUSH2 0x123 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x112D JUMP JUMPDEST PUSH2 0x1F7 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x166 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x37F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x123 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x42D JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1AD CALLDATASIZE PUSH1 0x4 PUSH2 0x112D JUMP JUMPDEST PUSH2 0x57C JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x1C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x114F JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1168 JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x1198 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x9721E7802F825C56833DB455A0081C7DD8C7DA03ED285E582C2AF90DD7D442C0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2AD SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x2C2 DUP3 PUSH3 0x186A0 PUSH2 0x654 JUMP JUMPDEST PUSH1 0x8 SSTORE PUSH2 0x2CD PUSH2 0x669 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2EA PUSH1 0xA SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x73F JUMP JUMPDEST SWAP1 POP PUSH2 0x32C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x19D95D PUSH1 0xEA SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15BB PUSH1 0x4C SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x764 JUMP JUMPDEST PUSH2 0x36D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1607 PUSH1 0x2F SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x764 JUMP JUMPDEST PUSH2 0x379 DUP2 PUSH1 0xC SLOAD PUSH2 0x782 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP3 AND CALLER SWAP1 DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x435 PUSH2 0x79C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x449 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 PUSH2 0x100 SWAP1 DIV SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A5 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 0x4C9 SWAP2 SWAP1 PUSH2 0x11E0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x514 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 0x538 SWAP2 SWAP1 PUSH2 0x11F9 JUMP JUMPDEST PUSH2 0x579 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x2AB730B13632903A37903A3930B739B332B9 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x1198 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x2E48C207BBE18CA424EAE69CA096BADB69CC821F8CB72B42F49599F3390A3B1C DUP4 PUSH1 0x40 MLOAD PUSH2 0x629 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x9 DUP3 SWAP1 SSTORE PUSH2 0x63E PUSH2 0x7F1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x64B PUSH2 0x79C JUMP JUMPDEST PUSH2 0x579 DUP2 PUSH2 0x8B5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x660 DUP3 DUP5 PUSH2 0x1247 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x680 PUSH1 0xB SLOAD ADDRESS PUSH4 0x93232D9F PUSH1 0xE0 SHL PUSH2 0x73F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x68F PUSH1 0x8 SLOAD PUSH2 0x95F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x69F SWAP2 SWAP1 PUSH2 0x127F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH3 0x19D95D PUSH1 0xEA SHL PUSH1 0x20 DUP4 ADD MSTORE SWAP2 POP PUSH2 0x6D0 SWAP1 DUP4 SWAP1 DUP4 PUSH2 0x764 JUMP JUMPDEST PUSH2 0x72C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x13 DUP2 MSTORE PUSH1 0x20 ADD PUSH19 0x1C995CDC1BDB9CD94B199A585D105B5BDD5B9D PUSH1 0x6A SHL DUP2 MSTORE POP DUP5 PUSH2 0x764 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x738 DUP3 PUSH1 0xC SLOAD PUSH2 0x782 JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x747 PUSH2 0x10F2 JUMP JUMPDEST PUSH2 0x74F PUSH2 0x10F2 JUMP JUMPDEST PUSH2 0x75B DUP2 DUP7 DUP7 DUP7 PUSH2 0x9F2 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x773 SWAP1 DUP4 PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x63E SWAP1 DUP3 PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x660 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0xA4F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x805 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP1 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x85C 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 0x880 SWAP2 SWAP1 PUSH2 0x11E0 JUMP JUMPDEST SUB PUSH2 0x8A8 JUMPI PUSH1 0x8 SLOAD NUMBER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x90D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x96C DUP4 PUSH2 0xAE2 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x98C JUMPI PUSH2 0x98C PUSH2 0x13A8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x9B6 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x9C0 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x9FA PUSH2 0x10F2 JUMP JUMPDEST PUSH2 0xA0A DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0xBBA JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xA45 DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0xC1F JUMP JUMPDEST PUSH2 0x63E DUP3 DUP3 PUSH2 0xD2E JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xA60 DUP2 PUSH1 0x1 PUSH2 0x13BE JUMP JUMPDEST PUSH1 0x4 SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0xA98 SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x13FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0xAD8 DUP7 DUP4 DUP7 DUP5 PUSH2 0xD55 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xB21 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xB4D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xB6B JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xB83 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xB97 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xBA9 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x663 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xBDA PUSH1 0x20 DUP4 PUSH2 0x1465 JUMP JUMPDEST ISZERO PUSH2 0xC02 JUMPI PUSH2 0xBEA PUSH1 0x20 DUP4 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0xBF5 SWAP1 PUSH1 0x20 PUSH2 0x1479 JUMP JUMPDEST PUSH2 0xBFF SWAP1 DUP4 PUSH2 0x13BE JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xC44 JUMPI PUSH2 0x2CD DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xC82 JUMPI PUSH2 0xC6B DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xEB3 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0xED8 JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xCC1 JUMPI PUSH2 0xCAA DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xEB3 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0xED8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xD02 JUMPI PUSH2 0xCEB DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xEB3 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0xED8 JUMP JUMPDEST PUSH2 0xD17 DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xEB3 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0xED8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x660 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xEFE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0xE18 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x148C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE37 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 0xE5B SWAP2 SWAP1 PUSH2 0x11F9 JUMP JUMPDEST PUSH2 0xA30 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x660 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xA30 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0xF21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0xF30 DUP4 DUP7 PUSH2 0x13BE JUMP JUMPDEST GT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF63 DUP6 PUSH2 0xF53 DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0xF4E SWAP2 SWAP1 PUSH2 0x13BE JUMP JUMPDEST PUSH2 0x10C4 JUMP JUMPDEST PUSH2 0xF5E SWAP1 PUSH1 0x2 PUSH2 0x14B3 JUMP JUMPDEST PUSH2 0x10DB JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0xF82 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0xFC2 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0xFA1 PUSH1 0x20 DUP4 PUSH2 0x13BE JUMP JUMPDEST SWAP2 POP PUSH2 0xFAE PUSH1 0x20 DUP3 PUSH2 0x13BE JUMP JUMPDEST SWAP1 POP PUSH2 0xFBB PUSH1 0x20 DUP6 PUSH2 0x1479 JUMP JUMPDEST SWAP4 POP PUSH2 0xF8A JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x101D JUMPI PUSH2 0x101D DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0xF5E SWAP2 SWAP1 PUSH2 0x14B3 JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 SUB PUSH2 0x1039 JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x1067 DUP6 DUP5 PUSH2 0x13BE JUMP JUMPDEST GT ISZERO PUSH2 0x107B JUMPI PUSH2 0x107B DUP6 PUSH2 0xF53 DUP7 DUP6 PUSH2 0x13BE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x108B DUP5 PUSH2 0x100 PUSH2 0x15AE JUMP JUMPDEST PUSH2 0x1095 SWAP2 SWAP1 PUSH2 0x1479 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0x10B9 JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x10D5 JUMPI POP DUP2 PUSH2 0x663 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x10E7 DUP4 DUP4 PUSH2 0xBBA JUMP JUMPDEST POP PUSH2 0x2CD DUP4 DUP3 PUSH2 0xD2E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1161 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x117A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x40 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x120B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1256 JUMPI PUSH2 0x1256 PUSH2 0x121B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1276 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x125E JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x68747470733A2F2F6170692D7374672E7472616E73616B2E636F6D2F6170692F DUP2 MSTORE PUSH32 0x76322F63757272656E636965732F70726963653F706172746E65724170694B65 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x793D30363235323566302D383536622D343330322D396434382D386236393062 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x623565363334266669617443757272656E63793D5553442663727970746F4375 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x7272656E63793D4554482669734275794F7253656C6C3D425559266E6574776F PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x726B3D657468657265756D267061796D656E744D6574686F643D637265646974 PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x5F64656269745F636172642666696174416D6F756E743D000000000000000000 PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x139B DUP2 PUSH1 0xD7 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x125B JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0xD7 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x1231 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x13E9 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x125B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1456 DUP4 DUP3 ADD DUP6 PUSH2 0x13D1 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1474 JUMPI PUSH2 0x1474 PUSH2 0x121B JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x1231 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x75B PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x13D1 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x1231 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0x1505 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x14EB JUMPI PUSH2 0x14EB PUSH2 0x1231 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0x14F8 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0x14CF JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x151C JUMPI POP PUSH1 0x1 PUSH2 0x663 JUMP JUMPDEST DUP2 PUSH2 0x1529 JUMPI POP PUSH1 0x0 PUSH2 0x663 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x153F JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1549 JUMPI PUSH2 0x1565 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x663 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x155A JUMPI PUSH2 0x155A PUSH2 0x1231 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x663 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1588 JUMPI POP DUP2 DUP2 EXP PUSH2 0x663 JUMP JUMPDEST PUSH2 0x1592 DUP4 DUP4 PUSH2 0x14CA JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x15A6 JUMPI PUSH2 0x15A6 PUSH2 0x1231 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x660 DUP4 DUP4 PUSH2 0x150D JUMP INVALID PUSH9 0x747470733A2F2F7465 PUSH20 0x746170692E696F2F6170692F48617964656E2F76 BALANCE 0x2F PUSH2 0x6363 PUSH16 0x756E74732F7075622D39393838373736 CALLDATASIZE CALLDATALOAD CALLDATALOAD CALLVALUE CALLVALUE CALLER CALLER ORIGIN ORIGIN 0x2F PUSH15 0x6574776F726B5265706F7274726F77 0x2C PUSH14 0x657472696356616C7565732C4553 SLOAD 0x49 0x4D COINBASE SLOAD GASLIMIT DIFFICULTY 0x5F GASLIMIT COINBASE MSTORE 0x4E 0x49 0x4E SELFBALANCE MSTORE8 0x2C PUSH14 0x6963726F7356616C7565A2646970 PUSH7 0x7358221220F1C7 0x2B 0x5D SLT 0x27 DUP1 0xBA DUP4 CALLER PUSH5 0x8DFE0D6279 PUSH10 0xBFB8BC91F367921A0575 BASEFEE DUP12 REVERT 0xA9 0xCC PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"288:4849:18:-:0;;;1291:1:1;1258:34;;1498:488:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1563:6;;345:1:2;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;696:2:19;544:59:3;;;678:21:19;735:2;715:18;;;708:30;774:26;754:18;;;747:54;818:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;270:81:2;1581:61:18::1;1599:42;1581:17;;;:61;;:::i;:::-;8457:8:1::0;:43;;-1:-1:-1;;;;;;8457:43:1;1671:42:18::1;8457:43:1::0;;;1724:44:18::1;:7;:44:::0;;;1778:12:::1;:49:::0;;;;1844:21:::1;675:6:1;1844:1:18;:21;:::i;:::-;1843:28;;;;:::i;:::-;1837:3;:34:::0;1925:11:::1;:26:::0;;-1:-1:-1;;;;;;1961:18:18;1925:26:::1;-1:-1:-1::0;;;;;1925:26:18;;;::::1;::::0;;;::::1;-1:-1:-1::0;;1961:18:18;;;;;;;-1:-1:-1;288:4849:18;;1497:188:3;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1541:2:19;1551:52:3;;;1523:21:19;1580:2;1560:18;;;1553:30;1619:25;1599:18;;;1592:53;1662:18;;1551:52:3;1339:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;1668:7;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;;1641:39:3;1497:188;:::o;8625:108:1:-;8688:6;:40;;-1:-1:-1;;;;;;8688:40:1;-1:-1:-1;;;;;8688:40:1;;;;;;;;;;8625:108::o;14:177:19:-;93:13;;-1:-1:-1;;;;;135:31:19;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;847:265::-;920:9;;;951;;968:15;;;962:22;;948:37;938:168;;1028:10;1023:3;1019:20;1016:1;1009:31;1063:4;1060:1;1053:15;1091:4;1088:1;1081:15;938:168;847:265;;;;:::o;1117:217::-;1157:1;1183;1173:132;;1227:10;1222:3;1218:20;1215:1;1208:31;1262:4;1259:1;1252:15;1290:4;1287:1;1280:15;1173:132;-1:-1:-1;1319:9:19;;1117:217::o;1339:347::-;288:4849:18;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkEligibleEarning_4191":{"entryPoint":2033,"id":4191,"parameterSlots":0,"returnSlots":0},"@_rawRequest_594":{"entryPoint":3413,"id":594,"parameterSlots":4,"returnSlots":1},"@_requestTransakValidation_4103":{"entryPoint":1641,"id":4103,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1021":{"entryPoint":2229,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":1948,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":895,"id":987,"parameterSlots":0,"returnSlots":0},"@add_125":{"entryPoint":1892,"id":125,"parameterSlots":3,"returnSlots":0},"@appendInt_1915":{"entryPoint":3800,"id":1915,"parameterSlots":3,"returnSlots":1},"@appendUint8_1712":{"entryPoint":3763,"id":1712,"parameterSlots":2,"returnSlots":1},"@append_1659":{"entryPoint":3374,"id":1659,"parameterSlots":2,"returnSlots":1},"@beneficiary_3921":{"entryPoint":null,"id":3921,"parameterSlots":0,"returnSlots":0},"@buildChainlinkRequest_373":{"entryPoint":1855,"id":373,"parameterSlots":3,"returnSlots":1},"@chainlinkTokenAddress_694":{"entryPoint":null,"id":694,"parameterSlots":0,"returnSlots":1},"@div_3689":{"entryPoint":1620,"id":3689,"parameterSlots":2,"returnSlots":1},"@earningReports_3916":{"entryPoint":null,"id":3916,"parameterSlots":0,"returnSlots":0},"@earning_3904":{"entryPoint":null,"id":3904,"parameterSlots":0,"returnSlots":0},"@encodeFixedNumeric_2084":{"entryPoint":3103,"id":2084,"parameterSlots":3,"returnSlots":0},"@encodeString_2326":{"entryPoint":2616,"id":2326,"parameterSlots":2,"returnSlots":0},"@fulfillTransakPrice_4126":{"entryPoint":1404,"id":4126,"parameterSlots":2,"returnSlots":0},"@fulfill_4048":{"entryPoint":503,"id":4048,"parameterSlots":2,"returnSlots":0},"@ggJobId_3908":{"entryPoint":null,"id":3908,"parameterSlots":0,"returnSlots":0},"@init_1440":{"entryPoint":3002,"id":1440,"parameterSlots":2,"returnSlots":1},"@initialize_70":{"entryPoint":2546,"id":70,"parameterSlots":4,"returnSlots":1},"@isEligible_3918":{"entryPoint":null,"id":3918,"parameterSlots":0,"returnSlots":0},"@log10_3305":{"entryPoint":2786,"id":3305,"parameterSlots":1,"returnSlots":1},"@max_1512":{"entryPoint":4292,"id":1512,"parameterSlots":2,"returnSlots":1},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@price_3906":{"entryPoint":null,"id":3906,"parameterSlots":0,"returnSlots":0},"@requestWeekEarning_4020":{"entryPoint":723,"id":4020,"parameterSlots":0,"returnSlots":1},"@resize_1493":{"entryPoint":4315,"id":1493,"parameterSlots":2,"returnSlots":0},"@sendChainlinkRequestTo_477":{"entryPoint":2639,"id":477,"parameterSlots":3,"returnSlots":1},"@sendChainlinkRequest_422":{"entryPoint":1922,"id":422,"parameterSlots":2,"returnSlots":1},"@toString_2432":{"entryPoint":2399,"id":2432,"parameterSlots":1,"returnSlots":1},"@transakJobId_3910":{"entryPoint":null,"id":3910,"parameterSlots":0,"returnSlots":0},"@transferOwnership_951":{"entryPoint":1603,"id":951,"parameterSlots":1,"returnSlots":0},"@withdrawLink_4156":{"entryPoint":1069,"id":4156,"parameterSlots":0,"returnSlots":0},"@writeInt_1891":{"entryPoint":4163,"id":1891,"parameterSlots":4,"returnSlots":1},"@writeUint8_1691":{"entryPoint":4072,"id":1691,"parameterSlots":3,"returnSlots":1},"@write_1612":{"entryPoint":3838,"id":1612,"parameterSlots":4,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4456,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4601,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":4397,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":4431,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":4576,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":5073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4735,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5117,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5260,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4504,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":5054,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":4679,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":5322,"id":null,"parameterSlots":2,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":5550,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":5389,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":5299,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":5241,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4699,"id":null,"parameterSlots":3,"returnSlots":0},"mod_t_uint256":{"entryPoint":5221,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":4657,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":4635,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5032,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:9837:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:76:19","statements":[{"nodeType":"YulAssignment","src":"125:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:19"},"nodeType":"YulFunctionCall","src":"133:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:19"},{"name":"value0","nodeType":"YulIdentifier","src":"178:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:19"},"nodeType":"YulFunctionCall","src":"160:25:19"},"nodeType":"YulExpressionStatement","src":"160:25:19"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:19","type":""}],"src":"14:177:19"},{"body":{"nodeType":"YulBlock","src":"297:102:19","statements":[{"nodeType":"YulAssignment","src":"307:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"319:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"330:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"315:3:19"},"nodeType":"YulFunctionCall","src":"315:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"307:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"364:6:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"380:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"385:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"376:3:19"},"nodeType":"YulFunctionCall","src":"376:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"389:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"372:3:19"},"nodeType":"YulFunctionCall","src":"372:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"360:3:19"},"nodeType":"YulFunctionCall","src":"360:32:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"342:6:19"},"nodeType":"YulFunctionCall","src":"342:51:19"},"nodeType":"YulExpressionStatement","src":"342:51:19"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"266:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"277:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"288:4:19","type":""}],"src":"196:203:19"},{"body":{"nodeType":"YulBlock","src":"491:161:19","statements":[{"body":{"nodeType":"YulBlock","src":"537:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"549:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"539:6:19"},"nodeType":"YulFunctionCall","src":"539:12:19"},"nodeType":"YulExpressionStatement","src":"539:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"512:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"521:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"508:3:19"},"nodeType":"YulFunctionCall","src":"508:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"533:2:19","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"504:3:19"},"nodeType":"YulFunctionCall","src":"504:32:19"},"nodeType":"YulIf","src":"501:52:19"},{"nodeType":"YulAssignment","src":"562:33:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"585:9:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"572:12:19"},"nodeType":"YulFunctionCall","src":"572:23:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"562:6:19"}]},{"nodeType":"YulAssignment","src":"604:42:19","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"631:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"642:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"627:3:19"},"nodeType":"YulFunctionCall","src":"627:18:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"614:12:19"},"nodeType":"YulFunctionCall","src":"614:32:19"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"604:6:19"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"449:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"460:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"472:6:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"480:6:19","type":""}],"src":"404:248:19"},{"body":{"nodeType":"YulBlock","src":"752:92:19","statements":[{"nodeType":"YulAssignment","src":"762:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"774:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"785:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"770:3:19"},"nodeType":"YulFunctionCall","src":"770:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"762:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"804:9:19"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"829:6:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"822:6:19"},"nodeType":"YulFunctionCall","src":"822:14:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"815:6:19"},"nodeType":"YulFunctionCall","src":"815:22:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"797:6:19"},"nodeType":"YulFunctionCall","src":"797:41:19"},"nodeType":"YulExpressionStatement","src":"797:41:19"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"721:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"732:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"743:4:19","type":""}],"src":"657:187:19"},{"body":{"nodeType":"YulBlock","src":"919:110:19","statements":[{"body":{"nodeType":"YulBlock","src":"965:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"974:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"977:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"967:6:19"},"nodeType":"YulFunctionCall","src":"967:12:19"},"nodeType":"YulExpressionStatement","src":"967:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"940:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"949:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"936:3:19"},"nodeType":"YulFunctionCall","src":"936:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"961:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"932:3:19"},"nodeType":"YulFunctionCall","src":"932:32:19"},"nodeType":"YulIf","src":"929:52:19"},{"nodeType":"YulAssignment","src":"990:33:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1013:9:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1000:12:19"},"nodeType":"YulFunctionCall","src":"1000:23:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"990:6:19"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"885:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"896:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"908:6:19","type":""}],"src":"849:180:19"},{"body":{"nodeType":"YulBlock","src":"1135:76:19","statements":[{"nodeType":"YulAssignment","src":"1145:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1157:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1168:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1153:3:19"},"nodeType":"YulFunctionCall","src":"1153:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1145:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1187:9:19"},{"name":"value0","nodeType":"YulIdentifier","src":"1198:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1180:6:19"},"nodeType":"YulFunctionCall","src":"1180:25:19"},"nodeType":"YulExpressionStatement","src":"1180:25:19"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1104:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1115:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1126:4:19","type":""}],"src":"1034:177:19"},{"body":{"nodeType":"YulBlock","src":"1286:216:19","statements":[{"body":{"nodeType":"YulBlock","src":"1332:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1341:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1344:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1334:6:19"},"nodeType":"YulFunctionCall","src":"1334:12:19"},"nodeType":"YulExpressionStatement","src":"1334:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1307:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"1316:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1303:3:19"},"nodeType":"YulFunctionCall","src":"1303:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"1328:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1299:3:19"},"nodeType":"YulFunctionCall","src":"1299:32:19"},"nodeType":"YulIf","src":"1296:52:19"},{"nodeType":"YulVariableDeclaration","src":"1357:36:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1383:9:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1370:12:19"},"nodeType":"YulFunctionCall","src":"1370:23:19"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1361:5:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"1456:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1465:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1468:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1458:6:19"},"nodeType":"YulFunctionCall","src":"1458:12:19"},"nodeType":"YulExpressionStatement","src":"1458:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1415:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1426:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1441:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1446:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1437:3:19"},"nodeType":"YulFunctionCall","src":"1437:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"1450:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1433:3:19"},"nodeType":"YulFunctionCall","src":"1433:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1422:3:19"},"nodeType":"YulFunctionCall","src":"1422:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1412:2:19"},"nodeType":"YulFunctionCall","src":"1412:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1405:6:19"},"nodeType":"YulFunctionCall","src":"1405:50:19"},"nodeType":"YulIf","src":"1402:70:19"},{"nodeType":"YulAssignment","src":"1481:15:19","value":{"name":"value","nodeType":"YulIdentifier","src":"1491:5:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1481:6:19"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1252:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1263:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1275:6:19","type":""}],"src":"1216:286:19"},{"body":{"nodeType":"YulBlock","src":"1681:230:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1698:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1709:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1691:6:19"},"nodeType":"YulFunctionCall","src":"1691:21:19"},"nodeType":"YulExpressionStatement","src":"1691:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1732:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1743:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1728:3:19"},"nodeType":"YulFunctionCall","src":"1728:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1748:2:19","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1721:6:19"},"nodeType":"YulFunctionCall","src":"1721:30:19"},"nodeType":"YulExpressionStatement","src":"1721:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1771:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1782:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1767:3:19"},"nodeType":"YulFunctionCall","src":"1767:18:19"},{"hexValue":"536f75726365206d75737420626520746865206f7261636c65206f6620746865","kind":"string","nodeType":"YulLiteral","src":"1787:34:19","type":"","value":"Source must be the oracle of the"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1760:6:19"},"nodeType":"YulFunctionCall","src":"1760:62:19"},"nodeType":"YulExpressionStatement","src":"1760:62:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1842:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1838:3:19"},"nodeType":"YulFunctionCall","src":"1838:18:19"},{"hexValue":"2072657175657374","kind":"string","nodeType":"YulLiteral","src":"1858:10:19","type":"","value":" request"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1831:6:19"},"nodeType":"YulFunctionCall","src":"1831:38:19"},"nodeType":"YulExpressionStatement","src":"1831:38:19"},{"nodeType":"YulAssignment","src":"1878:27:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1890:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1901:3:19","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1886:3:19"},"nodeType":"YulFunctionCall","src":"1886:19:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1878:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1658:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1672:4:19","type":""}],"src":"1507:404:19"},{"body":{"nodeType":"YulBlock","src":"2090:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2107:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2118:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2100:6:19"},"nodeType":"YulFunctionCall","src":"2100:21:19"},"nodeType":"YulExpressionStatement","src":"2100:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2141:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2152:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2137:3:19"},"nodeType":"YulFunctionCall","src":"2137:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"2157:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2130:6:19"},"nodeType":"YulFunctionCall","src":"2130:30:19"},"nodeType":"YulExpressionStatement","src":"2130:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2180:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2191:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2176:3:19"},"nodeType":"YulFunctionCall","src":"2176:18:19"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"2196:24:19","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2169:6:19"},"nodeType":"YulFunctionCall","src":"2169:52:19"},"nodeType":"YulExpressionStatement","src":"2169:52:19"},{"nodeType":"YulAssignment","src":"2230:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2242:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2253:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2238:3:19"},"nodeType":"YulFunctionCall","src":"2238:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2230:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2067:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2081:4:19","type":""}],"src":"1916:346:19"},{"body":{"nodeType":"YulBlock","src":"2348:103:19","statements":[{"body":{"nodeType":"YulBlock","src":"2394:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2403:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2406:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2396:6:19"},"nodeType":"YulFunctionCall","src":"2396:12:19"},"nodeType":"YulExpressionStatement","src":"2396:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2369:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"2378:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2365:3:19"},"nodeType":"YulFunctionCall","src":"2365:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2361:3:19"},"nodeType":"YulFunctionCall","src":"2361:32:19"},"nodeType":"YulIf","src":"2358:52:19"},{"nodeType":"YulAssignment","src":"2419:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2435:9:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2429:5:19"},"nodeType":"YulFunctionCall","src":"2429:16:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2419:6:19"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2314:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2325:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2337:6:19","type":""}],"src":"2267:184:19"},{"body":{"nodeType":"YulBlock","src":"2585:145:19","statements":[{"nodeType":"YulAssignment","src":"2595:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2607:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2618:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2603:3:19"},"nodeType":"YulFunctionCall","src":"2603:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2595:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2637:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2652:6:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2668:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2673:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2664:3:19"},"nodeType":"YulFunctionCall","src":"2664:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"2677:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2660:3:19"},"nodeType":"YulFunctionCall","src":"2660:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2648:3:19"},"nodeType":"YulFunctionCall","src":"2648:32:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2630:6:19"},"nodeType":"YulFunctionCall","src":"2630:51:19"},"nodeType":"YulExpressionStatement","src":"2630:51:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2701:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2712:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2697:3:19"},"nodeType":"YulFunctionCall","src":"2697:18:19"},{"name":"value1","nodeType":"YulIdentifier","src":"2717:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2690:6:19"},"nodeType":"YulFunctionCall","src":"2690:34:19"},"nodeType":"YulExpressionStatement","src":"2690:34:19"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2546:9:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2557:6:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2565:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2576:4:19","type":""}],"src":"2456:274:19"},{"body":{"nodeType":"YulBlock","src":"2813:199:19","statements":[{"body":{"nodeType":"YulBlock","src":"2859:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2868:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2871:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2861:6:19"},"nodeType":"YulFunctionCall","src":"2861:12:19"},"nodeType":"YulExpressionStatement","src":"2861:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2834:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"2843:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2830:3:19"},"nodeType":"YulFunctionCall","src":"2830:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"2855:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2826:3:19"},"nodeType":"YulFunctionCall","src":"2826:32:19"},"nodeType":"YulIf","src":"2823:52:19"},{"nodeType":"YulVariableDeclaration","src":"2884:29:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2903:9:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2897:5:19"},"nodeType":"YulFunctionCall","src":"2897:16:19"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2888:5:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"2966:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2975:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2978:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2968:6:19"},"nodeType":"YulFunctionCall","src":"2968:12:19"},"nodeType":"YulExpressionStatement","src":"2968:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2935:5:19"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2956:5:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2949:6:19"},"nodeType":"YulFunctionCall","src":"2949:13:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2942:6:19"},"nodeType":"YulFunctionCall","src":"2942:21:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2932:2:19"},"nodeType":"YulFunctionCall","src":"2932:32:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2925:6:19"},"nodeType":"YulFunctionCall","src":"2925:40:19"},"nodeType":"YulIf","src":"2922:60:19"},{"nodeType":"YulAssignment","src":"2991:15:19","value":{"name":"value","nodeType":"YulIdentifier","src":"3001:5:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2991:6:19"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2779:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2790:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2802:6:19","type":""}],"src":"2735:277:19"},{"body":{"nodeType":"YulBlock","src":"3191:168:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3208:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"3219:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3201:6:19"},"nodeType":"YulFunctionCall","src":"3201:21:19"},"nodeType":"YulExpressionStatement","src":"3201:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3242:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"3253:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3238:3:19"},"nodeType":"YulFunctionCall","src":"3238:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"3258:2:19","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3231:6:19"},"nodeType":"YulFunctionCall","src":"3231:30:19"},"nodeType":"YulExpressionStatement","src":"3231:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3281:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"3292:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3277:3:19"},"nodeType":"YulFunctionCall","src":"3277:18:19"},{"hexValue":"556e61626c6520746f207472616e73666572","kind":"string","nodeType":"YulLiteral","src":"3297:20:19","type":"","value":"Unable to transfer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3270:6:19"},"nodeType":"YulFunctionCall","src":"3270:48:19"},"nodeType":"YulExpressionStatement","src":"3270:48:19"},{"nodeType":"YulAssignment","src":"3327:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3339:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"3350:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3335:3:19"},"nodeType":"YulFunctionCall","src":"3335:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3327:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3168:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3182:4:19","type":""}],"src":"3017:342:19"},{"body":{"nodeType":"YulBlock","src":"3396:95:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3413:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3420:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3425:10:19","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3416:3:19"},"nodeType":"YulFunctionCall","src":"3416:20:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3406:6:19"},"nodeType":"YulFunctionCall","src":"3406:31:19"},"nodeType":"YulExpressionStatement","src":"3406:31:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3453:1:19","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3456:4:19","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3446:6:19"},"nodeType":"YulFunctionCall","src":"3446:15:19"},"nodeType":"YulExpressionStatement","src":"3446:15:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3477:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3480:4:19","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3470:6:19"},"nodeType":"YulFunctionCall","src":"3470:15:19"},"nodeType":"YulExpressionStatement","src":"3470:15:19"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"3364:127:19"},{"body":{"nodeType":"YulBlock","src":"3528:95:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3545:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3552:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3557:10:19","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3548:3:19"},"nodeType":"YulFunctionCall","src":"3548:20:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3538:6:19"},"nodeType":"YulFunctionCall","src":"3538:31:19"},"nodeType":"YulExpressionStatement","src":"3538:31:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3585:1:19","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3588:4:19","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3578:6:19"},"nodeType":"YulFunctionCall","src":"3578:15:19"},"nodeType":"YulExpressionStatement","src":"3578:15:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3609:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3612:4:19","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3602:6:19"},"nodeType":"YulFunctionCall","src":"3602:15:19"},"nodeType":"YulExpressionStatement","src":"3602:15:19"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"3496:127:19"},{"body":{"nodeType":"YulBlock","src":"3674:74:19","statements":[{"body":{"nodeType":"YulBlock","src":"3697:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"3699:16:19"},"nodeType":"YulFunctionCall","src":"3699:18:19"},"nodeType":"YulExpressionStatement","src":"3699:18:19"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"3694:1:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3687:6:19"},"nodeType":"YulFunctionCall","src":"3687:9:19"},"nodeType":"YulIf","src":"3684:35:19"},{"nodeType":"YulAssignment","src":"3728:14:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3737:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"3740:1:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3733:3:19"},"nodeType":"YulFunctionCall","src":"3733:9:19"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"3728:1:19"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3659:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"3662:1:19","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"3668:1:19","type":""}],"src":"3628:120:19"},{"body":{"nodeType":"YulBlock","src":"3819:184:19","statements":[{"nodeType":"YulVariableDeclaration","src":"3829:10:19","value":{"kind":"number","nodeType":"YulLiteral","src":"3838:1:19","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3833:1:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"3898:63:19","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3923:3:19"},{"name":"i","nodeType":"YulIdentifier","src":"3928:1:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3919:3:19"},"nodeType":"YulFunctionCall","src":"3919:11:19"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3942:3:19"},{"name":"i","nodeType":"YulIdentifier","src":"3947:1:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3938:3:19"},"nodeType":"YulFunctionCall","src":"3938:11:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3932:5:19"},"nodeType":"YulFunctionCall","src":"3932:18:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3912:6:19"},"nodeType":"YulFunctionCall","src":"3912:39:19"},"nodeType":"YulExpressionStatement","src":"3912:39:19"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3859:1:19"},{"name":"length","nodeType":"YulIdentifier","src":"3862:6:19"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3856:2:19"},"nodeType":"YulFunctionCall","src":"3856:13:19"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3870:19:19","statements":[{"nodeType":"YulAssignment","src":"3872:15:19","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3881:1:19"},{"kind":"number","nodeType":"YulLiteral","src":"3884:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3877:3:19"},"nodeType":"YulFunctionCall","src":"3877:10:19"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3872:1:19"}]}]},"pre":{"nodeType":"YulBlock","src":"3852:3:19","statements":[]},"src":"3848:113:19"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3981:3:19"},{"name":"length","nodeType":"YulIdentifier","src":"3986:6:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3977:3:19"},"nodeType":"YulFunctionCall","src":"3977:16:19"},{"kind":"number","nodeType":"YulLiteral","src":"3995:1:19","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3970:6:19"},"nodeType":"YulFunctionCall","src":"3970:27:19"},"nodeType":"YulExpressionStatement","src":"3970:27:19"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3797:3:19","type":""},{"name":"dst","nodeType":"YulTypedName","src":"3802:3:19","type":""},{"name":"length","nodeType":"YulTypedName","src":"3807:6:19","type":""}],"src":"3753:250:19"},{"body":{"nodeType":"YulBlock","src":"4248:608:19","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4265:3:19"},{"hexValue":"68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f","kind":"string","nodeType":"YulLiteral","src":"4270:34:19","type":"","value":"https://api-stg.transak.com/api/"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4258:6:19"},"nodeType":"YulFunctionCall","src":"4258:47:19"},"nodeType":"YulExpressionStatement","src":"4258:47:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4325:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4330:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4321:3:19"},"nodeType":"YulFunctionCall","src":"4321:12:19"},{"hexValue":"76322f63757272656e636965732f70726963653f706172746e65724170694b65","kind":"string","nodeType":"YulLiteral","src":"4335:34:19","type":"","value":"v2/currencies/price?partnerApiKe"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4314:6:19"},"nodeType":"YulFunctionCall","src":"4314:56:19"},"nodeType":"YulExpressionStatement","src":"4314:56:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4390:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4395:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4386:3:19"},"nodeType":"YulFunctionCall","src":"4386:12:19"},{"hexValue":"793d30363235323566302d383536622d343330322d396434382d386236393062","kind":"string","nodeType":"YulLiteral","src":"4400:34:19","type":"","value":"y=062525f0-856b-4302-9d48-8b690b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4379:6:19"},"nodeType":"YulFunctionCall","src":"4379:56:19"},"nodeType":"YulExpressionStatement","src":"4379:56:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4455:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4460:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4451:3:19"},"nodeType":"YulFunctionCall","src":"4451:12:19"},{"hexValue":"623565363334266669617443757272656e63793d5553442663727970746f4375","kind":"string","nodeType":"YulLiteral","src":"4465:34:19","type":"","value":"b5e634&fiatCurrency=USD&cryptoCu"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4444:6:19"},"nodeType":"YulFunctionCall","src":"4444:56:19"},"nodeType":"YulExpressionStatement","src":"4444:56:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4520:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4525:3:19","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4516:3:19"},"nodeType":"YulFunctionCall","src":"4516:13:19"},{"hexValue":"7272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f","kind":"string","nodeType":"YulLiteral","src":"4531:34:19","type":"","value":"rrency=ETH&isBuyOrSell=BUY&netwo"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4509:6:19"},"nodeType":"YulFunctionCall","src":"4509:57:19"},"nodeType":"YulExpressionStatement","src":"4509:57:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4586:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4591:3:19","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4582:3:19"},"nodeType":"YulFunctionCall","src":"4582:13:19"},{"hexValue":"726b3d657468657265756d267061796d656e744d6574686f643d637265646974","kind":"string","nodeType":"YulLiteral","src":"4597:34:19","type":"","value":"rk=ethereum&paymentMethod=credit"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4575:6:19"},"nodeType":"YulFunctionCall","src":"4575:57:19"},"nodeType":"YulExpressionStatement","src":"4575:57:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4652:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4657:3:19","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4648:3:19"},"nodeType":"YulFunctionCall","src":"4648:13:19"},{"hexValue":"5f64656269745f636172642666696174416d6f756e743d","kind":"string","nodeType":"YulLiteral","src":"4663:25:19","type":"","value":"_debit_card&fiatAmount="}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4641:6:19"},"nodeType":"YulFunctionCall","src":"4641:48:19"},"nodeType":"YulExpressionStatement","src":"4641:48:19"},{"nodeType":"YulVariableDeclaration","src":"4698:27:19","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4718:6:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4712:5:19"},"nodeType":"YulFunctionCall","src":"4712:13:19"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4702:6:19","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4773:6:19"},{"kind":"number","nodeType":"YulLiteral","src":"4781:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4769:3:19"},"nodeType":"YulFunctionCall","src":"4769:15:19"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4790:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4795:3:19","type":"","value":"215"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4786:3:19"},"nodeType":"YulFunctionCall","src":"4786:13:19"},{"name":"length","nodeType":"YulIdentifier","src":"4801:6:19"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4734:34:19"},"nodeType":"YulFunctionCall","src":"4734:74:19"},"nodeType":"YulExpressionStatement","src":"4734:74:19"},{"nodeType":"YulAssignment","src":"4817:33:19","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4832:3:19"},{"name":"length","nodeType":"YulIdentifier","src":"4837:6:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4828:3:19"},"nodeType":"YulFunctionCall","src":"4828:16:19"},{"kind":"number","nodeType":"YulLiteral","src":"4846:3:19","type":"","value":"215"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4824:3:19"},"nodeType":"YulFunctionCall","src":"4824:26:19"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4817:3:19"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4224:3:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4229:6:19","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4240:3:19","type":""}],"src":"4008:848:19"},{"body":{"nodeType":"YulBlock","src":"5035:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5052:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5063:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5045:6:19"},"nodeType":"YulFunctionCall","src":"5045:21:19"},"nodeType":"YulExpressionStatement","src":"5045:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5086:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5097:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5082:3:19"},"nodeType":"YulFunctionCall","src":"5082:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"5102:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5075:6:19"},"nodeType":"YulFunctionCall","src":"5075:30:19"},"nodeType":"YulExpressionStatement","src":"5075:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5125:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5136:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5121:3:19"},"nodeType":"YulFunctionCall","src":"5121:18:19"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"5141:24:19","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5114:6:19"},"nodeType":"YulFunctionCall","src":"5114:52:19"},"nodeType":"YulExpressionStatement","src":"5114:52:19"},{"nodeType":"YulAssignment","src":"5175:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5187:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5198:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5183:3:19"},"nodeType":"YulFunctionCall","src":"5183:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5175:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5012:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5026:4:19","type":""}],"src":"4861:346:19"},{"body":{"nodeType":"YulBlock","src":"5386:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5403:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5414:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5396:6:19"},"nodeType":"YulFunctionCall","src":"5396:21:19"},"nodeType":"YulExpressionStatement","src":"5396:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5437:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5448:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5433:3:19"},"nodeType":"YulFunctionCall","src":"5433:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"5453:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5426:6:19"},"nodeType":"YulFunctionCall","src":"5426:30:19"},"nodeType":"YulExpressionStatement","src":"5426:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5476:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5487:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5472:3:19"},"nodeType":"YulFunctionCall","src":"5472:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"5492:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5465:6:19"},"nodeType":"YulFunctionCall","src":"5465:53:19"},"nodeType":"YulExpressionStatement","src":"5465:53:19"},{"nodeType":"YulAssignment","src":"5527:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5539:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5550:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5535:3:19"},"nodeType":"YulFunctionCall","src":"5535:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5527:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5363:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5377:4:19","type":""}],"src":"5212:347:19"},{"body":{"nodeType":"YulBlock","src":"5596:95:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5613:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5620:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5625:10:19","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5616:3:19"},"nodeType":"YulFunctionCall","src":"5616:20:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5606:6:19"},"nodeType":"YulFunctionCall","src":"5606:31:19"},"nodeType":"YulExpressionStatement","src":"5606:31:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5653:1:19","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5656:4:19","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5646:6:19"},"nodeType":"YulFunctionCall","src":"5646:15:19"},"nodeType":"YulExpressionStatement","src":"5646:15:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5677:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5680:4:19","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5670:6:19"},"nodeType":"YulFunctionCall","src":"5670:15:19"},"nodeType":"YulExpressionStatement","src":"5670:15:19"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"5564:127:19"},{"body":{"nodeType":"YulBlock","src":"5744:77:19","statements":[{"nodeType":"YulAssignment","src":"5754:16:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5765:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"5768:1:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5761:3:19"},"nodeType":"YulFunctionCall","src":"5761:9:19"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5754:3:19"}]},{"body":{"nodeType":"YulBlock","src":"5793:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5795:16:19"},"nodeType":"YulFunctionCall","src":"5795:18:19"},"nodeType":"YulExpressionStatement","src":"5795:18:19"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5785:1:19"},{"name":"sum","nodeType":"YulIdentifier","src":"5788:3:19"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5782:2:19"},"nodeType":"YulFunctionCall","src":"5782:10:19"},"nodeType":"YulIf","src":"5779:36:19"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5727:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"5730:1:19","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5736:3:19","type":""}],"src":"5696:125:19"},{"body":{"nodeType":"YulBlock","src":"5875:221:19","statements":[{"nodeType":"YulVariableDeclaration","src":"5885:26:19","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5905:5:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5899:5:19"},"nodeType":"YulFunctionCall","src":"5899:12:19"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5889:6:19","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5927:3:19"},{"name":"length","nodeType":"YulIdentifier","src":"5932:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5920:6:19"},"nodeType":"YulFunctionCall","src":"5920:19:19"},"nodeType":"YulExpressionStatement","src":"5920:19:19"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5987:5:19"},{"kind":"number","nodeType":"YulLiteral","src":"5994:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5983:3:19"},"nodeType":"YulFunctionCall","src":"5983:16:19"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6005:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"6010:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6001:3:19"},"nodeType":"YulFunctionCall","src":"6001:14:19"},{"name":"length","nodeType":"YulIdentifier","src":"6017:6:19"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"5948:34:19"},"nodeType":"YulFunctionCall","src":"5948:76:19"},"nodeType":"YulExpressionStatement","src":"5948:76:19"},{"nodeType":"YulAssignment","src":"6033:57:19","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6048:3:19"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6061:6:19"},{"kind":"number","nodeType":"YulLiteral","src":"6069:2:19","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6057:3:19"},"nodeType":"YulFunctionCall","src":"6057:15:19"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6078:2:19","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6074:3:19"},"nodeType":"YulFunctionCall","src":"6074:7:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6053:3:19"},"nodeType":"YulFunctionCall","src":"6053:29:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6044:3:19"},"nodeType":"YulFunctionCall","src":"6044:39:19"},{"kind":"number","nodeType":"YulLiteral","src":"6085:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6040:3:19"},"nodeType":"YulFunctionCall","src":"6040:50:19"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6033:3:19"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5852:5:19","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5859:3:19","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5867:3:19","type":""}],"src":"5826:270:19"},{"body":{"nodeType":"YulBlock","src":"6414:508:19","statements":[{"nodeType":"YulVariableDeclaration","src":"6424:13:19","value":{"kind":"number","nodeType":"YulLiteral","src":"6434:3:19","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6428:2:19","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6446:29:19","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6464:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6469:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6460:3:19"},"nodeType":"YulFunctionCall","src":"6460:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"6473:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6456:3:19"},"nodeType":"YulFunctionCall","src":"6456:19:19"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6450:2:19","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6491:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6506:6:19"},{"name":"_2","nodeType":"YulIdentifier","src":"6514:2:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6502:3:19"},"nodeType":"YulFunctionCall","src":"6502:15:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6484:6:19"},"nodeType":"YulFunctionCall","src":"6484:34:19"},"nodeType":"YulExpressionStatement","src":"6484:34:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6538:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"6549:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6534:3:19"},"nodeType":"YulFunctionCall","src":"6534:18:19"},{"name":"value1","nodeType":"YulIdentifier","src":"6554:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6527:6:19"},"nodeType":"YulFunctionCall","src":"6527:34:19"},"nodeType":"YulExpressionStatement","src":"6527:34:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6581:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"6592:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6577:3:19"},"nodeType":"YulFunctionCall","src":"6577:18:19"},{"name":"value2","nodeType":"YulIdentifier","src":"6597:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6570:6:19"},"nodeType":"YulFunctionCall","src":"6570:34:19"},"nodeType":"YulExpressionStatement","src":"6570:34:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6624:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"6635:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6620:3:19"},"nodeType":"YulFunctionCall","src":"6620:18:19"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6644:6:19"},{"name":"_2","nodeType":"YulIdentifier","src":"6652:2:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6640:3:19"},"nodeType":"YulFunctionCall","src":"6640:15:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6613:6:19"},"nodeType":"YulFunctionCall","src":"6613:43:19"},"nodeType":"YulExpressionStatement","src":"6613:43:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6676:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"6687:3:19","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6672:3:19"},"nodeType":"YulFunctionCall","src":"6672:19:19"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6697:6:19"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6709:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6714:10:19","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6705:3:19"},"nodeType":"YulFunctionCall","src":"6705:20:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6693:3:19"},"nodeType":"YulFunctionCall","src":"6693:33:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6665:6:19"},"nodeType":"YulFunctionCall","src":"6665:62:19"},"nodeType":"YulExpressionStatement","src":"6665:62:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6747:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"6758:3:19","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6743:3:19"},"nodeType":"YulFunctionCall","src":"6743:19:19"},{"name":"value5","nodeType":"YulIdentifier","src":"6764:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6736:6:19"},"nodeType":"YulFunctionCall","src":"6736:35:19"},"nodeType":"YulExpressionStatement","src":"6736:35:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6791:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"6802:3:19","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6787:3:19"},"nodeType":"YulFunctionCall","src":"6787:19:19"},{"name":"value6","nodeType":"YulIdentifier","src":"6808:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6780:6:19"},"nodeType":"YulFunctionCall","src":"6780:35:19"},"nodeType":"YulExpressionStatement","src":"6780:35:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6835:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"6846:3:19","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6831:3:19"},"nodeType":"YulFunctionCall","src":"6831:19:19"},{"name":"_1","nodeType":"YulIdentifier","src":"6852:2:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6824:6:19"},"nodeType":"YulFunctionCall","src":"6824:31:19"},"nodeType":"YulExpressionStatement","src":"6824:31:19"},{"nodeType":"YulAssignment","src":"6864:52:19","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"6889:6:19"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6901:9:19"},{"name":"_1","nodeType":"YulIdentifier","src":"6912:2:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6897:3:19"},"nodeType":"YulFunctionCall","src":"6897:18:19"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6872:16:19"},"nodeType":"YulFunctionCall","src":"6872:44:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6864:4:19"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6327:9:19","type":""},{"name":"value7","nodeType":"YulTypedName","src":"6338:6:19","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6346:6:19","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6354:6:19","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6362:6:19","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6370:6:19","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6378:6:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6386:6:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6394:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6405:4:19","type":""}],"src":"6101:821:19"},{"body":{"nodeType":"YulBlock","src":"6965:74:19","statements":[{"body":{"nodeType":"YulBlock","src":"6988:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"6990:16:19"},"nodeType":"YulFunctionCall","src":"6990:18:19"},"nodeType":"YulExpressionStatement","src":"6990:18:19"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6985:1:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6978:6:19"},"nodeType":"YulFunctionCall","src":"6978:9:19"},"nodeType":"YulIf","src":"6975:35:19"},{"nodeType":"YulAssignment","src":"7019:14:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7028:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"7031:1:19"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"7024:3:19"},"nodeType":"YulFunctionCall","src":"7024:9:19"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7019:1:19"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6950:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"6953:1:19","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"6959:1:19","type":""}],"src":"6927:112:19"},{"body":{"nodeType":"YulBlock","src":"7093:79:19","statements":[{"nodeType":"YulAssignment","src":"7103:17:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7115:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"7118:1:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7111:3:19"},"nodeType":"YulFunctionCall","src":"7111:9:19"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"7103:4:19"}]},{"body":{"nodeType":"YulBlock","src":"7144:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7146:16:19"},"nodeType":"YulFunctionCall","src":"7146:18:19"},"nodeType":"YulExpressionStatement","src":"7146:18:19"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"7135:4:19"},{"name":"x","nodeType":"YulIdentifier","src":"7141:1:19"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7132:2:19"},"nodeType":"YulFunctionCall","src":"7132:11:19"},"nodeType":"YulIf","src":"7129:37:19"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7075:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"7078:1:19","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"7084:4:19","type":""}],"src":"7044:128:19"},{"body":{"nodeType":"YulBlock","src":"7347:147:19","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7364:3:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7377:2:19","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"7381:6:19"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7373:3:19"},"nodeType":"YulFunctionCall","src":"7373:15:19"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7394:26:19","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7390:3:19"},"nodeType":"YulFunctionCall","src":"7390:31:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7369:3:19"},"nodeType":"YulFunctionCall","src":"7369:53:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7357:6:19"},"nodeType":"YulFunctionCall","src":"7357:66:19"},"nodeType":"YulExpressionStatement","src":"7357:66:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7443:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"7448:2:19","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7439:3:19"},"nodeType":"YulFunctionCall","src":"7439:12:19"},{"name":"value1","nodeType":"YulIdentifier","src":"7453:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7432:6:19"},"nodeType":"YulFunctionCall","src":"7432:28:19"},"nodeType":"YulExpressionStatement","src":"7432:28:19"},{"nodeType":"YulAssignment","src":"7469:19:19","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7480:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"7485:2:19","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7476:3:19"},"nodeType":"YulFunctionCall","src":"7476:12:19"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7469:3:19"}]}]},"name":"abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"7315:3:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7320:6:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7328:6:19","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7339:3:19","type":""}],"src":"7177:317:19"},{"body":{"nodeType":"YulBlock","src":"7674:210:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7691:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7706:6:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7722:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7727:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7718:3:19"},"nodeType":"YulFunctionCall","src":"7718:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"7731:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7714:3:19"},"nodeType":"YulFunctionCall","src":"7714:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7702:3:19"},"nodeType":"YulFunctionCall","src":"7702:32:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7684:6:19"},"nodeType":"YulFunctionCall","src":"7684:51:19"},"nodeType":"YulExpressionStatement","src":"7684:51:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7755:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"7766:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7751:3:19"},"nodeType":"YulFunctionCall","src":"7751:18:19"},{"name":"value1","nodeType":"YulIdentifier","src":"7771:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7744:6:19"},"nodeType":"YulFunctionCall","src":"7744:34:19"},"nodeType":"YulExpressionStatement","src":"7744:34:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7798:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"7809:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7794:3:19"},"nodeType":"YulFunctionCall","src":"7794:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"7814:2:19","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7787:6:19"},"nodeType":"YulFunctionCall","src":"7787:30:19"},"nodeType":"YulExpressionStatement","src":"7787:30:19"},{"nodeType":"YulAssignment","src":"7826:52:19","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7851:6:19"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7863:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"7874:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7859:3:19"},"nodeType":"YulFunctionCall","src":"7859:18:19"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7834:16:19"},"nodeType":"YulFunctionCall","src":"7834:44:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7826:4:19"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7627:9:19","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7638:6:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7646:6:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7654:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7665:4:19","type":""}],"src":"7499:385:19"},{"body":{"nodeType":"YulBlock","src":"8063:225:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8080:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8091:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8073:6:19"},"nodeType":"YulFunctionCall","src":"8073:21:19"},"nodeType":"YulExpressionStatement","src":"8073:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8114:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8125:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8110:3:19"},"nodeType":"YulFunctionCall","src":"8110:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"8130:2:19","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8103:6:19"},"nodeType":"YulFunctionCall","src":"8103:30:19"},"nodeType":"YulExpressionStatement","src":"8103:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8153:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8164:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8149:3:19"},"nodeType":"YulFunctionCall","src":"8149:18:19"},{"hexValue":"756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261","kind":"string","nodeType":"YulLiteral","src":"8169:34:19","type":"","value":"unable to transferAndCall to ora"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8142:6:19"},"nodeType":"YulFunctionCall","src":"8142:62:19"},"nodeType":"YulExpressionStatement","src":"8142:62:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8224:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8235:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8220:3:19"},"nodeType":"YulFunctionCall","src":"8220:18:19"},{"hexValue":"636c65","kind":"string","nodeType":"YulLiteral","src":"8240:5:19","type":"","value":"cle"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8213:6:19"},"nodeType":"YulFunctionCall","src":"8213:33:19"},"nodeType":"YulExpressionStatement","src":"8213:33:19"},{"nodeType":"YulAssignment","src":"8255:27:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8267:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8278:3:19","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8263:3:19"},"nodeType":"YulFunctionCall","src":"8263:19:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8255:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8040:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8054:4:19","type":""}],"src":"7889:399:19"},{"body":{"nodeType":"YulBlock","src":"8345:116:19","statements":[{"nodeType":"YulAssignment","src":"8355:20:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8370:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"8373:1:19"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8366:3:19"},"nodeType":"YulFunctionCall","src":"8366:9:19"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"8355:7:19"}]},{"body":{"nodeType":"YulBlock","src":"8433:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8435:16:19"},"nodeType":"YulFunctionCall","src":"8435:18:19"},"nodeType":"YulExpressionStatement","src":"8435:18:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8404:1:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8397:6:19"},"nodeType":"YulFunctionCall","src":"8397:9:19"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8411:1:19"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"8418:7:19"},{"name":"x","nodeType":"YulIdentifier","src":"8427:1:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8414:3:19"},"nodeType":"YulFunctionCall","src":"8414:15:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8408:2:19"},"nodeType":"YulFunctionCall","src":"8408:22:19"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"8394:2:19"},"nodeType":"YulFunctionCall","src":"8394:37:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8387:6:19"},"nodeType":"YulFunctionCall","src":"8387:45:19"},"nodeType":"YulIf","src":"8384:71:19"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8324:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"8327:1:19","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"8333:7:19","type":""}],"src":"8293:168:19"},{"body":{"nodeType":"YulBlock","src":"8530:358:19","statements":[{"nodeType":"YulVariableDeclaration","src":"8540:16:19","value":{"kind":"number","nodeType":"YulLiteral","src":"8555:1:19","type":"","value":"1"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"8544:7:19","type":""}]},{"nodeType":"YulAssignment","src":"8565:16:19","value":{"name":"power_1","nodeType":"YulIdentifier","src":"8574:7:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8565:5:19"}]},{"nodeType":"YulAssignment","src":"8590:13:19","value":{"name":"_base","nodeType":"YulIdentifier","src":"8598:5:19"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"8590:4:19"}]},{"body":{"nodeType":"YulBlock","src":"8654:228:19","statements":[{"body":{"nodeType":"YulBlock","src":"8699:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8701:16:19"},"nodeType":"YulFunctionCall","src":"8701:18:19"},"nodeType":"YulExpressionStatement","src":"8701:18:19"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"8674:4:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8688:1:19","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8684:3:19"},"nodeType":"YulFunctionCall","src":"8684:6:19"},{"name":"base","nodeType":"YulIdentifier","src":"8692:4:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8680:3:19"},"nodeType":"YulFunctionCall","src":"8680:17:19"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8671:2:19"},"nodeType":"YulFunctionCall","src":"8671:27:19"},"nodeType":"YulIf","src":"8668:53:19"},{"body":{"nodeType":"YulBlock","src":"8760:29:19","statements":[{"nodeType":"YulAssignment","src":"8762:25:19","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"8775:5:19"},{"name":"base","nodeType":"YulIdentifier","src":"8782:4:19"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8771:3:19"},"nodeType":"YulFunctionCall","src":"8771:16:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8762:5:19"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"8741:8:19"},{"name":"power_1","nodeType":"YulIdentifier","src":"8751:7:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8737:3:19"},"nodeType":"YulFunctionCall","src":"8737:22:19"},"nodeType":"YulIf","src":"8734:55:19"},{"nodeType":"YulAssignment","src":"8802:23:19","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"8814:4:19"},{"name":"base","nodeType":"YulIdentifier","src":"8820:4:19"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8810:3:19"},"nodeType":"YulFunctionCall","src":"8810:15:19"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"8802:4:19"}]},{"nodeType":"YulAssignment","src":"8838:34:19","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"8854:7:19"},{"name":"exponent","nodeType":"YulIdentifier","src":"8863:8:19"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8850:3:19"},"nodeType":"YulFunctionCall","src":"8850:22:19"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"8838:8:19"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"8623:8:19"},{"name":"power_1","nodeType":"YulIdentifier","src":"8633:7:19"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8620:2:19"},"nodeType":"YulFunctionCall","src":"8620:21:19"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8642:3:19","statements":[]},"pre":{"nodeType":"YulBlock","src":"8616:3:19","statements":[]},"src":"8612:270:19"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nodeType":"YulTypedName","src":"8494:5:19","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"8501:8:19","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"8514:5:19","type":""},{"name":"base","nodeType":"YulTypedName","src":"8521:4:19","type":""}],"src":"8466:422:19"},{"body":{"nodeType":"YulBlock","src":"8952:747:19","statements":[{"body":{"nodeType":"YulBlock","src":"8990:52:19","statements":[{"nodeType":"YulAssignment","src":"9004:10:19","value":{"kind":"number","nodeType":"YulLiteral","src":"9013:1:19","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9004:5:19"}]},{"nodeType":"YulLeave","src":"9027:5:19"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"8972:8:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8965:6:19"},"nodeType":"YulFunctionCall","src":"8965:16:19"},"nodeType":"YulIf","src":"8962:80:19"},{"body":{"nodeType":"YulBlock","src":"9075:52:19","statements":[{"nodeType":"YulAssignment","src":"9089:10:19","value":{"kind":"number","nodeType":"YulLiteral","src":"9098:1:19","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9089:5:19"}]},{"nodeType":"YulLeave","src":"9112:5:19"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9061:4:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9054:6:19"},"nodeType":"YulFunctionCall","src":"9054:12:19"},"nodeType":"YulIf","src":"9051:76:19"},{"cases":[{"body":{"nodeType":"YulBlock","src":"9163:52:19","statements":[{"nodeType":"YulAssignment","src":"9177:10:19","value":{"kind":"number","nodeType":"YulLiteral","src":"9186:1:19","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9177:5:19"}]},{"nodeType":"YulLeave","src":"9200:5:19"}]},"nodeType":"YulCase","src":"9156:59:19","value":{"kind":"number","nodeType":"YulLiteral","src":"9161:1:19","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"9231:123:19","statements":[{"body":{"nodeType":"YulBlock","src":"9266:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9268:16:19"},"nodeType":"YulFunctionCall","src":"9268:18:19"},"nodeType":"YulExpressionStatement","src":"9268:18:19"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9251:8:19"},{"kind":"number","nodeType":"YulLiteral","src":"9261:3:19","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9248:2:19"},"nodeType":"YulFunctionCall","src":"9248:17:19"},"nodeType":"YulIf","src":"9245:43:19"},{"nodeType":"YulAssignment","src":"9301:25:19","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9314:8:19"},{"kind":"number","nodeType":"YulLiteral","src":"9324:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9310:3:19"},"nodeType":"YulFunctionCall","src":"9310:16:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9301:5:19"}]},{"nodeType":"YulLeave","src":"9339:5:19"}]},"nodeType":"YulCase","src":"9224:130:19","value":{"kind":"number","nodeType":"YulLiteral","src":"9229:1:19","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"9143:4:19"},"nodeType":"YulSwitch","src":"9136:218:19"},{"body":{"nodeType":"YulBlock","src":"9452:70:19","statements":[{"nodeType":"YulAssignment","src":"9466:28:19","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9479:4:19"},{"name":"exponent","nodeType":"YulIdentifier","src":"9485:8:19"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"9475:3:19"},"nodeType":"YulFunctionCall","src":"9475:19:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9466:5:19"}]},{"nodeType":"YulLeave","src":"9507:5:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9376:4:19"},{"kind":"number","nodeType":"YulLiteral","src":"9382:2:19","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9373:2:19"},"nodeType":"YulFunctionCall","src":"9373:12:19"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9390:8:19"},{"kind":"number","nodeType":"YulLiteral","src":"9400:2:19","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9387:2:19"},"nodeType":"YulFunctionCall","src":"9387:16:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9369:3:19"},"nodeType":"YulFunctionCall","src":"9369:35:19"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9413:4:19"},{"kind":"number","nodeType":"YulLiteral","src":"9419:3:19","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9410:2:19"},"nodeType":"YulFunctionCall","src":"9410:13:19"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9428:8:19"},{"kind":"number","nodeType":"YulLiteral","src":"9438:2:19","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9425:2:19"},"nodeType":"YulFunctionCall","src":"9425:16:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9406:3:19"},"nodeType":"YulFunctionCall","src":"9406:36:19"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9366:2:19"},"nodeType":"YulFunctionCall","src":"9366:77:19"},"nodeType":"YulIf","src":"9363:159:19"},{"nodeType":"YulVariableDeclaration","src":"9531:57:19","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9573:4:19"},{"name":"exponent","nodeType":"YulIdentifier","src":"9579:8:19"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"9554:18:19"},"nodeType":"YulFunctionCall","src":"9554:34:19"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"9535:7:19","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"9544:6:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"9633:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9635:16:19"},"nodeType":"YulFunctionCall","src":"9635:18:19"},"nodeType":"YulExpressionStatement","src":"9635:18:19"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"9603:7:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9620:1:19","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9616:3:19"},"nodeType":"YulFunctionCall","src":"9616:6:19"},{"name":"base_1","nodeType":"YulIdentifier","src":"9624:6:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9612:3:19"},"nodeType":"YulFunctionCall","src":"9612:19:19"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9600:2:19"},"nodeType":"YulFunctionCall","src":"9600:32:19"},"nodeType":"YulIf","src":"9597:58:19"},{"nodeType":"YulAssignment","src":"9664:29:19","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"9677:7:19"},{"name":"base_1","nodeType":"YulIdentifier","src":"9686:6:19"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"9673:3:19"},"nodeType":"YulFunctionCall","src":"9673:20:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9664:5:19"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"8923:4:19","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"8929:8:19","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"8942:5:19","type":""}],"src":"8893:806:19"},{"body":{"nodeType":"YulBlock","src":"9774:61:19","statements":[{"nodeType":"YulAssignment","src":"9784:45:19","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9814:4:19"},{"name":"exponent","nodeType":"YulIdentifier","src":"9820:8:19"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"9793:20:19"},"nodeType":"YulFunctionCall","src":"9793:36:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9784:5:19"}]}]},"name":"checked_exp_t_uint256_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"9745:4:19","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"9751:8:19","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"9764:5:19","type":""}],"src":"9704:131:19"}]},"contents":"{\n { }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"Source must be the oracle of the\")\n mstore(add(headStart, 96), \" request\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Unable to transfer\")\n tail := add(headStart, 96)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_tuple_packed_t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, \"https://api-stg.transak.com/api/\")\n mstore(add(pos, 32), \"v2/currencies/price?partnerApiKe\")\n mstore(add(pos, 64), \"y=062525f0-856b-4302-9d48-8b690b\")\n mstore(add(pos, 96), \"b5e634&fiatCurrency=USD&cryptoCu\")\n mstore(add(pos, 128), \"rrency=ETH&isBuyOrSell=BUY&netwo\")\n mstore(add(pos, 160), \"rk=ethereum&paymentMethod=credit\")\n mstore(add(pos, 192), \"_debit_card&fiatAmount=\")\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 32), add(pos, 215), length)\n end := add(add(pos, length), 215)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 256\n let _2 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _2))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, shl(224, 0xffffffff)))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), _1)\n tail := abi_encode_bytes(value7, add(headStart, _1))\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), value1)\n end := add(pos, 52)\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"unable to transferAndCall to ora\")\n mstore(add(headStart, 96), \"cle\")\n tail := add(headStart, 128)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function checked_exp_helper(_base, exponent) -> power, base\n {\n let power_1 := 1\n power := power_1\n base := _base\n for { } gt(exponent, power_1) { }\n {\n if gt(base, div(not(0), base)) { panic_error_0x11() }\n if and(exponent, power_1) { power := mul(power, base) }\n base := mul(base, base)\n exponent := shr(power_1, exponent)\n }\n }\n function checked_exp_unsigned(base, exponent) -> power\n {\n if iszero(exponent)\n {\n power := 1\n leave\n }\n if iszero(base)\n {\n power := 0\n leave\n }\n switch base\n case 1 {\n power := 1\n leave\n }\n case 2 {\n if gt(exponent, 255) { panic_error_0x11() }\n power := shl(exponent, 1)\n leave\n }\n if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n {\n power := exp(base, exponent)\n leave\n }\n let power_1, base_1 := checked_exp_helper(base, exponent)\n if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n power := mul(power_1, base_1)\n }\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power\n {\n power := checked_exp_unsigned(base, exponent)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c5780639e2f9084116100665780639e2f9084146101b2578063a035b1fe146101d2578063df78abe6146101db578063f2fde38b146101e457600080fd5b80638da5cb5b146101865780638dc654a21461019757806393232d9f1461019f57600080fd5b80634357855e116100c85780634357855e1461014457806343e1ca491461015957806350ed6a951461017657806379ba50971461017e57600080fd5b8063350844ce146100ef57806338af3eed1461010b578063403a77611461013b575b600080fd5b6100f8600b5481565b6040519081526020015b60405180910390f35b600e546101239061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610102565b6100f8600a5481565b61015761015236600461112d565b6101f7565b005b600e546101669060ff1681565b6040519015158152602001610102565b6100f86102d3565b61015761037f565b6006546001600160a01b0316610123565b61015761042d565b6101576101ad36600461112d565b61057c565b6100f86101c036600461114f565b600d6020526000908152604090205481565b6100f860095481565b6100f860085481565b6101576101f2366004611168565b610643565b60008281526005602052604090205482906001600160a01b031633146102385760405162461bcd60e51b815260040161022f90611198565b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0836040516102ad91815260200190565b60405180910390a26102c282620186a0610654565b6008556102cd610669565b50505050565b6000806102ea600a5430634357855e60e01b61073f565b905061032c6040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c81526020016115bb604c9139839190610764565b61036d604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001611607602f9139839190610764565b61037981600c54610782565b91505090565b6007546001600160a01b031633146103d25760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161022f565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b61043561079c565b60006104496002546001600160a01b031690565b600e546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb9261010090049091169083906370a0823190602401602060405180830381865afa1580156104a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c991906111e0565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610514573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053891906111f9565b6105795760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161022f565b50565b60008281526005602052604090205482906001600160a01b031633146105b45760405162461bcd60e51b815260040161022f90611198565b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f2e48c207bbe18ca424eae69ca096badb69cc821f8cb72b42f49599f3390a3b1c8360405161062991815260200190565b60405180910390a2600982905561063e6107f1565b505050565b61064b61079c565b610579816108b5565b60006106608284611247565b90505b92915050565b600080610680600b54306393232d9f60e01b61073f565b9050600061068f60085461095f565b60405160200161069f919061127f565b60408051601f19818403018152828201909152600382526219d95d60ea1b602083015291506106d090839083610764565b61072c604051806040016040528060048152602001630e0c2e8d60e31b815250604051806040016040528060138152602001721c995cdc1bdb9cd94b199a585d105b5bdd5b9d606a1b815250846107649092919063ffffffff16565b61073882600c54610782565b9250505090565b6107476110f2565b61074f6110f2565b61075b818686866109f2565b95945050505050565b60808301516107739083610a38565b608083015161063e9082610a38565b600354600090610660906001600160a01b03168484610a4f565b6006546001600160a01b031633146107ef5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161022f565b565b60006108056002546001600160a01b031690565b600854600e546040516370a0823160e01b81526101009091046001600160a01b03908116600483015292935090918316906370a0823190602401602060405180830381865afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088091906111e0565b036108a857600854436000908152600d6020526040902055600e805460ff1916600117905550565b600e805460ff1916905550565b336001600160a01b0382160361090d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161022f565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b6060600061096c83610ae2565b600101905060008167ffffffffffffffff81111561098c5761098c6113a8565b6040519080825280601f01601f1916602001820160405280156109b6576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109c057509392505050565b6109fa6110f2565b610a0a8560800151610100610bba565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b610a458260038351610c1f565b61063e8282610d2e565b600454600090610a608160016113be565b600455835160408086015160808701515191516000936320214ca360e11b93610a989386938493923092918a916001916024016113fd565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610ad886838684610d55565b9695505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610b215772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610b4d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610b6b57662386f26fc10000830492506010015b6305f5e1008310610b83576305f5e100830492506008015b6127108310610b9757612710830492506004015b60648310610ba9576064830492506002015b600a83106106635760010192915050565b604080518082019091526060815260006020820152610bda602083611465565b15610c0257610bea602083611465565b610bf5906020611479565b610bff90836113be565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff1611610c44576102cd8360e0600585901b168317610eb3565b60ff8167ffffffffffffffff1611610c8257610c6b836018611fe0600586901b1617610eb3565b506102cd8367ffffffffffffffff83166001610ed8565b61ffff8167ffffffffffffffff1611610cc157610caa836019611fe0600586901b1617610eb3565b506102cd8367ffffffffffffffff83166002610ed8565b63ffffffff8167ffffffffffffffff1611610d0257610ceb83601a611fe0600586901b1617610eb3565b506102cd8367ffffffffffffffff83166004610ed8565b610d1783601b611fe0600586901b1617610eb3565b506102cd8367ffffffffffffffff83166008610ed8565b60408051808201909152606081526000602082015261066083846000015151848551610efe565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea090610e189088908790879060040161148c565b6020604051808303816000875af1158015610e37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5b91906111f9565b610a305760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161022f565b6040805180820190915260608152600060208201526106608384600001515184610fe8565b604080518082019091526060815260006020820152610a30848560000151518585611043565b6040805180820190915260608152600060208201528251821115610f2157600080fd5b6020850151610f3083866113be565b1115610f6357610f6385610f5387602001518786610f4e91906113be565b6110c4565b610f5e9060026114b3565b6110db565b600080865180518760208301019350808887011115610f825787860182525b505050602084015b60208410610fc25780518252610fa16020836113be565b9150610fae6020826113be565b9050610fbb602085611479565b9350610f8a565b51815160001960208690036101000a019081169019919091161790525083949350505050565b6040805180820190915260608152600060208201528360200151831061101d5761101d8485602001516002610f5e91906114b3565b8351805160208583010184815350808503611039576001810182525b5093949350505050565b604080518082019091526060815260006020820152602085015161106785846113be565b111561107b5761107b85610f5386856113be565b6000600161108b846101006115ae565b6110959190611479565b90508551838682010185831982511617815250805184870111156110b95783860181525b509495945050505050565b6000818311156110d5575081610663565b50919050565b81516110e78383610bba565b506102cd8382610d2e565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000806040838503121561114057600080fd5b50508035926020909101359150565b60006020828403121561116157600080fd5b5035919050565b60006020828403121561117a57600080fd5b81356001600160a01b038116811461119157600080fd5b9392505050565b60208082526028908201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604082015267081c995c5d595cdd60c21b606082015260800190565b6000602082840312156111f257600080fd5b5051919050565b60006020828403121561120b57600080fd5b8151801515811461119157600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826112565761125661121b565b500490565b60005b8381101561127657818101518382015260200161125e565b50506000910152565b7f68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f81527f76322f63757272656e636965732f70726963653f706172746e65724170694b6560208201527f793d30363235323566302d383536622d343330322d396434382d38623639306260408201527f623565363334266669617443757272656e63793d5553442663727970746f437560608201527f7272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f60808201527f726b3d657468657265756d267061796d656e744d6574686f643d63726564697460a08201527f5f64656269745f636172642666696174416d6f756e743d00000000000000000060c08201526000825161139b8160d785016020870161125b565b9190910160d70192915050565b634e487b7160e01b600052604160045260246000fd5b8082018082111561066357610663611231565b600081518084526113e981602086016020860161125b565b601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e08201819052600090611456838201856113d1565b9b9a5050505050505050505050565b6000826114745761147461121b565b500690565b8181038181111561066357610663611231565b60018060a01b038416815282602082015260606040820152600061075b60608301846113d1565b808202811582820484141761066357610663611231565b600181815b808511156115055781600019048211156114eb576114eb611231565b808516156114f857918102915b93841c93908002906114cf565b509250929050565b60008261151c57506001610663565b8161152957506000610663565b816001811461153f576002811461154957611565565b6001915050610663565b60ff84111561155a5761155a611231565b50506001821b610663565b5060208310610133831016604e8410600b8410161715611588575081810a610663565b61159283836114ca565b80600019048211156115a6576115a6611231565b029392505050565b6000610660838361150d56fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a2646970667358221220f1c72b5d122780ba8333648dfe0d627969bfb8bc91f367921a0575488bfda9cc64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x9E2F9084 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x9E2F9084 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0xA035B1FE EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0xDF78ABE6 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x93232D9F EQ PUSH2 0x19F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4357855E GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x4357855E EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x43E1CA49 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x50ED6A95 EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x350844CE EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x38AF3EED EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x403A7761 EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0xE SLOAD PUSH2 0x123 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x112D JUMP JUMPDEST PUSH2 0x1F7 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x166 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x37F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x123 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x42D JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1AD CALLDATASIZE PUSH1 0x4 PUSH2 0x112D JUMP JUMPDEST PUSH2 0x57C JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x1C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x114F JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1168 JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x1198 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x9721E7802F825C56833DB455A0081C7DD8C7DA03ED285E582C2AF90DD7D442C0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2AD SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x2C2 DUP3 PUSH3 0x186A0 PUSH2 0x654 JUMP JUMPDEST PUSH1 0x8 SSTORE PUSH2 0x2CD PUSH2 0x669 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2EA PUSH1 0xA SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x73F JUMP JUMPDEST SWAP1 POP PUSH2 0x32C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x19D95D PUSH1 0xEA SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15BB PUSH1 0x4C SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x764 JUMP JUMPDEST PUSH2 0x36D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1607 PUSH1 0x2F SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x764 JUMP JUMPDEST PUSH2 0x379 DUP2 PUSH1 0xC SLOAD PUSH2 0x782 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP3 AND CALLER SWAP1 DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x435 PUSH2 0x79C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x449 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 PUSH2 0x100 SWAP1 DIV SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A5 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 0x4C9 SWAP2 SWAP1 PUSH2 0x11E0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x514 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 0x538 SWAP2 SWAP1 PUSH2 0x11F9 JUMP JUMPDEST PUSH2 0x579 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x2AB730B13632903A37903A3930B739B332B9 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x1198 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x2E48C207BBE18CA424EAE69CA096BADB69CC821F8CB72B42F49599F3390A3B1C DUP4 PUSH1 0x40 MLOAD PUSH2 0x629 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x9 DUP3 SWAP1 SSTORE PUSH2 0x63E PUSH2 0x7F1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x64B PUSH2 0x79C JUMP JUMPDEST PUSH2 0x579 DUP2 PUSH2 0x8B5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x660 DUP3 DUP5 PUSH2 0x1247 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x680 PUSH1 0xB SLOAD ADDRESS PUSH4 0x93232D9F PUSH1 0xE0 SHL PUSH2 0x73F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x68F PUSH1 0x8 SLOAD PUSH2 0x95F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x69F SWAP2 SWAP1 PUSH2 0x127F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH3 0x19D95D PUSH1 0xEA SHL PUSH1 0x20 DUP4 ADD MSTORE SWAP2 POP PUSH2 0x6D0 SWAP1 DUP4 SWAP1 DUP4 PUSH2 0x764 JUMP JUMPDEST PUSH2 0x72C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x13 DUP2 MSTORE PUSH1 0x20 ADD PUSH19 0x1C995CDC1BDB9CD94B199A585D105B5BDD5B9D PUSH1 0x6A SHL DUP2 MSTORE POP DUP5 PUSH2 0x764 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x738 DUP3 PUSH1 0xC SLOAD PUSH2 0x782 JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x747 PUSH2 0x10F2 JUMP JUMPDEST PUSH2 0x74F PUSH2 0x10F2 JUMP JUMPDEST PUSH2 0x75B DUP2 DUP7 DUP7 DUP7 PUSH2 0x9F2 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x773 SWAP1 DUP4 PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x63E SWAP1 DUP3 PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x660 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0xA4F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x805 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP1 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x85C 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 0x880 SWAP2 SWAP1 PUSH2 0x11E0 JUMP JUMPDEST SUB PUSH2 0x8A8 JUMPI PUSH1 0x8 SLOAD NUMBER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x90D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x96C DUP4 PUSH2 0xAE2 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x98C JUMPI PUSH2 0x98C PUSH2 0x13A8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x9B6 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x9C0 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x9FA PUSH2 0x10F2 JUMP JUMPDEST PUSH2 0xA0A DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0xBBA JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xA45 DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0xC1F JUMP JUMPDEST PUSH2 0x63E DUP3 DUP3 PUSH2 0xD2E JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xA60 DUP2 PUSH1 0x1 PUSH2 0x13BE JUMP JUMPDEST PUSH1 0x4 SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0xA98 SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x13FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0xAD8 DUP7 DUP4 DUP7 DUP5 PUSH2 0xD55 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xB21 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xB4D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xB6B JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xB83 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xB97 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xBA9 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x663 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xBDA PUSH1 0x20 DUP4 PUSH2 0x1465 JUMP JUMPDEST ISZERO PUSH2 0xC02 JUMPI PUSH2 0xBEA PUSH1 0x20 DUP4 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0xBF5 SWAP1 PUSH1 0x20 PUSH2 0x1479 JUMP JUMPDEST PUSH2 0xBFF SWAP1 DUP4 PUSH2 0x13BE JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xC44 JUMPI PUSH2 0x2CD DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xC82 JUMPI PUSH2 0xC6B DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xEB3 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0xED8 JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xCC1 JUMPI PUSH2 0xCAA DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xEB3 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0xED8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xD02 JUMPI PUSH2 0xCEB DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xEB3 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0xED8 JUMP JUMPDEST PUSH2 0xD17 DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xEB3 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0xED8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x660 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xEFE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0xE18 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x148C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE37 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 0xE5B SWAP2 SWAP1 PUSH2 0x11F9 JUMP JUMPDEST PUSH2 0xA30 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x660 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xA30 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0xF21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0xF30 DUP4 DUP7 PUSH2 0x13BE JUMP JUMPDEST GT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF63 DUP6 PUSH2 0xF53 DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0xF4E SWAP2 SWAP1 PUSH2 0x13BE JUMP JUMPDEST PUSH2 0x10C4 JUMP JUMPDEST PUSH2 0xF5E SWAP1 PUSH1 0x2 PUSH2 0x14B3 JUMP JUMPDEST PUSH2 0x10DB JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0xF82 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0xFC2 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0xFA1 PUSH1 0x20 DUP4 PUSH2 0x13BE JUMP JUMPDEST SWAP2 POP PUSH2 0xFAE PUSH1 0x20 DUP3 PUSH2 0x13BE JUMP JUMPDEST SWAP1 POP PUSH2 0xFBB PUSH1 0x20 DUP6 PUSH2 0x1479 JUMP JUMPDEST SWAP4 POP PUSH2 0xF8A JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x101D JUMPI PUSH2 0x101D DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0xF5E SWAP2 SWAP1 PUSH2 0x14B3 JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 SUB PUSH2 0x1039 JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x1067 DUP6 DUP5 PUSH2 0x13BE JUMP JUMPDEST GT ISZERO PUSH2 0x107B JUMPI PUSH2 0x107B DUP6 PUSH2 0xF53 DUP7 DUP6 PUSH2 0x13BE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x108B DUP5 PUSH2 0x100 PUSH2 0x15AE JUMP JUMPDEST PUSH2 0x1095 SWAP2 SWAP1 PUSH2 0x1479 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0x10B9 JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x10D5 JUMPI POP DUP2 PUSH2 0x663 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x10E7 DUP4 DUP4 PUSH2 0xBBA JUMP JUMPDEST POP PUSH2 0x2CD DUP4 DUP3 PUSH2 0xD2E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1161 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x117A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x40 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x120B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1256 JUMPI PUSH2 0x1256 PUSH2 0x121B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1276 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x125E JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x68747470733A2F2F6170692D7374672E7472616E73616B2E636F6D2F6170692F DUP2 MSTORE PUSH32 0x76322F63757272656E636965732F70726963653F706172746E65724170694B65 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x793D30363235323566302D383536622D343330322D396434382D386236393062 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x623565363334266669617443757272656E63793D5553442663727970746F4375 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x7272656E63793D4554482669734275794F7253656C6C3D425559266E6574776F PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x726B3D657468657265756D267061796D656E744D6574686F643D637265646974 PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x5F64656269745F636172642666696174416D6F756E743D000000000000000000 PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x139B DUP2 PUSH1 0xD7 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x125B JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0xD7 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x1231 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x13E9 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x125B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1456 DUP4 DUP3 ADD DUP6 PUSH2 0x13D1 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1474 JUMPI PUSH2 0x1474 PUSH2 0x121B JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x1231 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x75B PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x13D1 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x1231 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0x1505 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x14EB JUMPI PUSH2 0x14EB PUSH2 0x1231 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0x14F8 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0x14CF JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x151C JUMPI POP PUSH1 0x1 PUSH2 0x663 JUMP JUMPDEST DUP2 PUSH2 0x1529 JUMPI POP PUSH1 0x0 PUSH2 0x663 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x153F JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1549 JUMPI PUSH2 0x1565 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x663 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x155A JUMPI PUSH2 0x155A PUSH2 0x1231 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x663 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1588 JUMPI POP DUP2 DUP2 EXP PUSH2 0x663 JUMP JUMPDEST PUSH2 0x1592 DUP4 DUP4 PUSH2 0x14CA JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x15A6 JUMPI PUSH2 0x15A6 PUSH2 0x1231 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x660 DUP4 DUP4 PUSH2 0x150D JUMP INVALID PUSH9 0x747470733A2F2F7465 PUSH20 0x746170692E696F2F6170692F48617964656E2F76 BALANCE 0x2F PUSH2 0x6363 PUSH16 0x756E74732F7075622D39393838373736 CALLDATASIZE CALLDATALOAD CALLDATALOAD CALLVALUE CALLVALUE CALLER CALLER ORIGIN ORIGIN 0x2F PUSH15 0x6574776F726B5265706F7274726F77 0x2C PUSH14 0x657472696356616C7565732C4553 SLOAD 0x49 0x4D COINBASE SLOAD GASLIMIT DIFFICULTY 0x5F GASLIMIT COINBASE MSTORE 0x4E 0x49 0x4E SELFBALANCE MSTORE8 0x2C PUSH14 0x6963726F7356616C7565A2646970 PUSH7 0x7358221220F1C7 0x2B 0x5D SLT 0x27 DUP1 0xBA DUP4 CALLER PUSH5 0x8DFE0D6279 PUSH10 0xBFB8BC91F367921A0575 BASEFEE DUP12 REVERT 0xA9 0xCC PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"288:4849:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:27;;;;;;;;;160:25:19;;;148:2;133:18;677:27:18;;;;;;;;1032:26;;;;;;;;-1:-1:-1;;;;;1032:26:18;;;;;;-1:-1:-1;;;;;360:32:19;;;342:51;;330:2;315:18;1032:26:18;196:203:19;649:22:18;;;;;;2827:389;;;;;;:::i;:::-;;:::i;:::-;;791:22;;;;;;;;;;;;822:14:19;;815:22;797:41;;785:2;770:18;791:22:18;657:187:19;2173:573:18;;;:::i;1016:265:3:-;;;:::i;1332:81::-;1401:7;;-1:-1:-1;;;;;1401:7:3;1332:81;;4554:259:18;;;:::i;4030:373::-;;;;;;:::i;:::-;;:::i;736:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;562:20;;;;;;466:22;;;;;;826:98:3;;;;;;:::i;:::-;;:::i;2827:389:18:-;11663:28:1;;;;:17;:28;;;;;;;;-1:-1:-1;;;;;11663:28:1;11649:10;:42;11641:95;;;;-1:-1:-1;;;11641:95:1;;;;;;;:::i;:::-;;;;;;;;;11749:28;;;;:17;:28;;;;;;11742:35;;-1:-1:-1;;;;;;11742:35:1;;;11788:29;11767:9;;11788:29;;;2980:10:18::1;2965:36;2992:8;2965:36;;;;160:25:19::0;;148:2;133:18;;14:177;2965:36:18::1;;;;;;;;3143:29;3156:8;3165:6;3143:12;:29::i;:::-;3133:7;:39:::0;3182:27:::1;:25;:27::i;:::-;;2827:389:::0;;;:::o;2173:573::-;2219:17;2248:28;2279:114;2314:7;;2343:4;2362:21;;;2279;:114::i;:::-;2248:145;;2457:128;;;;;;;;;;;;;;-1:-1:-1;;;2457:128:18;;;;;;;;;;;;;;;;;;;;:3;;:128;:7;:128::i;:::-;2596:66;;;;;;;;;;;;;;-1:-1:-1;;;2596:66:18;;;;;;;;;;;;;;;;;;;;:3;;:66;:7;:66::i;:::-;2709:30;2730:3;2735;;2709:20;:30::i;:::-;2702:37;;;2173:573;:::o;1016:265:3:-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;2118:2:19;1067:63:3;;;2100:21:19;2157:2;2137:18;;;2130:30;-1:-1:-1;;;2176:18:19;;;2169:52;2238:18;;1067:63:3;1916:346:19;1067:63:3;1156:7;;;-1:-1:-1;;;;;;1169:20:3;;;1179:10;1169:20;;;;;;1195:14;:27;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;1156:7;;1234:42;;1137:16;;1234:42;1061:220;1016:265::o;4554:259:18:-;1956:20:3;:18;:20::i;:::-;4605:23:18::1;4650;9184:6:1::0;;-1:-1:-1;;;;;9184:6:1;;9098:98;4650:23:18::1;4719:11;::::0;4732:29:::1;::::0;-1:-1:-1;;;4732:29:18;;4755:4:::1;4732:29;::::0;::::1;342:51:19::0;4605:69:18;;-1:-1:-1;;;;;;4705:13:18;;::::1;::::0;::::1;::::0;4719:11:::1;::::0;::::1;::::0;;::::1;::::0;4705:13;;4732:14:::1;::::0;315:18:19;;4732:29:18::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4705:57;::::0;-1:-1:-1;;;;;;4705:57:18::1;::::0;;;;;;-1:-1:-1;;;;;2648:32:19;;;4705:57:18::1;::::0;::::1;2630:51:19::0;2697:18;;;2690:34;2603:18;;4705:57:18::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4684:122;;;::::0;-1:-1:-1;;;4684:122:18;;3219:2:19;4684:122:18::1;::::0;::::1;3201:21:19::0;3258:2;3238:18;;;3231:30;-1:-1:-1;;;3277:18:19;;;3270:48;3335:18;;4684:122:18::1;3017:342:19::0;4684:122:18::1;4595:218;4554:259::o:0;4030:373::-;11663:28:1;;;;:17;:28;;;;;;;;-1:-1:-1;;;;;11663:28:1;11649:10;:42;11641:95;;;;-1:-1:-1;;;11641:95:1;;;;;;;:::i;:::-;11749:28;;;;:17;:28;;;;;;11742:35;;-1:-1:-1;;;;;;11742:35:1;;;11788:29;11767:9;;11788:29;;;4198:10:18::1;4178:39;4210:6;4178:39;;;;160:25:19::0;;148:2;133:18;;14:177;4178:39:18::1;;;;;;;;4349:5;:14:::0;;;4373:23:::1;:21;:23::i;:::-;4030:373:::0;;;:::o;826:98:3:-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;3850:96:16:-:0;3908:7;3934:5;3938:1;3934;:5;:::i;:::-;3927:12;;3850:96;;;;;:::o;3222:802:18:-;3276:17;3305:28;3336:131;3371:12;;3405:4;3424:33;;;3336:21;:131::i;:::-;3305:162;;3478:20;3744:25;3761:7;;3744:16;:25::i;:::-;3508:262;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3508:262:18;;;;;;3835:56;;;;;;;;;-1:-1:-1;;;3508:262:18;3835:56;;;3508:262;-1:-1:-1;3835:56:18;;:3;;3508:262;3835:7;:56::i;:::-;3902:38;;;;;;;;;;;;;;-1:-1:-1;;;3902:38:18;;;;;;;;;;;;;;;;-1:-1:-1;;;3902:38:18;;;:3;:7;;:38;;;;;:::i;:::-;3987:30;4008:3;4013;;3987:20;:30::i;:::-;3980:37;;;;3222:802;:::o;1850:283:1:-;1992:24;;:::i;:::-;2024:28;;:::i;:::-;2065:63;:3;2080:6;2088:12;2102:25;2065:14;:63::i;:::-;2058:70;1850:283;-1:-1:-1;;;;;1850:283:1:o;1951:175:0:-;2061:8;;;;:26;;2083:3;2061:21;:26::i;:::-;2093:8;;;;:28;;2115:5;2093:21;:28::i;2992:177:1:-;3140:8;;3087:7;;3109:55;;-1:-1:-1;;;;;3140:8:1;3151:3;3156:7;3109:22;:55::i;1730:111:3:-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;5063:2:19;1780:56:3;;;5045:21:19;5102:2;5082:18;;;5075:30;-1:-1:-1;;;5121:18:19;;;5114:52;5183:18;;1780:56:3;4861:346:19;1780:56:3;1730:111::o;4819:315:18:-;4870:23;4915;9184:6:1;;-1:-1:-1;;;;;9184:6:1;;9098:98;4915:23:18;4984:7;;4968:11;;4953:27;;-1:-1:-1;;;4953:27:18;;4968:11;;;;-1:-1:-1;;;;;4968:11:18;;;4953:27;;;342:51:19;4870:69:18;;-1:-1:-1;4984:7:18;;4953:14;;;;;315:18:19;;4953:27:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:38;4949:178;;5046:7;;5030:12;5015:28;;;;:14;:28;;;;;:38;5067:10;:17;;-1:-1:-1;;5067:17:18;5080:4;5067:17;;;4595:218:::1;4554:259::o:0;4949:178::-;5109:10;:18;;-1:-1:-1;;5109:18:18;;;4860:274;4819:315::o;1497:188:3:-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;5414:2:19;1551:52:3;;;5396:21:19;5453:2;5433:18;;;5426:30;5492:25;5472:18;;;5465:53;5535:18;;1551:52:3;5212:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;1668:7;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;;1641:39:3;1497:188;:::o;447:696:14:-;503:13;552:14;569:17;580:5;569:10;:17::i;:::-;589:1;569:21;552:38;;604:20;638:6;627:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;627:18:14;-1:-1:-1;604:41:14;-1:-1:-1;765:28:14;;;781:2;765:28;820:280;-1:-1:-1;;851:5:14;-1:-1:-1;;;985:2:14;974:14;;969:30;851:5;956:44;1044:2;1035:11;;;-1:-1:-1;1064:21:14;820:280;1064:21;-1:-1:-1;1120:6:14;447:696;-1:-1:-1;;;447:696:14:o;987:351:0:-;1129:24;;:::i;:::-;1161:49;1182:4;:8;;;361:3;1161:20;:49::i;:::-;-1:-1:-1;;1216:15:0;;;-1:-1:-1;;;;;1237:35:0;;:20;;;:35;-1:-1:-1;;;;;;1278:38:0;;:23;;;:38;1216:4;987:351;;;;;;;:::o;2777:204:12:-;2875:71;2894:3;383:1;2931:5;2925:19;2875:18;:71::i;:::-;2952:24;:3;2969:5;2952:10;:24::i;3687:756:1:-;3864:14;;3823:17;;3901:9;3864:14;3909:1;3901:9;:::i;:::-;3884:14;:26;4245:6;;4280:22;;;;;4350:7;;;;:11;3946:421;;3916:27;;-1:-1:-1;;;3976:48:1;3946:421;;3916:27;;;;4245:6;4267:4;;4280:22;4310:5;;837:1;;3946:421;;;:::i;:::-;;;;-1:-1:-1;;3946:421:1;;;;;;;;;;;;;;-1:-1:-1;;;;;3946:421:1;-1:-1:-1;;;;;;3946:421:1;;;;;;;;;;;-1:-1:-1;4380:58:1;4392:13;4407:5;4414:7;3946:421;4380:11;:58::i;:::-;4373:65;3687:756;-1:-1:-1;;;;;;3687:756:1:o;10139:916:15:-;10192:7;;-1:-1:-1;;;10267:17:15;;10263:103;;-1:-1:-1;;;10304:17:15;;;-1:-1:-1;10349:2:15;10339:12;10263:103;10392:8;10383:5;:17;10379:103;;10429:8;10420:17;;;-1:-1:-1;10465:2:15;10455:12;10379:103;10508:8;10499:5;:17;10495:103;;10545:8;10536:17;;;-1:-1:-1;10581:2:15;10571:12;10495:103;10624:7;10615:5;:16;10611:100;;10660:7;10651:16;;;-1:-1:-1;10695:1:15;10685:11;10611:100;10737:7;10728:5;:16;10724:100;;10773:7;10764:16;;;-1:-1:-1;10808:1:15;10798:11;10724:100;10850:7;10841:5;:16;10837:100;;10886:7;10877:16;;;-1:-1:-1;10921:1:15;10911:11;10837:100;10963:7;10954:5;:16;10950:66;;11000:1;10990:11;11042:6;10139:916;-1:-1:-1;;10139:916:15:o;1001:399:11:-;-1:-1:-1;;;;;;;;;;;;;;;;;1100:13:11;1111:2;1100:8;:13;:::i;:::-;:18;1096:71;;1146:13;1157:2;1146:8;:13;:::i;:::-;1140:20;;:2;:20;:::i;:::-;1128:32;;;;:::i;:::-;;;1096:71;-1:-1:-1;1214:12:11;;;;:23;;;1277:4;1271:11;;1289:16;;;-1:-1:-1;1312:14:11;;1354:18;;;1346:27;1333:41;;1214:12;1001:399::o;682:625:12:-;803:2;794:5;:11;;;791:512;;815:44;:3;837:20;847:1;838:10;;;837:20;;;815:15;:44::i;791:512::-;885:4;876:5;:13;;;872:431;;899:41;:3;936:2;922:10;931:1;922:10;;;;921:17;899:15;:41::i;:::-;-1:-1:-1;948:23:12;:3;:23;;;969:1;948:13;:23::i;872:431::-;997:6;988:5;:15;;;984:319;;1013:41;:3;1050:2;1036:10;1045:1;1036:10;;;;1035:17;1013:15;:41::i;:::-;-1:-1:-1;1062:23:12;:3;:23;;;1083:1;1062:13;:23::i;984:319::-;1111:10;1102:5;:19;;;1098:205;;1131:41;:3;1168:2;1154:10;1163:1;1154:10;;;;1153:17;1131:15;:41::i;:::-;-1:-1:-1;1180:23:12;:3;:23;;;1201:1;1180:13;:23::i;1098:205::-;1224:41;:3;1261:2;1247:10;1256:1;1247:10;;;;1246:17;1224:15;:41::i;:::-;-1:-1:-1;1273:23:12;:3;:23;;;1294:1;1273:13;:23::i;4692:155:11:-;-1:-1:-1;;;;;;;;;;;;;;;;;4797:45:11;4803:3;4808;:7;;;:14;4824:4;4830;:11;4797:5;:45::i;6629:430:1:-;6818:29;;-1:-1:-1;;6835:4:1;7377:2:19;7373:15;7369:53;6818:29:1;;;7357:66:19;7439:12;;;7432:28;;;6771:17:1;;7476:12:19;;6818:29:1;;;;;;-1:-1:-1;;6818:29:1;;;;;;6808:40;;6818:29;6808:40;;;;6854:28;;;;:17;:28;;;;;;:44;;-1:-1:-1;;;;;;6854:44:1;-1:-1:-1;;;;;6854:44:1;;;;;6808:40;;-1:-1:-1;6808:40:1;;6909:29;;6854:28;6909:29;6952:6;;:62;;-1:-1:-1;;;6952:62:1;;-1:-1:-1;;;;;6952:6:1;;;;:22;;:62;;6975:13;;6990:7;;6999:14;;6952:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6944:110;;;;-1:-1:-1;;;6944:110:1;;8091:2:19;6944:110:1;;;8073:21:19;8130:2;8110:18;;;8103:30;8169:34;8149:18;;;8142:62;-1:-1:-1;;;8220:18:19;;;8213:33;8263:19;;6944:110:1;7889:399:19;6040:145:11;-1:-1:-1;;;;;;;;;;;;;;;;;6143:37:11;6154:3;6159;:7;;;:14;6175:4;6143:10;:37::i;9894:177::-;-1:-1:-1;;;;;;;;;;;;;;;;;10026:40:11;10035:3;10040;:7;;;:14;10056:4;10062:3;10026:8;:40::i;2745:1210::-;-1:-1:-1;;;;;;;;;;;;;;;;;2903:4:11;:11;2896:3;:18;;2888:27;;;;;;2938:12;;;;2926:9;2932:3;2926;:9;:::i;:::-;:24;2922:90;;;2960:45;2967:3;2972:28;2976:3;:12;;;2996:3;2990;:9;;;;:::i;:::-;2972:3;:28::i;:::-;:32;;3003:1;2972:32;:::i;:::-;2960:6;:45::i;:::-;3018:12;3036:11;3133:3;3127:10;3204:6;3198:13;3320:3;3315:2;3307:6;3303:15;3299:25;3291:33;;3404:6;3398:3;3393;3389:13;3386:25;3383:76;;;3446:3;3441;3437:13;3429:6;3422:29;3383:76;-1:-1:-1;;;3483:2:11;3473:13;;3544:129;3558:2;3551:3;:9;3544:129;;3613:10;;3600:24;;3639:10;3647:2;3607:4;3639:10;:::i;:::-;;-1:-1:-1;3657:9:11;3664:2;3657:9;;:::i;:::-;;-1:-1:-1;3562:9:11;3569:2;3562:9;;:::i;:::-;;;3544:129;;;3807:10;3858:11;;-1:-1:-1;;3747:2:11;:8;;;3741:3;:15;3740:21;3854:22;;;3819:9;;3803:26;;;;3898:21;3885:35;;-1:-1:-1;3947:3:11;2745:1210;;;;;;:::o;5148:639::-;-1:-1:-1;;;;;;;;;;;;;;;;;5283:3:11;:12;;;5276:3;:19;5272:69;;5305:29;5312:3;5317;:12;;;5332:1;5317:16;;;;:::i;5305:29::-;5427:3;5421:10;5498:6;5492:13;5610:2;5604:3;5596:6;5592:16;5588:25;5634:4;5628;5620:19;;5705:6;5700:3;5697:15;5694:67;;5750:1;5742:6;5738:14;5730:6;5723:30;5694:67;-1:-1:-1;5779:3:11;;5148:639;-1:-1:-1;;;;5148:639:11:o;8974:675::-;-1:-1:-1;;;;;;;;;;;;;;;;;9130:12:11;;;;9118:9;9124:3;9118;:9;:::i;:::-;:24;9114:73;;;9152:28;9159:3;9165:9;9171:3;9165;:9;:::i;9152:28::-;9193:12;9221:1;9209:8;9214:3;9209;:8;:::i;:::-;9208:14;;;;:::i;:::-;9193:29;;9308:3;9302:10;9423:3;9417;9409:6;9405:16;9401:26;9479:4;9471;9467:9;9460:4;9454:11;9450:27;9447:37;9441:4;9434:51;;9567:6;9561:13;9555:3;9550;9546:13;9543:32;9540:83;;;9610:3;9605;9601:13;9593:6;9586:29;9540:83;-1:-1:-1;9641:3:11;;8974:675;-1:-1:-1;;;;;8974:675:11:o;1961:124::-;2018:7;2041:1;2037;:5;2033:34;;;-1:-1:-1;2059:1:11;2052:8;;2033:34;-1:-1:-1;2079:1:11;1961:124;-1:-1:-1;1961:124:11:o;1801:156::-;1895:7;;1908:19;1895:3;1918:8;1908:4;:19::i;:::-;;1933;1940:3;1945:6;1933;:19::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;404:248:19:-;472:6;480;533:2;521:9;512:7;508:23;504:32;501:52;;;549:1;546;539:12;501:52;-1:-1:-1;;572:23:19;;;642:2;627:18;;;614:32;;-1:-1:-1;404:248:19:o;849:180::-;908:6;961:2;949:9;940:7;936:23;932:32;929:52;;;977:1;974;967:12;929:52;-1:-1:-1;1000:23:19;;849:180;-1:-1:-1;849:180:19:o;1216:286::-;1275:6;1328:2;1316:9;1307:7;1303:23;1299:32;1296:52;;;1344:1;1341;1334:12;1296:52;1370:23;;-1:-1:-1;;;;;1422:31:19;;1412:42;;1402:70;;1468:1;1465;1458:12;1402:70;1491:5;1216:286;-1:-1:-1;;;1216:286:19:o;1507:404::-;1709:2;1691:21;;;1748:2;1728:18;;;1721:30;1787:34;1782:2;1767:18;;1760:62;-1:-1:-1;;;1853:2:19;1838:18;;1831:38;1901:3;1886:19;;1507:404::o;2267:184::-;2337:6;2390:2;2378:9;2369:7;2365:23;2361:32;2358:52;;;2406:1;2403;2396:12;2358:52;-1:-1:-1;2429:16:19;;2267:184;-1:-1:-1;2267:184:19:o;2735:277::-;2802:6;2855:2;2843:9;2834:7;2830:23;2826:32;2823:52;;;2871:1;2868;2861:12;2823:52;2903:9;2897:16;2956:5;2949:13;2942:21;2935:5;2932:32;2922:60;;2978:1;2975;2968:12;3364:127;3425:10;3420:3;3416:20;3413:1;3406:31;3456:4;3453:1;3446:15;3480:4;3477:1;3470:15;3496:127;3557:10;3552:3;3548:20;3545:1;3538:31;3588:4;3585:1;3578:15;3612:4;3609:1;3602:15;3628:120;3668:1;3694;3684:35;;3699:18;;:::i;:::-;-1:-1:-1;3733:9:19;;3628:120::o;3753:250::-;3838:1;3848:113;3862:6;3859:1;3856:13;3848:113;;;3938:11;;;3932:18;3919:11;;;3912:39;3884:2;3877:10;3848:113;;;-1:-1:-1;;3995:1:19;3977:16;;3970:27;3753:250::o;4008:848::-;4270:34;4265:3;4258:47;4335:34;4330:2;4325:3;4321:12;4314:56;4400:34;4395:2;4390:3;4386:12;4379:56;4465:34;4460:2;4455:3;4451:12;4444:56;4531:34;4525:3;4520;4516:13;4509:57;4597:34;4591:3;4586;4582:13;4575:57;4663:25;4657:3;4652;4648:13;4641:48;4240:3;4718:6;4712:13;4734:74;4801:6;4795:3;4790;4786:13;4781:2;4773:6;4769:15;4734:74;:::i;:::-;4828:16;;;;4846:3;4824:26;;4008:848;-1:-1:-1;;4008:848:19:o;5564:127::-;5625:10;5620:3;5616:20;5613:1;5606:31;5656:4;5653:1;5646:15;5680:4;5677:1;5670:15;5696:125;5761:9;;;5782:10;;;5779:36;;;5795:18;;:::i;5826:270::-;5867:3;5905:5;5899:12;5932:6;5927:3;5920:19;5948:76;6017:6;6010:4;6005:3;6001:14;5994:4;5987:5;5983:16;5948:76;:::i;:::-;6078:2;6057:15;-1:-1:-1;;6053:29:19;6044:39;;;;6085:4;6040:50;;5826:270;-1:-1:-1;;5826:270:19:o;6101:821::-;-1:-1:-1;;;;;6502:15:19;;;6484:34;;6549:2;6534:18;;6527:34;;;6592:2;6577:18;;6570:34;;;6640:15;;6635:2;6620:18;;6613:43;-1:-1:-1;;;;;;6693:33:19;;6687:3;6672:19;;6665:62;6464:3;6743:19;;6736:35;;;6802:3;6787:19;;6780:35;;;6434:3;6709;6831:19;;6824:31;;;6405:4;;6872:44;6897:18;;;6889:6;6872:44;:::i;:::-;6864:52;6101:821;-1:-1:-1;;;;;;;;;;;6101:821:19:o;6927:112::-;6959:1;6985;6975:35;;6990:18;;:::i;:::-;-1:-1:-1;7024:9:19;;6927:112::o;7044:128::-;7111:9;;;7132:11;;;7129:37;;;7146:18;;:::i;7499:385::-;7731:1;7727;7722:3;7718:11;7714:19;7706:6;7702:32;7691:9;7684:51;7771:6;7766:2;7755:9;7751:18;7744:34;7814:2;7809;7798:9;7794:18;7787:30;7665:4;7834:44;7874:2;7863:9;7859:18;7851:6;7834:44;:::i;8293:168::-;8366:9;;;8397;;8414:15;;;8408:22;;8394:37;8384:71;;8435:18;;:::i;8466:422::-;8555:1;8598:5;8555:1;8612:270;8633:7;8623:8;8620:21;8612:270;;;8692:4;8688:1;8684:6;8680:17;8674:4;8671:27;8668:53;;;8701:18;;:::i;:::-;8751:7;8741:8;8737:22;8734:55;;;8771:16;;;;8734:55;8850:22;;;;8810:15;;;;8612:270;;;8616:3;8466:422;;;;;:::o;8893:806::-;8942:5;8972:8;8962:80;;-1:-1:-1;9013:1:19;9027:5;;8962:80;9061:4;9051:76;;-1:-1:-1;9098:1:19;9112:5;;9051:76;9143:4;9161:1;9156:59;;;;9229:1;9224:130;;;;9136:218;;9156:59;9186:1;9177:10;;9200:5;;;9224:130;9261:3;9251:8;9248:17;9245:43;;;9268:18;;:::i;:::-;-1:-1:-1;;9324:1:19;9310:16;;9339:5;;9136:218;;9438:2;9428:8;9425:16;9419:3;9413:4;9410:13;9406:36;9400:2;9390:8;9387:16;9382:2;9376:4;9373:12;9369:35;9366:77;9363:159;;;-1:-1:-1;9475:19:19;;;9507:5;;9363:159;9554:34;9579:8;9573:4;9554:34;:::i;:::-;9624:6;9620:1;9616:6;9612:19;9603:7;9600:32;9597:58;;;9635:18;;:::i;:::-;9673:20;;8893:806;-1:-1:-1;;;8893:806:19:o;9704:131::-;9764:5;9793:36;9820:8;9814:4;9793:36;:::i"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","beneficiary()":"38af3eed","earning()":"df78abe6","earningReports(uint256)":"9e2f9084","fulfill(bytes32,uint256)":"4357855e","fulfillTransakPrice(bytes32,uint256)":"93232d9f","ggJobId()":"403a7761","isEligible()":"43e1ca49","owner()":"8da5cb5b","price()":"a035b1fe","requestWeekEarning()":"50ed6a95","transakJobId()":"350844ce","transferOwnership(address)":"f2fde38b","withdrawLink()":"8dc654a2"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"RequestBoughtAmount\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"earning\",\"type\":\"uint256\"}],\"name\":\"RequestEarning\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beneficiary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"earning\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"earningReports\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_earning\",\"type\":\"uint256\"}],\"name\":\"fulfill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"fulfillTransakPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ggJobId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isEligible\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestWeekEarning\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transakJobId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawLink\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"beneficiary()\":{\"notice\":\"@beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it In this 0xSplits contract will contain the list of charity organizations' addresses\"},\"constructor\":{\"notice\":\"Initialize the link token and target oracle Mumbai Testnet details: Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 jobId: b1d42cd54a3a4200b1f725a68e488888\"},\"fulfill(bytes32,uint256)\":{\"notice\":\"Receive the response in the form of uint256\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"requestWeekEarning()\":{\"notice\":\"Create a Chainlink request to retrieve API response, find the target data, then multiply by 1000000000000000000 (to remove decimal places from data).\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"},\"withdrawLink()\":{\"notice\":\"Allow withdraw of Link tokens from the contract LINK will always be sent to beneficiary 0xSplits contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/AdmodConsumer.sol\":\"AdmodConsumer\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":{\"keccak256\":\"0x99d0b0786fe368970009c703f2249bfbc56340ddf1a28b60d2915bb58c34cd72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0371c1af45db651823b9a3d5af761b08243c78f105166342eee28de356c8dd\",\"dweb:/ipfs/QmPnC9qNDKwJFd5unwLb9pxjrutoe8MWjm5EXHTxq2kJ4x\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x58b21219689909c4f8339af00813760337f7e2e7f169a97fe49e2896dcfb3b9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8e012e946dec20e59f2d4446f4b44bb098f3fa8bac103b1b5112fff777447b\",\"dweb:/ipfs/QmVTooKWcLkJ9W68yNX4MgdrbAKiAXwuRN9A7f4NkdcdtQ\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"contracts/AdmodConsumer.sol\":{\"keccak256\":\"0x88580279dd8d4da3cd529f2fb9bf3e306e38c6b31f034bfc2ff90b4c872e165f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6288cecd2d42556f704361c007b789363780789f605bcb5c01be178c60c2ff40\",\"dweb:/ipfs/QmUxpKURd2QdLZSzKRp48wykVpxPqgRtsinNqKHaPGUv19\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/build-info/d951a07aa61d2207e90859c4cbb7e474.json b/artifacts/build-info/d951a07aa61d2207e90859c4cbb7e474.json new file mode 100644 index 0000000..fdb532d --- /dev/null +++ b/artifacts/build-info/d951a07aa61d2207e90859c4cbb7e474.json @@ -0,0 +1 @@ +{"id":"d951a07aa61d2207e90859c4cbb7e474","_format":"hh-sol-build-info-1","solcVersion":"0.8.17","solcLongVersion":"0.8.17+commit.8df45f5f","input":{"language":"Solidity","sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {CBORChainlink} from \"./vendor/CBORChainlink.sol\";\nimport {BufferChainlink} from \"./vendor/BufferChainlink.sol\";\n\n/**\n * @title Library for common Chainlink functions\n * @dev Uses imported CBOR library for encoding to buffer\n */\nlibrary Chainlink {\n uint256 internal constant defaultBufferSize = 256; // solhint-disable-line const-name-snakecase\n\n using CBORChainlink for BufferChainlink.buffer;\n\n struct Request {\n bytes32 id;\n address callbackAddress;\n bytes4 callbackFunctionId;\n uint256 nonce;\n BufferChainlink.buffer buf;\n }\n\n /**\n * @notice Initializes a Chainlink request\n * @dev Sets the ID, callback address, and callback function signature on the request\n * @param self The uninitialized request\n * @param jobId The Job Specification ID\n * @param callbackAddr The callback address\n * @param callbackFunc The callback function signature\n * @return The initialized request\n */\n function initialize(\n Request memory self,\n bytes32 jobId,\n address callbackAddr,\n bytes4 callbackFunc\n ) internal pure returns (Chainlink.Request memory) {\n BufferChainlink.init(self.buf, defaultBufferSize);\n self.id = jobId;\n self.callbackAddress = callbackAddr;\n self.callbackFunctionId = callbackFunc;\n return self;\n }\n\n /**\n * @notice Sets the data for the buffer without encoding CBOR on-chain\n * @dev CBOR can be closed with curly-brackets {} or they can be left off\n * @param self The initialized request\n * @param data The CBOR data\n */\n function setBuffer(Request memory self, bytes memory data) internal pure {\n BufferChainlink.init(self.buf, data.length);\n BufferChainlink.append(self.buf, data);\n }\n\n /**\n * @notice Adds a string value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The string value to add\n */\n function add(\n Request memory self,\n string memory key,\n string memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeString(value);\n }\n\n /**\n * @notice Adds a bytes value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The bytes value to add\n */\n function addBytes(\n Request memory self,\n string memory key,\n bytes memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeBytes(value);\n }\n\n /**\n * @notice Adds a int256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The int256 value to add\n */\n function addInt(\n Request memory self,\n string memory key,\n int256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeInt(value);\n }\n\n /**\n * @notice Adds a uint256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The uint256 value to add\n */\n function addUint(\n Request memory self,\n string memory key,\n uint256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeUInt(value);\n }\n\n /**\n * @notice Adds an array of strings to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param values The array of string values to add\n */\n function addStringArray(\n Request memory self,\n string memory key,\n string[] memory values\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.startArray();\n for (uint256 i = 0; i < values.length; i++) {\n self.buf.encodeString(values[i]);\n }\n self.buf.endSequence();\n }\n}\n"},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./Chainlink.sol\";\nimport \"./interfaces/ENSInterface.sol\";\nimport \"./interfaces/LinkTokenInterface.sol\";\nimport \"./interfaces/ChainlinkRequestInterface.sol\";\nimport \"./interfaces/OperatorInterface.sol\";\nimport \"./interfaces/PointerInterface.sol\";\nimport {ENSResolver as ENSResolver_Chainlink} from \"./vendor/ENSResolver.sol\";\n\n/**\n * @title The ChainlinkClient contract\n * @notice Contract writers can inherit this contract in order to create requests for the\n * Chainlink network\n */\nabstract contract ChainlinkClient {\n using Chainlink for Chainlink.Request;\n\n uint256 internal constant LINK_DIVISIBILITY = 10**18;\n uint256 private constant AMOUNT_OVERRIDE = 0;\n address private constant SENDER_OVERRIDE = address(0);\n uint256 private constant ORACLE_ARGS_VERSION = 1;\n uint256 private constant OPERATOR_ARGS_VERSION = 2;\n bytes32 private constant ENS_TOKEN_SUBNAME = keccak256(\"link\");\n bytes32 private constant ENS_ORACLE_SUBNAME = keccak256(\"oracle\");\n address private constant LINK_TOKEN_POINTER = 0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571;\n\n ENSInterface private s_ens;\n bytes32 private s_ensNode;\n LinkTokenInterface private s_link;\n OperatorInterface private s_oracle;\n uint256 private s_requestCount = 1;\n mapping(bytes32 => address) private s_pendingRequests;\n\n event ChainlinkRequested(bytes32 indexed id);\n event ChainlinkFulfilled(bytes32 indexed id);\n event ChainlinkCancelled(bytes32 indexed id);\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackAddr address to operate the callback on\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildChainlinkRequest(\n bytes32 specId,\n address callbackAddr,\n bytes4 callbackFunctionSignature\n ) internal pure returns (Chainlink.Request memory) {\n Chainlink.Request memory req;\n return req.initialize(specId, callbackAddr, callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildOperatorRequest(bytes32 specId, bytes4 callbackFunctionSignature)\n internal\n view\n returns (Chainlink.Request memory)\n {\n Chainlink.Request memory req;\n return req.initialize(specId, address(this), callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev Calls `chainlinkRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendChainlinkRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n ChainlinkRequestInterface.oracleRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n address(this),\n req.callbackFunctionId,\n nonce,\n ORACLE_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev This function supports multi-word response\n * @dev Calls `sendOperatorRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendOperatorRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev This function supports multi-word response\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n OperatorInterface.operatorRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n req.callbackFunctionId,\n nonce,\n OPERATOR_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Make a request to an oracle\n * @param oracleAddress The address of the oracle for the request\n * @param nonce used to generate the request ID\n * @param payment The amount of LINK to send for the request\n * @param encodedRequest data encoded for request type specific format\n * @return requestId The request ID\n */\n function _rawRequest(\n address oracleAddress,\n uint256 nonce,\n uint256 payment,\n bytes memory encodedRequest\n ) private returns (bytes32 requestId) {\n requestId = keccak256(abi.encodePacked(this, nonce));\n s_pendingRequests[requestId] = oracleAddress;\n emit ChainlinkRequested(requestId);\n require(s_link.transferAndCall(oracleAddress, payment, encodedRequest), \"unable to transferAndCall to oracle\");\n }\n\n /**\n * @notice Allows a request to be cancelled if it has not been fulfilled\n * @dev Requires keeping track of the expiration value emitted from the oracle contract.\n * Deletes the request from the `pendingRequests` mapping.\n * Emits ChainlinkCancelled event.\n * @param requestId The request ID\n * @param payment The amount of LINK sent for the request\n * @param callbackFunc The callback function specified for the request\n * @param expiration The time of the expiration for the request\n */\n function cancelChainlinkRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunc,\n uint256 expiration\n ) internal {\n OperatorInterface requested = OperatorInterface(s_pendingRequests[requestId]);\n delete s_pendingRequests[requestId];\n emit ChainlinkCancelled(requestId);\n requested.cancelOracleRequest(requestId, payment, callbackFunc, expiration);\n }\n\n /**\n * @notice the next request count to be used in generating a nonce\n * @dev starts at 1 in order to ensure consistent gas cost\n * @return returns the next request count to be used in a nonce\n */\n function getNextRequestCount() internal view returns (uint256) {\n return s_requestCount;\n }\n\n /**\n * @notice Sets the stored oracle address\n * @param oracleAddress The address of the oracle contract\n */\n function setChainlinkOracle(address oracleAddress) internal {\n s_oracle = OperatorInterface(oracleAddress);\n }\n\n /**\n * @notice Sets the LINK token address\n * @param linkAddress The address of the LINK token contract\n */\n function setChainlinkToken(address linkAddress) internal {\n s_link = LinkTokenInterface(linkAddress);\n }\n\n /**\n * @notice Sets the Chainlink token address for the public\n * network as given by the Pointer contract\n */\n function setPublicChainlinkToken() internal {\n setChainlinkToken(PointerInterface(LINK_TOKEN_POINTER).getAddress());\n }\n\n /**\n * @notice Retrieves the stored address of the LINK token\n * @return The address of the LINK token\n */\n function chainlinkTokenAddress() internal view returns (address) {\n return address(s_link);\n }\n\n /**\n * @notice Retrieves the stored address of the oracle contract\n * @return The address of the oracle contract\n */\n function chainlinkOracleAddress() internal view returns (address) {\n return address(s_oracle);\n }\n\n /**\n * @notice Allows for a request which was created on another contract to be fulfilled\n * on this contract\n * @param oracleAddress The address of the oracle contract that will fulfill the request\n * @param requestId The request ID used for the response\n */\n function addChainlinkExternalRequest(address oracleAddress, bytes32 requestId) internal notPendingRequest(requestId) {\n s_pendingRequests[requestId] = oracleAddress;\n }\n\n /**\n * @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n * @dev Accounts for subnodes having different resolvers\n * @param ensAddress The address of the ENS contract\n * @param node The ENS node hash\n */\n function useChainlinkWithENS(address ensAddress, bytes32 node) internal {\n s_ens = ENSInterface(ensAddress);\n s_ensNode = node;\n bytes32 linkSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_TOKEN_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(linkSubnode));\n setChainlinkToken(resolver.addr(linkSubnode));\n updateChainlinkOracleWithENS();\n }\n\n /**\n * @notice Sets the stored oracle contract with the address resolved by ENS\n * @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously\n */\n function updateChainlinkOracleWithENS() internal {\n bytes32 oracleSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_ORACLE_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(oracleSubnode));\n setChainlinkOracle(resolver.addr(oracleSubnode));\n }\n\n /**\n * @notice Ensures that the fulfillment is valid for this contract\n * @dev Use if the contract developer prefers methods instead of modifiers for validation\n * @param requestId The request ID for fulfillment\n */\n function validateChainlinkCallback(bytes32 requestId)\n internal\n recordChainlinkFulfillment(requestId)\n // solhint-disable-next-line no-empty-blocks\n {\n\n }\n\n /**\n * @dev Reverts if the sender is not the oracle of the request.\n * Emits ChainlinkFulfilled event.\n * @param requestId The request ID for fulfillment\n */\n modifier recordChainlinkFulfillment(bytes32 requestId) {\n require(msg.sender == s_pendingRequests[requestId], \"Source must be the oracle of the request\");\n delete s_pendingRequests[requestId];\n emit ChainlinkFulfilled(requestId);\n _;\n }\n\n /**\n * @dev Reverts if the request is already pending\n * @param requestId The request ID for fulfillment\n */\n modifier notPendingRequest(bytes32 requestId) {\n require(s_pendingRequests[requestId] == address(0), \"Request is already pending\");\n _;\n }\n}\n"},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./ConfirmedOwnerWithProposal.sol\";\n\n/**\n * @title The ConfirmedOwner contract\n * @notice A contract with helpers for basic contract ownership.\n */\ncontract ConfirmedOwner is ConfirmedOwnerWithProposal {\n constructor(address newOwner) ConfirmedOwnerWithProposal(newOwner, address(0)) {}\n}\n"},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./interfaces/OwnableInterface.sol\";\n\n/**\n * @title The ConfirmedOwner contract\n * @notice A contract with helpers for basic contract ownership.\n */\ncontract ConfirmedOwnerWithProposal is OwnableInterface {\n address private s_owner;\n address private s_pendingOwner;\n\n event OwnershipTransferRequested(address indexed from, address indexed to);\n event OwnershipTransferred(address indexed from, address indexed to);\n\n constructor(address newOwner, address pendingOwner) {\n require(newOwner != address(0), \"Cannot set owner to zero\");\n\n s_owner = newOwner;\n if (pendingOwner != address(0)) {\n _transferOwnership(pendingOwner);\n }\n }\n\n /**\n * @notice Allows an owner to begin transferring ownership to a new address,\n * pending.\n */\n function transferOwnership(address to) public override onlyOwner {\n _transferOwnership(to);\n }\n\n /**\n * @notice Allows an ownership transfer to be completed by the recipient.\n */\n function acceptOwnership() external override {\n require(msg.sender == s_pendingOwner, \"Must be proposed owner\");\n\n address oldOwner = s_owner;\n s_owner = msg.sender;\n s_pendingOwner = address(0);\n\n emit OwnershipTransferred(oldOwner, msg.sender);\n }\n\n /**\n * @notice Get the current owner\n */\n function owner() public view override returns (address) {\n return s_owner;\n }\n\n /**\n * @notice validate, transfer ownership, and emit relevant events\n */\n function _transferOwnership(address to) private {\n require(to != msg.sender, \"Cannot transfer to self\");\n\n s_pendingOwner = to;\n\n emit OwnershipTransferRequested(s_owner, to);\n }\n\n /**\n * @notice validate access\n */\n function _validateOwnership() internal view {\n require(msg.sender == s_owner, \"Only callable by owner\");\n }\n\n /**\n * @notice Reverts if called by anyone other than the contract owner.\n */\n modifier onlyOwner() {\n _validateOwnership();\n _;\n }\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ChainlinkRequestInterface {\n function oracleRequest(\n address sender,\n uint256 requestPrice,\n bytes32 serviceAgreementID,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function cancelOracleRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunctionId,\n uint256 expiration\n ) external;\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ENSInterface {\n // Logged when the owner of a node assigns a new owner to a subnode.\n event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);\n\n // Logged when the owner of a node transfers ownership to a new account.\n event Transfer(bytes32 indexed node, address owner);\n\n // Logged when the resolver for a node changes.\n event NewResolver(bytes32 indexed node, address resolver);\n\n // Logged when the TTL of a node changes\n event NewTTL(bytes32 indexed node, uint64 ttl);\n\n function setSubnodeOwner(\n bytes32 node,\n bytes32 label,\n address owner\n ) external;\n\n function setResolver(bytes32 node, address resolver) external;\n\n function setOwner(bytes32 node, address owner) external;\n\n function setTTL(bytes32 node, uint64 ttl) external;\n\n function owner(bytes32 node) external view returns (address);\n\n function resolver(bytes32 node) external view returns (address);\n\n function ttl(bytes32 node) external view returns (uint64);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface LinkTokenInterface {\n function allowance(address owner, address spender) external view returns (uint256 remaining);\n\n function approve(address spender, uint256 value) external returns (bool success);\n\n function balanceOf(address owner) external view returns (uint256 balance);\n\n function decimals() external view returns (uint8 decimalPlaces);\n\n function decreaseApproval(address spender, uint256 addedValue) external returns (bool success);\n\n function increaseApproval(address spender, uint256 subtractedValue) external;\n\n function name() external view returns (string memory tokenName);\n\n function symbol() external view returns (string memory tokenSymbol);\n\n function totalSupply() external view returns (uint256 totalTokensIssued);\n\n function transfer(address to, uint256 value) external returns (bool success);\n\n function transferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool success);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./OracleInterface.sol\";\nimport \"./ChainlinkRequestInterface.sol\";\n\ninterface OperatorInterface is OracleInterface, ChainlinkRequestInterface {\n function operatorRequest(\n address sender,\n uint256 payment,\n bytes32 specId,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function fulfillOracleRequest2(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes calldata data\n ) external returns (bool);\n\n function ownerTransferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function distributeFunds(address payable[] calldata receivers, uint256[] calldata amounts) external payable;\n\n function getAuthorizedSenders() external returns (address[] memory);\n\n function setAuthorizedSenders(address[] calldata senders) external;\n\n function getForwarder() external returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface OracleInterface {\n function fulfillOracleRequest(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes32 data\n ) external returns (bool);\n\n function isAuthorizedSender(address node) external view returns (bool);\n\n function withdraw(address recipient, uint256 amount) external;\n\n function withdrawable() external view returns (uint256);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface OwnableInterface {\n function owner() external returns (address);\n\n function transferOwnership(address recipient) external;\n\n function acceptOwnership() external;\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface PointerInterface {\n function getAddress() external view returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/**\n * @dev A library for working with mutable byte buffers in Solidity.\n *\n * Byte buffers are mutable and expandable, and provide a variety of primitives\n * for writing to them. At any time you can fetch a bytes object containing the\n * current contents of the buffer. The bytes object should not be stored between\n * operations, as it may change due to resizing of the buffer.\n */\nlibrary BufferChainlink {\n /**\n * @dev Represents a mutable buffer. Buffers have a current value (buf) and\n * a capacity. The capacity may be longer than the current value, in\n * which case it can be extended without the need to allocate more memory.\n */\n struct buffer {\n bytes buf;\n uint256 capacity;\n }\n\n /**\n * @dev Initializes a buffer with an initial capacity.\n * @param buf The buffer to initialize.\n * @param capacity The number of bytes of space to allocate the buffer.\n * @return The buffer, for chaining.\n */\n function init(buffer memory buf, uint256 capacity) internal pure returns (buffer memory) {\n if (capacity % 32 != 0) {\n capacity += 32 - (capacity % 32);\n }\n // Allocate space for the buffer data\n buf.capacity = capacity;\n assembly {\n let ptr := mload(0x40)\n mstore(buf, ptr)\n mstore(ptr, 0)\n mstore(0x40, add(32, add(ptr, capacity)))\n }\n return buf;\n }\n\n /**\n * @dev Initializes a new buffer from an existing bytes object.\n * Changes to the buffer may mutate the original value.\n * @param b The bytes object to initialize the buffer with.\n * @return A new buffer.\n */\n function fromBytes(bytes memory b) internal pure returns (buffer memory) {\n buffer memory buf;\n buf.buf = b;\n buf.capacity = b.length;\n return buf;\n }\n\n function resize(buffer memory buf, uint256 capacity) private pure {\n bytes memory oldbuf = buf.buf;\n init(buf, capacity);\n append(buf, oldbuf);\n }\n\n function max(uint256 a, uint256 b) private pure returns (uint256) {\n if (a > b) {\n return a;\n }\n return b;\n }\n\n /**\n * @dev Sets buffer length to 0.\n * @param buf The buffer to truncate.\n * @return The original buffer, for chaining..\n */\n function truncate(buffer memory buf) internal pure returns (buffer memory) {\n assembly {\n let bufptr := mload(buf)\n mstore(bufptr, 0)\n }\n return buf;\n }\n\n /**\n * @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The start offset to write to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n require(len <= data.length);\n\n if (off + len > buf.capacity) {\n resize(buf, max(buf.capacity, len + off) * 2);\n }\n\n uint256 dest;\n uint256 src;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Start address = buffer address + offset + sizeof(buffer length)\n dest := add(add(bufptr, 32), off)\n // Update buffer length if we're extending it\n if gt(add(len, off), buflen) {\n mstore(bufptr, add(len, off))\n }\n src := add(data, 32)\n }\n\n // Copy word-length chunks while possible\n for (; len >= 32; len -= 32) {\n assembly {\n mstore(dest, mload(src))\n }\n dest += 32;\n src += 32;\n }\n\n // Copy remaining bytes\n unchecked {\n uint256 mask = (256**(32 - len)) - 1;\n assembly {\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n }\n }\n\n return buf;\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function append(\n buffer memory buf,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, len);\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function append(buffer memory buf, bytes memory data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, data.length);\n }\n\n /**\n * @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write the byte at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeUint8(\n buffer memory buf,\n uint256 off,\n uint8 data\n ) internal pure returns (buffer memory) {\n if (off >= buf.capacity) {\n resize(buf, buf.capacity * 2);\n }\n\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Address = buffer address + sizeof(buffer length) + off\n let dest := add(add(bufptr, off), 32)\n mstore8(dest, data)\n // Update buffer length if we extended it\n if eq(off, buflen) {\n mstore(bufptr, add(buflen, 1))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendUint8(buffer memory buf, uint8 data) internal pure returns (buffer memory) {\n return writeUint8(buf, buf.buf.length, data);\n }\n\n /**\n * @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (left-aligned).\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes32 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n unchecked {\n uint256 mask = (256**len) - 1;\n // Right-align data\n data = data >> (8 * (32 - len));\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + sizeof(buffer length) + off + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n }\n return buf;\n }\n\n /**\n * @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeBytes20(\n buffer memory buf,\n uint256 off,\n bytes20 data\n ) internal pure returns (buffer memory) {\n return write(buf, off, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chhaining.\n */\n function appendBytes20(buffer memory buf, bytes20 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendBytes32(buffer memory buf, bytes32 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, 32);\n }\n\n /**\n * @dev Writes an integer to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (right-aligned).\n * @return The original buffer, for chaining.\n */\n function writeInt(\n buffer memory buf,\n uint256 off,\n uint256 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n uint256 mask = (256**len) - 1;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + off + sizeof(buffer length) + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the end of the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer.\n */\n function appendInt(\n buffer memory buf,\n uint256 data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return writeInt(buf, buf.buf.length, data, len);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.4.19;\n\nimport {BufferChainlink} from \"./BufferChainlink.sol\";\n\nlibrary CBORChainlink {\n using BufferChainlink for BufferChainlink.buffer;\n\n uint8 private constant MAJOR_TYPE_INT = 0;\n uint8 private constant MAJOR_TYPE_NEGATIVE_INT = 1;\n uint8 private constant MAJOR_TYPE_BYTES = 2;\n uint8 private constant MAJOR_TYPE_STRING = 3;\n uint8 private constant MAJOR_TYPE_ARRAY = 4;\n uint8 private constant MAJOR_TYPE_MAP = 5;\n uint8 private constant MAJOR_TYPE_TAG = 6;\n uint8 private constant MAJOR_TYPE_CONTENT_FREE = 7;\n\n uint8 private constant TAG_TYPE_BIGNUM = 2;\n uint8 private constant TAG_TYPE_NEGATIVE_BIGNUM = 3;\n\n function encodeFixedNumeric(BufferChainlink.buffer memory buf, uint8 major, uint64 value) private pure {\n if(value <= 23) {\n buf.appendUint8(uint8((major << 5) | value));\n } else if (value <= 0xFF) {\n buf.appendUint8(uint8((major << 5) | 24));\n buf.appendInt(value, 1);\n } else if (value <= 0xFFFF) {\n buf.appendUint8(uint8((major << 5) | 25));\n buf.appendInt(value, 2);\n } else if (value <= 0xFFFFFFFF) {\n buf.appendUint8(uint8((major << 5) | 26));\n buf.appendInt(value, 4);\n } else {\n buf.appendUint8(uint8((major << 5) | 27));\n buf.appendInt(value, 8);\n }\n }\n\n function encodeIndefiniteLengthType(BufferChainlink.buffer memory buf, uint8 major) private pure {\n buf.appendUint8(uint8((major << 5) | 31));\n }\n\n function encodeUInt(BufferChainlink.buffer memory buf, uint value) internal pure {\n if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, value);\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(value));\n }\n }\n\n function encodeInt(BufferChainlink.buffer memory buf, int value) internal pure {\n if(value < -0x10000000000000000) {\n encodeSignedBigNum(buf, value);\n } else if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, uint(value));\n } else if(value >= 0) {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(uint256(value)));\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_NEGATIVE_INT, uint64(uint256(-1 - value)));\n }\n }\n\n function encodeBytes(BufferChainlink.buffer memory buf, bytes memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_BYTES, uint64(value.length));\n buf.append(value);\n }\n\n function encodeBigNum(BufferChainlink.buffer memory buf, uint value) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_BIGNUM));\n encodeBytes(buf, abi.encode(value));\n }\n\n function encodeSignedBigNum(BufferChainlink.buffer memory buf, int input) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_NEGATIVE_BIGNUM));\n encodeBytes(buf, abi.encode(uint256(-1 - input)));\n }\n\n function encodeString(BufferChainlink.buffer memory buf, string memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_STRING, uint64(bytes(value).length));\n buf.append(bytes(value));\n }\n\n function startArray(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_ARRAY);\n }\n\n function startMap(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_MAP);\n }\n\n function endSequence(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_CONTENT_FREE);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nabstract contract ENSResolver {\n function addr(bytes32 node) public view virtual returns (address);\n}\n"},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol)\n\npragma solidity ^0.8.0;\n\n// CAUTION\n// This version of SafeMath should only be used with Solidity 0.8 or later,\n// because it relies on the compiler's built in overflow checks.\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations.\n *\n * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler\n * now has built in overflow checking.\n */\nlibrary SafeMath {\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 unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction 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 unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\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 unchecked {\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 /**\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 unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\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 unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\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 return a + b;\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 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 return a * b;\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.\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\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 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 unchecked {\n require(b <= a, errorMessage);\n return a - b;\n }\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 * 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 unchecked {\n require(b > 0, errorMessage);\n return a / b;\n }\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 unchecked {\n require(b > 0, errorMessage);\n return a % b;\n }\n }\n}\n"},"contracts/AdmodConsumer.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.17;\n\nimport \"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\";\nimport \"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\";\nimport \"@openzeppelin/contracts/utils/math/SafeMath.sol\";\n\ncontract AdmodConsumer is ChainlinkClient, ConfirmedOwner {\n using Chainlink for Chainlink.Request;\n\n using SafeMath for uint;\n\n\n // the earning amount of this week\n uint256 public earning;\n\n // the amount of LINK bought from Transak with $earning amount\n uint256 public price;\n \n // 2 separate jobId for google AdmodAPI and TransakAPI\n bytes32 public ggJobId;\n bytes32 public transakJobId;\n\n uint256 private fee;\n mapping(uint256 => uint256) public earningReports;\n bool public isEligible;\n\n /** \n * @notice\n * @beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it\n * In this 0xSplits contract will contain the list of charity organizations' addresses\n */\n address public beneficiary;\n\n event RequestEarning(bytes32 indexed requestId, uint256 earning);\n event RequestBoughtAmount(bytes32 indexed requestId, uint256 price);\n\n\n /**\n * @notice Initialize the link token and target oracle\n *\n * Mumbai Testnet details:\n * Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB\n * Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 \n * jobId: b1d42cd54a3a4200b1f725a68e488888\n *\n */\n constructor(address _owner, address _beneficiary) ConfirmedOwner(_owner) {\n setChainlinkToken(0x326C977E6efc84E512bB9C30f76E30c160eD06FB);\n setChainlinkOracle(0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5);\n ggJobId = \"b1d42cd54a3a4200b1f725a68e488888\";\n fee = (1 * LINK_DIVISIBILITY) / 10; // 0,1 * 10**18 (Varies by network and job)\n beneficiary = _beneficiary;\n isEligible = false;\n }\n\n /**\n * Create a Chainlink request to retrieve API response, find the target\n * data, then multiply by 1000000000000000000 (to remove decimal places from data).\n */\n function requestWeekEarning() public returns (bytes32 requestId) {\n Chainlink.Request memory req = buildChainlinkRequest(\n ggJobId,\n address(this),\n this.fulfill.selector\n );\n\n // Set the URL to perform the GET request on\n req.add(\n \"get\",\n \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\"\n );\n\n req.add(\"path\", \"row,metricValues,ESTIMATED_EARNINGS,microsValue\");\n\n // Sends the request\n return sendChainlinkRequest(req, fee);\n }\n\n /** @notice\n * Receive the response in the form of uint256\n */\n function fulfill(\n bytes32 _requestId,\n uint256 _earning\n ) public recordChainlinkFulfillment(_requestId) {\n emit RequestEarning(_requestId, _earning);\n /** \n @notice earning will be a total of earning this week subtract for Transak transaction fee\n */\n earning = SafeMath.div(_earning,100000);\n _requestTransakValidation();\n }\n\n function _requestTransakValidation() private returns (bytes32 requestId) {\n Chainlink.Request memory req = buildChainlinkRequest(\n transakJobId,\n address(this),\n this.fulfillTransakPrice.selector\n );\n\n string memory apiUrl = string(abi.encodePacked(\"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount=\", earning));\n\n // Set the URL to perform the GET request on\n req.add(\n \"get\",\n apiUrl\n );\n\n req.add(\"path\", \"row,metricValues,ESTIMATED_EARNINGS,microsValue\");\n\n // Sends the request\n return sendChainlinkRequest(req, fee);\n }\n\n function fulfillTransakPrice(\n bytes32 _requestId,\n uint256 _price\n ) public recordChainlinkFulfillment(_requestId) {\n emit RequestBoughtAmount(_requestId, _price);\n /** \n @notice earning will be a total of earning this week subtract for Transak transaction fee\n */\n price = _price;\n _checkEligibleEarning();\n }\n\n /** @notice\n * Allow withdraw of Link tokens from the contract\n * LINK will always be sent to beneficiary 0xSplits contract\n */\n\n function withdrawLink() public onlyOwner {\n LinkTokenInterface link = LinkTokenInterface(chainlinkTokenAddress());\n require(\n link.transfer(beneficiary, link.balanceOf(address(this))),\n \"Unable to transfer\"\n );\n }\n\n function _checkEligibleEarning() private {\n LinkTokenInterface link = LinkTokenInterface(chainlinkTokenAddress());\n if (link.balanceOf(beneficiary) == earning)\n {\n earningReports[block.number] = earning;\n isEligible = true;\n }\n else isEligible = false;\n }\n\n}"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268]},"id":269,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:0"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","file":"./vendor/CBORChainlink.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":2364,"src":"57:57:0","symbolAliases":[{"foreign":{"id":2,"name":"CBORChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2363,"src":"65:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./vendor/BufferChainlink.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":1917,"src":"115:61:0","symbolAliases":[{"foreign":{"id":4,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"123:15:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Chainlink","contractDependencies":[],"contractKind":"library","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"178:114:0","text":" @title Library for common Chainlink functions\n @dev Uses imported CBOR library for encoding to buffer"},"fullyImplemented":true,"id":268,"linearizedBaseContracts":[268],"name":"Chainlink","nameLocation":"301:9:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":9,"mutability":"constant","name":"defaultBufferSize","nameLocation":"341:17:0","nodeType":"VariableDeclaration","scope":268,"src":"315:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"323536","id":8,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"361:3:0","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"internal"},{"global":false,"id":13,"libraryName":{"id":10,"name":"CBORChainlink","nameLocations":["420:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":2363,"src":"420:13:0"},"nodeType":"UsingForDirective","src":"414:47:0","typeName":{"id":12,"nodeType":"UserDefinedTypeName","pathNode":{"id":11,"name":"BufferChainlink.buffer","nameLocations":["438:15:0","454:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"438:22:0"},"referencedDeclaration":1402,"src":"438:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"canonicalName":"Chainlink.Request","id":25,"members":[{"constant":false,"id":15,"mutability":"mutable","name":"id","nameLocation":"494:2:0","nodeType":"VariableDeclaration","scope":25,"src":"486:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14,"name":"bytes32","nodeType":"ElementaryTypeName","src":"486:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"callbackAddress","nameLocation":"510:15:0","nodeType":"VariableDeclaration","scope":25,"src":"502:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"502:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"538:18:0","nodeType":"VariableDeclaration","scope":25,"src":"531:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18,"name":"bytes4","nodeType":"ElementaryTypeName","src":"531:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"nonce","nameLocation":"570:5:0","nodeType":"VariableDeclaration","scope":25,"src":"562:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24,"mutability":"mutable","name":"buf","nameLocation":"604:3:0","nodeType":"VariableDeclaration","scope":25,"src":"581:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":23,"nodeType":"UserDefinedTypeName","pathNode":{"id":22,"name":"BufferChainlink.buffer","nameLocations":["581:15:0","597:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"581:22:0"},"referencedDeclaration":1402,"src":"581:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"name":"Request","nameLocation":"472:7:0","nodeType":"StructDefinition","scope":268,"src":"465:147:0","visibility":"public"},{"body":{"id":69,"nodeType":"Block","src":"1155:183:0","statements":[{"expression":{"arguments":[{"expression":{"id":44,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1182:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":45,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1187:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1182:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":46,"name":"defaultBufferSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9,"src":"1192:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1161:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":43,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1177:4:0","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"1161:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":48,"nodeType":"ExpressionStatement","src":"1161:49:0"},{"expression":{"id":53,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1216:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":51,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1221:2:0","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"1216:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"1226:5:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1216:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54,"nodeType":"ExpressionStatement","src":"1216:15:0"},{"expression":{"id":59,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1237:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":57,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1242:15:0","memberName":"callbackAddress","nodeType":"MemberAccess","referencedDeclaration":17,"src":"1237:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"1260:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1237:35:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":60,"nodeType":"ExpressionStatement","src":"1237:35:0"},{"expression":{"id":65,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":61,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1278:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":63,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1283:18:0","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"1278:23:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":64,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"1304:12:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1278:38:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":66,"nodeType":"ExpressionStatement","src":"1278:38:0"},{"expression":{"id":67,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1329:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":40,"id":68,"nodeType":"Return","src":"1322:11:0"}]},"documentation":{"id":26,"nodeType":"StructuredDocumentation","src":"616:368:0","text":" @notice Initializes a Chainlink request\n @dev Sets the ID, callback address, and callback function signature on the request\n @param self The uninitialized request\n @param jobId The Job Specification ID\n @param callbackAddr The callback address\n @param callbackFunc The callback function signature\n @return The initialized request"},"id":70,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"996:10:0","nodeType":"FunctionDefinition","parameters":{"id":36,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29,"mutability":"mutable","name":"self","nameLocation":"1027:4:0","nodeType":"VariableDeclaration","scope":70,"src":"1012:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":28,"nodeType":"UserDefinedTypeName","pathNode":{"id":27,"name":"Request","nameLocations":["1012:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1012:7:0"},"referencedDeclaration":25,"src":"1012:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":31,"mutability":"mutable","name":"jobId","nameLocation":"1045:5:0","nodeType":"VariableDeclaration","scope":70,"src":"1037:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":30,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1037:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33,"mutability":"mutable","name":"callbackAddr","nameLocation":"1064:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1056:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35,"mutability":"mutable","name":"callbackFunc","nameLocation":"1089:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1082:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":34,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1082:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1006:99:0"},"returnParameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70,"src":"1129:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":38,"nodeType":"UserDefinedTypeName","pathNode":{"id":37,"name":"Chainlink.Request","nameLocations":["1129:9:0","1139:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1129:17:0"},"referencedDeclaration":25,"src":"1129:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1128:26:0"},"scope":268,"src":"987:351:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":96,"nodeType":"Block","src":"1648:98:0","statements":[{"expression":{"arguments":[{"expression":{"id":82,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1675:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":83,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1680:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1675:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"id":84,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1685:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1690:6:0","memberName":"length","nodeType":"MemberAccess","src":"1685:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1654:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":81,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1670:4:0","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"1654:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":86,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":87,"nodeType":"ExpressionStatement","src":"1654:43:0"},{"expression":{"arguments":[{"expression":{"id":91,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1726:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":92,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1731:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1726:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":93,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1736:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":88,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1703:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:6:0","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"1703:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1703:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":95,"nodeType":"ExpressionStatement","src":"1703:38:0"}]},"documentation":{"id":71,"nodeType":"StructuredDocumentation","src":"1342:230:0","text":" @notice Sets the data for the buffer without encoding CBOR on-chain\n @dev CBOR can be closed with curly-brackets {} or they can be left off\n @param self The initialized request\n @param data The CBOR data"},"id":97,"implemented":true,"kind":"function","modifiers":[],"name":"setBuffer","nameLocation":"1584:9:0","nodeType":"FunctionDefinition","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"self","nameLocation":"1609:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1594:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":73,"nodeType":"UserDefinedTypeName","pathNode":{"id":72,"name":"Request","nameLocations":["1594:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1594:7:0"},"referencedDeclaration":25,"src":"1594:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":76,"mutability":"mutable","name":"data","nameLocation":"1628:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1615:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75,"name":"bytes","nodeType":"ElementaryTypeName","src":"1615:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1593:40:0"},"returnParameters":{"id":78,"nodeType":"ParameterList","parameters":[],"src":"1648:0:0"},"scope":268,"src":"1575:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":124,"nodeType":"Block","src":"2055:71:0","statements":[{"expression":{"arguments":[{"id":113,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2083:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":108,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2061:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2066:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2061:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2070:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2061:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2061:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":115,"nodeType":"ExpressionStatement","src":"2061:26:0"},{"expression":{"arguments":[{"id":121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"2115:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2093:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2098:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2093:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2102:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2093:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2093:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":123,"nodeType":"ExpressionStatement","src":"2093:28:0"}]},"documentation":{"id":98,"nodeType":"StructuredDocumentation","src":"1750:198:0","text":" @notice Adds a string value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The string value to add"},"id":125,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"1960:3:0","nodeType":"FunctionDefinition","parameters":{"id":106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"self","nameLocation":"1984:4:0","nodeType":"VariableDeclaration","scope":125,"src":"1969:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":100,"nodeType":"UserDefinedTypeName","pathNode":{"id":99,"name":"Request","nameLocations":["1969:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1969:7:0"},"referencedDeclaration":25,"src":"1969:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":103,"mutability":"mutable","name":"key","nameLocation":"2008:3:0","nodeType":"VariableDeclaration","scope":125,"src":"1994:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":102,"name":"string","nodeType":"ElementaryTypeName","src":"1994:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":105,"mutability":"mutable","name":"value","nameLocation":"2031:5:0","nodeType":"VariableDeclaration","scope":125,"src":"2017:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":104,"name":"string","nodeType":"ElementaryTypeName","src":"2017:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1963:77:0"},"returnParameters":{"id":107,"nodeType":"ParameterList","parameters":[],"src":"2055:0:0"},"scope":268,"src":"1951:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":152,"nodeType":"Block","src":"2437:70:0","statements":[{"expression":{"arguments":[{"id":141,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"2465:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":136,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2443:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2448:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2443:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2452:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2443:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":143,"nodeType":"ExpressionStatement","src":"2443:26:0"},{"expression":{"arguments":[{"id":149,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"2496:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":144,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2475:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2480:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2475:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2484:11:0","memberName":"encodeBytes","nodeType":"MemberAccess","referencedDeclaration":2227,"src":"2475:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2475:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":151,"nodeType":"ExpressionStatement","src":"2475:27:0"}]},"documentation":{"id":126,"nodeType":"StructuredDocumentation","src":"2130:196:0","text":" @notice Adds a bytes value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The bytes value to add"},"id":153,"implemented":true,"kind":"function","modifiers":[],"name":"addBytes","nameLocation":"2338:8:0","nodeType":"FunctionDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"self","nameLocation":"2367:4:0","nodeType":"VariableDeclaration","scope":153,"src":"2352:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":128,"nodeType":"UserDefinedTypeName","pathNode":{"id":127,"name":"Request","nameLocations":["2352:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2352:7:0"},"referencedDeclaration":25,"src":"2352:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":131,"mutability":"mutable","name":"key","nameLocation":"2391:3:0","nodeType":"VariableDeclaration","scope":153,"src":"2377:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":130,"name":"string","nodeType":"ElementaryTypeName","src":"2377:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"value","nameLocation":"2413:5:0","nodeType":"VariableDeclaration","scope":153,"src":"2400:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":132,"name":"bytes","nodeType":"ElementaryTypeName","src":"2400:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2346:76:0"},"returnParameters":{"id":135,"nodeType":"ParameterList","parameters":[],"src":"2437:0:0"},"scope":268,"src":"2329:178:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":180,"nodeType":"Block","src":"2812:68:0","statements":[{"expression":{"arguments":[{"id":169,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":159,"src":"2840:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":164,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2818:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2823:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2818:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2827:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2818:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":171,"nodeType":"ExpressionStatement","src":"2818:26:0"},{"expression":{"arguments":[{"id":177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"2869:5:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"expression":{"id":172,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2850:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2855:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2850:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2859:9:0","memberName":"encodeInt","nodeType":"MemberAccess","referencedDeclaration":2202,"src":"2850:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_int256_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":179,"nodeType":"ExpressionStatement","src":"2850:25:0"}]},"documentation":{"id":154,"nodeType":"StructuredDocumentation","src":"2511:198:0","text":" @notice Adds a int256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The int256 value to add"},"id":181,"implemented":true,"kind":"function","modifiers":[],"name":"addInt","nameLocation":"2721:6:0","nodeType":"FunctionDefinition","parameters":{"id":162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":157,"mutability":"mutable","name":"self","nameLocation":"2748:4:0","nodeType":"VariableDeclaration","scope":181,"src":"2733:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":156,"nodeType":"UserDefinedTypeName","pathNode":{"id":155,"name":"Request","nameLocations":["2733:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2733:7:0"},"referencedDeclaration":25,"src":"2733:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":159,"mutability":"mutable","name":"key","nameLocation":"2772:3:0","nodeType":"VariableDeclaration","scope":181,"src":"2758:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":158,"name":"string","nodeType":"ElementaryTypeName","src":"2758:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":161,"mutability":"mutable","name":"value","nameLocation":"2788:5:0","nodeType":"VariableDeclaration","scope":181,"src":"2781:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":160,"name":"int256","nodeType":"ElementaryTypeName","src":"2781:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2727:70:0"},"returnParameters":{"id":163,"nodeType":"ParameterList","parameters":[],"src":"2812:0:0"},"scope":268,"src":"2712:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":208,"nodeType":"Block","src":"3189:69:0","statements":[{"expression":{"arguments":[{"id":197,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":187,"src":"3217:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":192,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3195:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3200:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3195:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3204:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3195:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3195:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":199,"nodeType":"ExpressionStatement","src":"3195:26:0"},{"expression":{"arguments":[{"id":205,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"3247:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3227:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3232:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3227:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3236:10:0","memberName":"encodeUInt","nodeType":"MemberAccess","referencedDeclaration":2136,"src":"3227:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3227:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":207,"nodeType":"ExpressionStatement","src":"3227:26:0"}]},"documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"2884:200:0","text":" @notice Adds a uint256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The uint256 value to add"},"id":209,"implemented":true,"kind":"function","modifiers":[],"name":"addUint","nameLocation":"3096:7:0","nodeType":"FunctionDefinition","parameters":{"id":190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"self","nameLocation":"3124:4:0","nodeType":"VariableDeclaration","scope":209,"src":"3109:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":184,"nodeType":"UserDefinedTypeName","pathNode":{"id":183,"name":"Request","nameLocations":["3109:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3109:7:0"},"referencedDeclaration":25,"src":"3109:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":187,"mutability":"mutable","name":"key","nameLocation":"3148:3:0","nodeType":"VariableDeclaration","scope":209,"src":"3134:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":186,"name":"string","nodeType":"ElementaryTypeName","src":"3134:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":189,"mutability":"mutable","name":"value","nameLocation":"3165:5:0","nodeType":"VariableDeclaration","scope":209,"src":"3157:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":188,"name":"uint256","nodeType":"ElementaryTypeName","src":"3157:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3103:71:0"},"returnParameters":{"id":191,"nodeType":"ParameterList","parameters":[],"src":"3189:0:0"},"scope":268,"src":"3087:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":266,"nodeType":"Block","src":"3597:188:0","statements":[{"expression":{"arguments":[{"id":226,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":215,"src":"3625:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":221,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3603:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3608:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3603:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3612:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3603:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3603:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":228,"nodeType":"ExpressionStatement","src":"3603:26:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3635:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3640:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3635:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3644:10:0","memberName":"startArray","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"3635:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":235,"nodeType":"ExpressionStatement","src":"3635:21:0"},{"body":{"id":257,"nodeType":"Block","src":"3706:47:0","statements":[{"expression":{"arguments":[{"baseExpression":{"id":252,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3736:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":254,"indexExpression":{"id":253,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3743:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3736:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3714:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3719:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3714:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3723:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3714:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3714:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":256,"nodeType":"ExpressionStatement","src":"3714:32:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3682:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":241,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3686:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3693:6:0","memberName":"length","nodeType":"MemberAccess","src":"3686:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3682:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":258,"initializationExpression":{"assignments":[237],"declarations":[{"constant":false,"id":237,"mutability":"mutable","name":"i","nameLocation":"3675:1:0","nodeType":"VariableDeclaration","scope":258,"src":"3667:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":236,"name":"uint256","nodeType":"ElementaryTypeName","src":"3667:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":239,"initialValue":{"hexValue":"30","id":238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3679:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3667:13:0"},"loopExpression":{"expression":{"id":245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3701:3:0","subExpression":{"id":244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3701:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":246,"nodeType":"ExpressionStatement","src":"3701:3:0"},"nodeType":"ForStatement","src":"3662:91:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":259,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3758:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3763:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3758:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3767:11:0","memberName":"endSequence","nodeType":"MemberAccess","referencedDeclaration":2362,"src":"3758:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3758:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":265,"nodeType":"ExpressionStatement","src":"3758:22:0"}]},"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"3262:214:0","text":" @notice Adds an array of strings to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param values The array of string values to add"},"id":267,"implemented":true,"kind":"function","modifiers":[],"name":"addStringArray","nameLocation":"3488:14:0","nodeType":"FunctionDefinition","parameters":{"id":219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":213,"mutability":"mutable","name":"self","nameLocation":"3523:4:0","nodeType":"VariableDeclaration","scope":267,"src":"3508:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":212,"nodeType":"UserDefinedTypeName","pathNode":{"id":211,"name":"Request","nameLocations":["3508:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3508:7:0"},"referencedDeclaration":25,"src":"3508:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":215,"mutability":"mutable","name":"key","nameLocation":"3547:3:0","nodeType":"VariableDeclaration","scope":267,"src":"3533:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":214,"name":"string","nodeType":"ElementaryTypeName","src":"3533:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":218,"mutability":"mutable","name":"values","nameLocation":"3572:6:0","nodeType":"VariableDeclaration","scope":267,"src":"3556:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":216,"name":"string","nodeType":"ElementaryTypeName","src":"3556:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":217,"nodeType":"ArrayTypeName","src":"3556:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"3502:80:0"},"returnParameters":{"id":220,"nodeType":"ParameterList","parameters":[],"src":"3597:0:0"},"scope":268,"src":"3479:306:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":269,"src":"293:3494:0","usedErrors":[]}],"src":"32:3756:0"},"id":0},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[1076],"ENSInterface":[1156],"ENSResolver_Chainlink":[2373],"LinkTokenInterface":[1251],"OperatorInterface":[1331],"OracleInterface":[1370],"PointerInterface":[1394]},"id":862,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":270,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:1"},{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","file":"./Chainlink.sol","id":271,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":269,"src":"57:25:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","file":"./interfaces/ENSInterface.sol","id":272,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1157,"src":"83:39:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","file":"./interfaces/LinkTokenInterface.sol","id":273,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1252,"src":"123:45:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./interfaces/ChainlinkRequestInterface.sol","id":274,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1077,"src":"169:52:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","file":"./interfaces/OperatorInterface.sol","id":275,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1332,"src":"222:44:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","file":"./interfaces/PointerInterface.sol","id":276,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1395,"src":"267:43:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","file":"./vendor/ENSResolver.sol","id":278,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":2374,"src":"311:78:1","symbolAliases":[{"foreign":{"id":277,"name":"ENSResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"319:11:1","typeDescriptions":{}},"local":"ENSResolver_Chainlink","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"ChainlinkClient","contractDependencies":[],"contractKind":"contract","documentation":{"id":279,"nodeType":"StructuredDocumentation","src":"391:157:1","text":" @title The ChainlinkClient contract\n @notice Contract writers can inherit this contract in order to create requests for the\n Chainlink network"},"fullyImplemented":true,"id":861,"linearizedBaseContracts":[861],"name":"ChainlinkClient","nameLocation":"567:15:1","nodeType":"ContractDefinition","nodes":[{"global":false,"id":283,"libraryName":{"id":280,"name":"Chainlink","nameLocations":["593:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":268,"src":"593:9:1"},"nodeType":"UsingForDirective","src":"587:38:1","typeName":{"id":282,"nodeType":"UserDefinedTypeName","pathNode":{"id":281,"name":"Chainlink.Request","nameLocations":["607:9:1","617:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"607:17:1"},"referencedDeclaration":25,"src":"607:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"constant":true,"id":288,"mutability":"constant","name":"LINK_DIVISIBILITY","nameLocation":"655:17:1","nodeType":"VariableDeclaration","scope":861,"src":"629:52:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":284,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"675:2:1","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"679:2:1","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"675:6:1","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"internal"},{"constant":true,"id":291,"mutability":"constant","name":"AMOUNT_OVERRIDE","nameLocation":"710:15:1","nodeType":"VariableDeclaration","scope":861,"src":"685:44:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":289,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"728:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":297,"mutability":"constant","name":"SENDER_OVERRIDE","nameLocation":"758:15:1","nodeType":"VariableDeclaration","scope":861,"src":"733:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":292,"name":"address","nodeType":"ElementaryTypeName","src":"733:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"30","id":295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"784:1:1","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":294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"776:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":293,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:1","typeDescriptions":{}}},"id":296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"776:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":true,"id":300,"mutability":"constant","name":"ORACLE_ARGS_VERSION","nameLocation":"815:19:1","nodeType":"VariableDeclaration","scope":861,"src":"790:48:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":298,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":303,"mutability":"constant","name":"OPERATOR_ARGS_VERSION","nameLocation":"867:21:1","nodeType":"VariableDeclaration","scope":861,"src":"842:50:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint256","nodeType":"ElementaryTypeName","src":"842:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":308,"mutability":"constant","name":"ENS_TOKEN_SUBNAME","nameLocation":"921:17:1","nodeType":"VariableDeclaration","scope":861,"src":"896:62:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"896:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6c696e6b","id":306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"951:6:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""},"value":"link"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""}],"id":305,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"941:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"941:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":313,"mutability":"constant","name":"ENS_ORACLE_SUBNAME","nameLocation":"987:18:1","nodeType":"VariableDeclaration","scope":861,"src":"962:65:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"962:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6f7261636c65","id":311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1018:8:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""},"value":"oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""}],"id":310,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1008:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1008:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":316,"mutability":"constant","name":"LINK_TOKEN_POINTER","nameLocation":"1056:18:1","nodeType":"VariableDeclaration","scope":861,"src":"1031:88:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":314,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307843383962443445313633324433413433434230334141416435323632636265343033384263353731","id":315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571"},"visibility":"private"},{"constant":false,"id":319,"mutability":"mutable","name":"s_ens","nameLocation":"1145:5:1","nodeType":"VariableDeclaration","scope":861,"src":"1124:26:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"},"typeName":{"id":318,"nodeType":"UserDefinedTypeName","pathNode":{"id":317,"name":"ENSInterface","nameLocations":["1124:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":1156,"src":"1124:12:1"},"referencedDeclaration":1156,"src":"1124:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"visibility":"private"},{"constant":false,"id":321,"mutability":"mutable","name":"s_ensNode","nameLocation":"1170:9:1","nodeType":"VariableDeclaration","scope":861,"src":"1154:25:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1154:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":324,"mutability":"mutable","name":"s_link","nameLocation":"1210:6:1","nodeType":"VariableDeclaration","scope":861,"src":"1183:33:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"},"typeName":{"id":323,"nodeType":"UserDefinedTypeName","pathNode":{"id":322,"name":"LinkTokenInterface","nameLocations":["1183:18:1"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"1183:18:1"},"referencedDeclaration":1251,"src":"1183:18:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"visibility":"private"},{"constant":false,"id":327,"mutability":"mutable","name":"s_oracle","nameLocation":"1246:8:1","nodeType":"VariableDeclaration","scope":861,"src":"1220:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"},"typeName":{"id":326,"nodeType":"UserDefinedTypeName","pathNode":{"id":325,"name":"OperatorInterface","nameLocations":["1220:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":1331,"src":"1220:17:1"},"referencedDeclaration":1331,"src":"1220:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"visibility":"private"},{"constant":false,"id":330,"mutability":"mutable","name":"s_requestCount","nameLocation":"1274:14:1","nodeType":"VariableDeclaration","scope":861,"src":"1258:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":328,"name":"uint256","nodeType":"ElementaryTypeName","src":"1258:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1291:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":false,"id":334,"mutability":"mutable","name":"s_pendingRequests","nameLocation":"1332:17:1","nodeType":"VariableDeclaration","scope":861,"src":"1296:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":333,"keyType":{"id":331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1304:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1296:27:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":332,"name":"address","nodeType":"ElementaryTypeName","src":"1315:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"anonymous":false,"eventSelector":"b5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af9","id":338,"name":"ChainlinkRequested","nameLocation":"1360:18:1","nodeType":"EventDefinition","parameters":{"id":337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":336,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1395:2:1","nodeType":"VariableDeclaration","scope":338,"src":"1379:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1379:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1378:20:1"},"src":"1354:45:1"},{"anonymous":false,"eventSelector":"7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a","id":342,"name":"ChainlinkFulfilled","nameLocation":"1408:18:1","nodeType":"EventDefinition","parameters":{"id":341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":340,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1443:2:1","nodeType":"VariableDeclaration","scope":342,"src":"1427:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1427:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1426:20:1"},"src":"1402:45:1"},{"anonymous":false,"eventSelector":"e1fe3afa0f7f761ff0a8b89086790efd5140d2907ebd5b7ff6bfcb5e075fd4c5","id":346,"name":"ChainlinkCancelled","nameLocation":"1456:18:1","nodeType":"EventDefinition","parameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":344,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1491:2:1","nodeType":"VariableDeclaration","scope":346,"src":"1475:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1475:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1474:20:1"},"src":"1450:45:1"},{"body":{"id":372,"nodeType":"Block","src":"2018:115:1","statements":[{"assignments":[363],"declarations":[{"constant":false,"id":363,"mutability":"mutable","name":"req","nameLocation":"2049:3:1","nodeType":"VariableDeclaration","scope":372,"src":"2024:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":362,"nodeType":"UserDefinedTypeName","pathNode":{"id":361,"name":"Chainlink.Request","nameLocations":["2024:9:1","2034:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2024:17:1"},"referencedDeclaration":25,"src":"2024:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":364,"nodeType":"VariableDeclarationStatement","src":"2024:28:1"},{"expression":{"arguments":[{"id":367,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"2080:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":368,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"2088:12:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":369,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":353,"src":"2102:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":365,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"2065:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2069:10:1","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2065:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2065:63:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":358,"id":371,"nodeType":"Return","src":"2058:70:1"}]},"documentation":{"id":347,"nodeType":"StructuredDocumentation","src":"1499:348:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackAddr address to operate the callback on\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":373,"implemented":true,"kind":"function","modifiers":[],"name":"buildChainlinkRequest","nameLocation":"1859:21:1","nodeType":"FunctionDefinition","parameters":{"id":354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":349,"mutability":"mutable","name":"specId","nameLocation":"1894:6:1","nodeType":"VariableDeclaration","scope":373,"src":"1886:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1886:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":351,"mutability":"mutable","name":"callbackAddr","nameLocation":"1914:12:1","nodeType":"VariableDeclaration","scope":373,"src":"1906:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":350,"name":"address","nodeType":"ElementaryTypeName","src":"1906:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":353,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"1939:25:1","nodeType":"VariableDeclaration","scope":373,"src":"1932:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":352,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1932:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1880:88:1"},"returnParameters":{"id":358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":373,"src":"1992:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":356,"nodeType":"UserDefinedTypeName","pathNode":{"id":355,"name":"Chainlink.Request","nameLocations":["1992:9:1","2002:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1992:17:1"},"referencedDeclaration":25,"src":"1992:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1991:26:1"},"scope":861,"src":"1850:283:1","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":400,"nodeType":"Block","src":"2571:116:1","statements":[{"assignments":[388],"declarations":[{"constant":false,"id":388,"mutability":"mutable","name":"req","nameLocation":"2602:3:1","nodeType":"VariableDeclaration","scope":400,"src":"2577:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":387,"nodeType":"UserDefinedTypeName","pathNode":{"id":386,"name":"Chainlink.Request","nameLocations":["2577:9:1","2587:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2577:17:1"},"referencedDeclaration":25,"src":"2577:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":389,"nodeType":"VariableDeclarationStatement","src":"2577:28:1"},{"expression":{"arguments":[{"id":392,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"2633:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":395,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2649:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2641:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":393,"name":"address","nodeType":"ElementaryTypeName","src":"2641:7:1","typeDescriptions":{}}},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":397,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"2656:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":390,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"2618:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:10:1","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2618:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2618:64:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":383,"id":399,"nodeType":"Return","src":"2611:71:1"}]},"documentation":{"id":374,"nodeType":"StructuredDocumentation","src":"2137:288:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":401,"implemented":true,"kind":"function","modifiers":[],"name":"buildOperatorRequest","nameLocation":"2437:20:1","nodeType":"FunctionDefinition","parameters":{"id":379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":376,"mutability":"mutable","name":"specId","nameLocation":"2466:6:1","nodeType":"VariableDeclaration","scope":401,"src":"2458:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2458:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":378,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"2481:25:1","nodeType":"VariableDeclaration","scope":401,"src":"2474:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":377,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2474:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2457:50:1"},"returnParameters":{"id":383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":401,"src":"2543:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":381,"nodeType":"UserDefinedTypeName","pathNode":{"id":380,"name":"Chainlink.Request","nameLocations":["2543:9:1","2553:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2543:17:1"},"referencedDeclaration":25,"src":"2543:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"2542:26:1"},"scope":861,"src":"2428:259:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":421,"nodeType":"Block","src":"3096:73:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":415,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"3140:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3132:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":413,"name":"address","nodeType":"ElementaryTypeName","src":"3132:7:1","typeDescriptions":{}}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3132:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":417,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":405,"src":"3151:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":418,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":407,"src":"3156:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":412,"name":"sendChainlinkRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"3109:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3109:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":411,"id":420,"nodeType":"Return","src":"3102:62:1"}]},"documentation":{"id":402,"nodeType":"StructuredDocumentation","src":"2691:298:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev Calls `chainlinkRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":422,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequest","nameLocation":"3001:20:1","nodeType":"FunctionDefinition","parameters":{"id":408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":405,"mutability":"mutable","name":"req","nameLocation":"3047:3:1","nodeType":"VariableDeclaration","scope":422,"src":"3022:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":404,"nodeType":"UserDefinedTypeName","pathNode":{"id":403,"name":"Chainlink.Request","nameLocations":["3022:9:1","3032:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3022:17:1"},"referencedDeclaration":25,"src":"3022:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":407,"mutability":"mutable","name":"payment","nameLocation":"3060:7:1","nodeType":"VariableDeclaration","scope":422,"src":"3052:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":406,"name":"uint256","nodeType":"ElementaryTypeName","src":"3052:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:47:1"},"returnParameters":{"id":411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":422,"src":"3087:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3087:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3086:9:1"},"scope":861,"src":"2992:177:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":476,"nodeType":"Block","src":"3842:601:1","statements":[{"assignments":[436],"declarations":[{"constant":false,"id":436,"mutability":"mutable","name":"nonce","nameLocation":"3856:5:1","nodeType":"VariableDeclaration","scope":476,"src":"3848:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3848:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":438,"initialValue":{"id":437,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3864:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3848:30:1"},{"expression":{"id":443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":439,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3884:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":440,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"3901:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3909:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3901:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3884:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":444,"nodeType":"ExpressionStatement","src":"3884:26:1"},{"assignments":[446],"declarations":[{"constant":false,"id":446,"mutability":"mutable","name":"encodedRequest","nameLocation":"3929:14:1","nodeType":"VariableDeclaration","scope":476,"src":"3916:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":445,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":468,"initialValue":{"arguments":[{"expression":{"expression":{"id":449,"name":"ChainlinkRequestInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"3976:25:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ChainlinkRequestInterface_$1076_$","typeString":"type(contract ChainlinkRequestInterface)"}},"id":450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4002:13:1","memberName":"oracleRequest","nodeType":"MemberAccess","referencedDeclaration":1064,"src":"3976:39:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ChainlinkRequestInterface.oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes calldata)"}},"id":451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4016:8:1","memberName":"selector","nodeType":"MemberAccess","src":"3976:48:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":452,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"4032:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":453,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"4140:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":454,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4245:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4249:2:1","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"4245:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":458,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4267:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4259:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":456,"name":"address","nodeType":"ElementaryTypeName","src":"4259:7:1","typeDescriptions":{}}},"id":459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4259:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":460,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4280:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4284:18:1","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"4280:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":462,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4310:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":463,"name":"ORACLE_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":300,"src":"4323:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":464,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4350:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4354:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"4350:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4358:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4350:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3946:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3950:18:1","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3946:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3946:421:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3916:451:1"},{"expression":{"arguments":[{"id":470,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"4392:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":471,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4407:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":472,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"4414:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":473,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4423:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":469,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"4380:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":434,"id":475,"nodeType":"Return","src":"4373:65:1"}]},"documentation":{"id":423,"nodeType":"StructuredDocumentation","src":"3173:511:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":477,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequestTo","nameLocation":"3696:22:1","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":425,"mutability":"mutable","name":"oracleAddress","nameLocation":"3732:13:1","nodeType":"VariableDeclaration","scope":477,"src":"3724:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":424,"name":"address","nodeType":"ElementaryTypeName","src":"3724:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":428,"mutability":"mutable","name":"req","nameLocation":"3776:3:1","nodeType":"VariableDeclaration","scope":477,"src":"3751:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":427,"nodeType":"UserDefinedTypeName","pathNode":{"id":426,"name":"Chainlink.Request","nameLocations":["3751:9:1","3761:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3751:17:1"},"referencedDeclaration":25,"src":"3751:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"payment","nameLocation":"3793:7:1","nodeType":"VariableDeclaration","scope":477,"src":"3785:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":429,"name":"uint256","nodeType":"ElementaryTypeName","src":"3785:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3718:86:1"},"returnParameters":{"id":434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":433,"mutability":"mutable","name":"requestId","nameLocation":"3831:9:1","nodeType":"VariableDeclaration","scope":477,"src":"3823:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3823:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3822:19:1"},"scope":861,"src":"3687:756:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":497,"nodeType":"Block","src":"4907:72:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":491,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"4950:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4942:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":489,"name":"address","nodeType":"ElementaryTypeName","src":"4942:7:1","typeDescriptions":{}}},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4942:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":493,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"4961:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":494,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"4966:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":488,"name":"sendOperatorRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":549,"src":"4920:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4920:54:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":487,"id":496,"nodeType":"Return","src":"4913:61:1"}]},"documentation":{"id":478,"nodeType":"StructuredDocumentation","src":"4447:354:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev This function supports multi-word response\n @dev Calls `sendOperatorRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":498,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequest","nameLocation":"4813:19:1","nodeType":"FunctionDefinition","parameters":{"id":484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"req","nameLocation":"4858:3:1","nodeType":"VariableDeclaration","scope":498,"src":"4833:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":480,"nodeType":"UserDefinedTypeName","pathNode":{"id":479,"name":"Chainlink.Request","nameLocations":["4833:9:1","4843:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"4833:17:1"},"referencedDeclaration":25,"src":"4833:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":483,"mutability":"mutable","name":"payment","nameLocation":"4871:7:1","nodeType":"VariableDeclaration","scope":498,"src":"4863:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":482,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4832:47:1"},"returnParameters":{"id":487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":498,"src":"4898:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4898:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4897:9:1"},"scope":861,"src":"4804:175:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":548,"nodeType":"Block","src":"5704:576:1","statements":[{"assignments":[512],"declarations":[{"constant":false,"id":512,"mutability":"mutable","name":"nonce","nameLocation":"5718:5:1","nodeType":"VariableDeclaration","scope":548,"src":"5710:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":511,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":514,"initialValue":{"id":513,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5726:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5710:30:1"},{"expression":{"id":519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":515,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5746:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":516,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"5763:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5771:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5763:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5746:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":520,"nodeType":"ExpressionStatement","src":"5746:26:1"},{"assignments":[522],"declarations":[{"constant":false,"id":522,"mutability":"mutable","name":"encodedRequest","nameLocation":"5791:14:1","nodeType":"VariableDeclaration","scope":548,"src":"5778:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":521,"name":"bytes","nodeType":"ElementaryTypeName","src":"5778:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":540,"initialValue":{"arguments":[{"expression":{"expression":{"id":525,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"5838:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5856:15:1","memberName":"operatorRequest","nodeType":"MemberAccess","referencedDeclaration":1276,"src":"5838:33:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function OperatorInterface.operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes calldata)"}},"id":527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5872:8:1","memberName":"selector","nodeType":"MemberAccess","src":"5838:42:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":528,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"5888:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":529,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"5996:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":530,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6101:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6105:2:1","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"6101:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":532,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6115:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6119:18:1","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"6115:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":534,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6145:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":535,"name":"OPERATOR_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"6158:21:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":536,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6187:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6191:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"6187:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6195:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"6187:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":523,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5808:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5812:18:1","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"5808:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5808:396:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5778:426:1"},{"expression":{"arguments":[{"id":542,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"6229:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":543,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6244:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":544,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"6251:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":545,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"6260:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":541,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"6217:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6217:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":510,"id":547,"nodeType":"Return","src":"6210:65:1"}]},"documentation":{"id":499,"nodeType":"StructuredDocumentation","src":"4983:564:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev This function supports multi-word response\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":549,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequestTo","nameLocation":"5559:21:1","nodeType":"FunctionDefinition","parameters":{"id":507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":501,"mutability":"mutable","name":"oracleAddress","nameLocation":"5594:13:1","nodeType":"VariableDeclaration","scope":549,"src":"5586:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":500,"name":"address","nodeType":"ElementaryTypeName","src":"5586:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":504,"mutability":"mutable","name":"req","nameLocation":"5638:3:1","nodeType":"VariableDeclaration","scope":549,"src":"5613:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":503,"nodeType":"UserDefinedTypeName","pathNode":{"id":502,"name":"Chainlink.Request","nameLocations":["5613:9:1","5623:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"5613:17:1"},"referencedDeclaration":25,"src":"5613:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":506,"mutability":"mutable","name":"payment","nameLocation":"5655:7:1","nodeType":"VariableDeclaration","scope":549,"src":"5647:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":505,"name":"uint256","nodeType":"ElementaryTypeName","src":"5647:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5580:86:1"},"returnParameters":{"id":510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":509,"mutability":"mutable","name":"requestId","nameLocation":"5693:9:1","nodeType":"VariableDeclaration","scope":549,"src":"5685:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5685:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5684:19:1"},"scope":861,"src":"5550:730:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":593,"nodeType":"Block","src":"6790:269:1","statements":[{"expression":{"id":571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":563,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6796:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":567,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6835:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}},{"id":568,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"6841:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":565,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6818:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6822:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"6818:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":564,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6808:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6808:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6796:52:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":572,"nodeType":"ExpressionStatement","src":"6796:52:1"},{"expression":{"id":577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":573,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"6854:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":575,"indexExpression":{"id":574,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6872:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6854:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":576,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6885:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6854:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":578,"nodeType":"ExpressionStatement","src":"6854:44:1"},{"eventCall":{"arguments":[{"id":580,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6928:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":579,"name":"ChainlinkRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"6909:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6909:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":582,"nodeType":"EmitStatement","src":"6904:34:1"},{"expression":{"arguments":[{"arguments":[{"id":586,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6975:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":587,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"6990:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":588,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":558,"src":"6999:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":584,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"6952:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6959:15:1","memberName":"transferAndCall","nodeType":"MemberAccess","referencedDeclaration":1239,"src":"6952:22:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory) external returns (bool)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6952:62:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65","id":590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7016:37:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""},"value":"unable to transferAndCall to oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""}],"id":583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6944:7:1","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,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6944:110:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":592,"nodeType":"ExpressionStatement","src":"6944:110:1"}]},"documentation":{"id":550,"nodeType":"StructuredDocumentation","src":"6284:342:1","text":" @notice Make a request to an oracle\n @param oracleAddress The address of the oracle for the request\n @param nonce used to generate the request ID\n @param payment The amount of LINK to send for the request\n @param encodedRequest data encoded for request type specific format\n @return requestId The request ID"},"id":594,"implemented":true,"kind":"function","modifiers":[],"name":"_rawRequest","nameLocation":"6638:11:1","nodeType":"FunctionDefinition","parameters":{"id":559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":552,"mutability":"mutable","name":"oracleAddress","nameLocation":"6663:13:1","nodeType":"VariableDeclaration","scope":594,"src":"6655:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"6655:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":554,"mutability":"mutable","name":"nonce","nameLocation":"6690:5:1","nodeType":"VariableDeclaration","scope":594,"src":"6682:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":553,"name":"uint256","nodeType":"ElementaryTypeName","src":"6682:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":556,"mutability":"mutable","name":"payment","nameLocation":"6709:7:1","nodeType":"VariableDeclaration","scope":594,"src":"6701:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":555,"name":"uint256","nodeType":"ElementaryTypeName","src":"6701:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":558,"mutability":"mutable","name":"encodedRequest","nameLocation":"6735:14:1","nodeType":"VariableDeclaration","scope":594,"src":"6722:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":557,"name":"bytes","nodeType":"ElementaryTypeName","src":"6722:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6649:104:1"},"returnParameters":{"id":562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":561,"mutability":"mutable","name":"requestId","nameLocation":"6779:9:1","nodeType":"VariableDeclaration","scope":594,"src":"6771:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6771:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6770:19:1"},"scope":861,"src":"6629:430:1","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":633,"nodeType":"Block","src":"7713:250:1","statements":[{"assignments":[608],"declarations":[{"constant":false,"id":608,"mutability":"mutable","name":"requested","nameLocation":"7737:9:1","nodeType":"VariableDeclaration","scope":633,"src":"7719:27:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"},"typeName":{"id":607,"nodeType":"UserDefinedTypeName","pathNode":{"id":606,"name":"OperatorInterface","nameLocations":["7719:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":1331,"src":"7719:17:1"},"referencedDeclaration":1331,"src":"7719:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"visibility":"internal"}],"id":614,"initialValue":{"arguments":[{"baseExpression":{"id":610,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7767:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":612,"indexExpression":{"id":611,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7785:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7767:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":609,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"7749:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7749:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"nodeType":"VariableDeclarationStatement","src":"7719:77:1"},{"expression":{"id":618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7802:35:1","subExpression":{"baseExpression":{"id":615,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7809:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":617,"indexExpression":{"id":616,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7827:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7809:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":619,"nodeType":"ExpressionStatement","src":"7802:35:1"},{"eventCall":{"arguments":[{"id":621,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7867:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":620,"name":"ChainlinkCancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"7848:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7848:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":623,"nodeType":"EmitStatement","src":"7843:34:1"},{"expression":{"arguments":[{"id":627,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7913:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":628,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"7924:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":629,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":601,"src":"7933:12:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":630,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":603,"src":"7947:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":624,"name":"requested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"7883:9:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"id":626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7893:19:1","memberName":"cancelOracleRequest","nodeType":"MemberAccess","referencedDeclaration":1075,"src":"7883:29:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes4_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,bytes4,uint256) external"}},"id":631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7883:75:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":632,"nodeType":"ExpressionStatement","src":"7883:75:1"}]},"documentation":{"id":595,"nodeType":"StructuredDocumentation","src":"7063:509:1","text":" @notice Allows a request to be cancelled if it has not been fulfilled\n @dev Requires keeping track of the expiration value emitted from the oracle contract.\n Deletes the request from the `pendingRequests` mapping.\n Emits ChainlinkCancelled event.\n @param requestId The request ID\n @param payment The amount of LINK sent for the request\n @param callbackFunc The callback function specified for the request\n @param expiration The time of the expiration for the request"},"id":634,"implemented":true,"kind":"function","modifiers":[],"name":"cancelChainlinkRequest","nameLocation":"7584:22:1","nodeType":"FunctionDefinition","parameters":{"id":604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":597,"mutability":"mutable","name":"requestId","nameLocation":"7620:9:1","nodeType":"VariableDeclaration","scope":634,"src":"7612:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7612:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":599,"mutability":"mutable","name":"payment","nameLocation":"7643:7:1","nodeType":"VariableDeclaration","scope":634,"src":"7635:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7635:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":601,"mutability":"mutable","name":"callbackFunc","nameLocation":"7663:12:1","nodeType":"VariableDeclaration","scope":634,"src":"7656:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":600,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7656:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":603,"mutability":"mutable","name":"expiration","nameLocation":"7689:10:1","nodeType":"VariableDeclaration","scope":634,"src":"7681:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":602,"name":"uint256","nodeType":"ElementaryTypeName","src":"7681:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7606:97:1"},"returnParameters":{"id":605,"nodeType":"ParameterList","parameters":[],"src":"7713:0:1"},"scope":861,"src":"7575:388:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":642,"nodeType":"Block","src":"8238:32:1","statements":[{"expression":{"id":640,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"8251:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":639,"id":641,"nodeType":"Return","src":"8244:21:1"}]},"documentation":{"id":635,"nodeType":"StructuredDocumentation","src":"7967:205:1","text":" @notice the next request count to be used in generating a nonce\n @dev starts at 1 in order to ensure consistent gas cost\n @return returns the next request count to be used in a nonce"},"id":643,"implemented":true,"kind":"function","modifiers":[],"name":"getNextRequestCount","nameLocation":"8184:19:1","nodeType":"FunctionDefinition","parameters":{"id":636,"nodeType":"ParameterList","parameters":[],"src":"8203:2:1"},"returnParameters":{"id":639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":643,"src":"8229:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":637,"name":"uint256","nodeType":"ElementaryTypeName","src":"8229:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8228:9:1"},"scope":861,"src":"8175:95:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":655,"nodeType":"Block","src":"8451:54:1","statements":[{"expression":{"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":649,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"8457:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":651,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"8486:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":650,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"8468:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8468:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"src":"8457:43:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"id":654,"nodeType":"ExpressionStatement","src":"8457:43:1"}]},"documentation":{"id":644,"nodeType":"StructuredDocumentation","src":"8274:114:1","text":" @notice Sets the stored oracle address\n @param oracleAddress The address of the oracle contract"},"id":656,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkOracle","nameLocation":"8400:18:1","nodeType":"FunctionDefinition","parameters":{"id":647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":646,"mutability":"mutable","name":"oracleAddress","nameLocation":"8427:13:1","nodeType":"VariableDeclaration","scope":656,"src":"8419:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":645,"name":"address","nodeType":"ElementaryTypeName","src":"8419:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8418:23:1"},"returnParameters":{"id":648,"nodeType":"ParameterList","parameters":[],"src":"8451:0:1"},"scope":861,"src":"8391:114:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":668,"nodeType":"Block","src":"8682:51:1","statements":[{"expression":{"id":666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":662,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"8688:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":664,"name":"linkAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"8716:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":663,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"8697:18:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1251_$","typeString":"type(contract LinkTokenInterface)"}},"id":665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8697:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"src":"8688:40:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":667,"nodeType":"ExpressionStatement","src":"8688:40:1"}]},"documentation":{"id":657,"nodeType":"StructuredDocumentation","src":"8509:113:1","text":" @notice Sets the LINK token address\n @param linkAddress The address of the LINK token contract"},"id":669,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkToken","nameLocation":"8634:17:1","nodeType":"FunctionDefinition","parameters":{"id":660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":659,"mutability":"mutable","name":"linkAddress","nameLocation":"8660:11:1","nodeType":"VariableDeclaration","scope":669,"src":"8652:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":658,"name":"address","nodeType":"ElementaryTypeName","src":"8652:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8651:21:1"},"returnParameters":{"id":661,"nodeType":"ParameterList","parameters":[],"src":"8682:0:1"},"scope":861,"src":"8625:108:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":681,"nodeType":"Block","src":"8900:79:1","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":675,"name":"LINK_TOKEN_POINTER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"8941:18:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":674,"name":"PointerInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"8924:16:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PointerInterface_$1394_$","typeString":"type(contract PointerInterface)"}},"id":676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8924:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PointerInterface_$1394","typeString":"contract PointerInterface"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8961:10:1","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":1393,"src":"8924:47:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8924:49:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":673,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"8906:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8906:68:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":680,"nodeType":"ExpressionStatement","src":"8906:68:1"}]},"documentation":{"id":670,"nodeType":"StructuredDocumentation","src":"8737:116:1","text":" @notice Sets the Chainlink token address for the public\n network as given by the Pointer contract"},"id":682,"implemented":true,"kind":"function","modifiers":[],"name":"setPublicChainlinkToken","nameLocation":"8865:23:1","nodeType":"FunctionDefinition","parameters":{"id":671,"nodeType":"ParameterList","parameters":[],"src":"8888:2:1"},"returnParameters":{"id":672,"nodeType":"ParameterList","parameters":[],"src":"8900:0:1"},"scope":861,"src":"8856:123:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":693,"nodeType":"Block","src":"9163:33:1","statements":[{"expression":{"arguments":[{"id":690,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"9184:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}],"id":689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9176:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":688,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:1","typeDescriptions":{}}},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9176:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":687,"id":692,"nodeType":"Return","src":"9169:22:1"}]},"documentation":{"id":683,"nodeType":"StructuredDocumentation","src":"8983:112:1","text":" @notice Retrieves the stored address of the LINK token\n @return The address of the LINK token"},"id":694,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkTokenAddress","nameLocation":"9107:21:1","nodeType":"FunctionDefinition","parameters":{"id":684,"nodeType":"ParameterList","parameters":[],"src":"9128:2:1"},"returnParameters":{"id":687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":694,"src":"9154:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":685,"name":"address","nodeType":"ElementaryTypeName","src":"9154:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9153:9:1"},"scope":861,"src":"9098:98:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":705,"nodeType":"Block","src":"9391:35:1","statements":[{"expression":{"arguments":[{"id":702,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"9412:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9404:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"9404:7:1","typeDescriptions":{}}},"id":703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9404:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":699,"id":704,"nodeType":"Return","src":"9397:24:1"}]},"documentation":{"id":695,"nodeType":"StructuredDocumentation","src":"9200:122:1","text":" @notice Retrieves the stored address of the oracle contract\n @return The address of the oracle contract"},"id":706,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkOracleAddress","nameLocation":"9334:22:1","nodeType":"FunctionDefinition","parameters":{"id":696,"nodeType":"ParameterList","parameters":[],"src":"9356:2:1"},"returnParameters":{"id":699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":706,"src":"9382:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":697,"name":"address","nodeType":"ElementaryTypeName","src":"9382:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9381:9:1"},"scope":861,"src":"9325:101:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":723,"nodeType":"Block","src":"9819:55:1","statements":[{"expression":{"id":721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":717,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"9825:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":719,"indexExpression":{"id":718,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9843:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9825:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":720,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":709,"src":"9856:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9825:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":722,"nodeType":"ExpressionStatement","src":"9825:44:1"}]},"documentation":{"id":707,"nodeType":"StructuredDocumentation","src":"9430:269:1","text":" @notice Allows for a request which was created on another contract to be fulfilled\n on this contract\n @param oracleAddress The address of the oracle contract that will fulfill the request\n @param requestId The request ID used for the response"},"id":724,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":714,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9808:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":715,"kind":"modifierInvocation","modifierName":{"id":713,"name":"notPendingRequest","nameLocations":["9790:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":860,"src":"9790:17:1"},"nodeType":"ModifierInvocation","src":"9790:28:1"}],"name":"addChainlinkExternalRequest","nameLocation":"9711:27:1","nodeType":"FunctionDefinition","parameters":{"id":712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":709,"mutability":"mutable","name":"oracleAddress","nameLocation":"9747:13:1","nodeType":"VariableDeclaration","scope":724,"src":"9739:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":708,"name":"address","nodeType":"ElementaryTypeName","src":"9739:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":711,"mutability":"mutable","name":"requestId","nameLocation":"9770:9:1","nodeType":"VariableDeclaration","scope":724,"src":"9762:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9762:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9738:42:1"},"returnParameters":{"id":716,"nodeType":"ParameterList","parameters":[],"src":"9819:0:1"},"scope":861,"src":"9702:172:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":772,"nodeType":"Block","src":"10207:326:1","statements":[{"expression":{"id":736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":732,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10213:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":734,"name":"ensAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"10234:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":733,"name":"ENSInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"10221:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSInterface_$1156_$","typeString":"type(contract ENSInterface)"}},"id":735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10221:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"src":"10213:32:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":737,"nodeType":"ExpressionStatement","src":"10213:32:1"},{"expression":{"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":738,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10251:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":739,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":729,"src":"10263:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10251:16:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":741,"nodeType":"ExpressionStatement","src":"10251:16:1"},{"assignments":[743],"declarations":[{"constant":false,"id":743,"mutability":"mutable","name":"linkSubnode","nameLocation":"10281:11:1","nodeType":"VariableDeclaration","scope":772,"src":"10273:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10273:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":751,"initialValue":{"arguments":[{"arguments":[{"id":747,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10322:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":748,"name":"ENS_TOKEN_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":308,"src":"10333:17:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":745,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10305:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10309:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"10305:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10305:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":744,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10295:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10295:57:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10273:79:1"},{"assignments":[754],"declarations":[{"constant":false,"id":754,"mutability":"mutable","name":"resolver","nameLocation":"10380:8:1","nodeType":"VariableDeclaration","scope":772,"src":"10358:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"},"typeName":{"id":753,"nodeType":"UserDefinedTypeName","pathNode":{"id":752,"name":"ENSResolver_Chainlink","nameLocations":["10358:21:1"],"nodeType":"IdentifierPath","referencedDeclaration":2373,"src":"10358:21:1"},"referencedDeclaration":2373,"src":"10358:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":761,"initialValue":{"arguments":[{"arguments":[{"id":758,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10428:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":756,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10413:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10419:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":1148,"src":"10413:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10413:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":755,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"10391:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2373_$","typeString":"type(contract ENSResolver)"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10391:50:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10358:83:1"},{"expression":{"arguments":[{"arguments":[{"id":765,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10479:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":763,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":754,"src":"10465:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10474:4:1","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2372,"src":"10465:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10465:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":762,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"10447:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10447:45:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":768,"nodeType":"ExpressionStatement","src":"10447:45:1"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":769,"name":"updateChainlinkOracleWithENS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"10498:28:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10498:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":771,"nodeType":"ExpressionStatement","src":"10498:30:1"}]},"documentation":{"id":725,"nodeType":"StructuredDocumentation","src":"9878:254:1","text":" @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n @dev Accounts for subnodes having different resolvers\n @param ensAddress The address of the ENS contract\n @param node The ENS node hash"},"id":773,"implemented":true,"kind":"function","modifiers":[],"name":"useChainlinkWithENS","nameLocation":"10144:19:1","nodeType":"FunctionDefinition","parameters":{"id":730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":727,"mutability":"mutable","name":"ensAddress","nameLocation":"10172:10:1","nodeType":"VariableDeclaration","scope":773,"src":"10164:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":726,"name":"address","nodeType":"ElementaryTypeName","src":"10164:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":729,"mutability":"mutable","name":"node","nameLocation":"10192:4:1","nodeType":"VariableDeclaration","scope":773,"src":"10184:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10184:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10163:34:1"},"returnParameters":{"id":731,"nodeType":"ParameterList","parameters":[],"src":"10207:0:1"},"scope":861,"src":"10135:398:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":804,"nodeType":"Block","src":"10776:238:1","statements":[{"assignments":[778],"declarations":[{"constant":false,"id":778,"mutability":"mutable","name":"oracleSubnode","nameLocation":"10790:13:1","nodeType":"VariableDeclaration","scope":804,"src":"10782:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10782:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":786,"initialValue":{"arguments":[{"arguments":[{"id":782,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10833:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":783,"name":"ENS_ORACLE_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":313,"src":"10844:18:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10816:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10820:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"10816:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10816:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":779,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10806:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10806:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10782:82:1"},{"assignments":[789],"declarations":[{"constant":false,"id":789,"mutability":"mutable","name":"resolver","nameLocation":"10892:8:1","nodeType":"VariableDeclaration","scope":804,"src":"10870:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"},"typeName":{"id":788,"nodeType":"UserDefinedTypeName","pathNode":{"id":787,"name":"ENSResolver_Chainlink","nameLocations":["10870:21:1"],"nodeType":"IdentifierPath","referencedDeclaration":2373,"src":"10870:21:1"},"referencedDeclaration":2373,"src":"10870:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":796,"initialValue":{"arguments":[{"arguments":[{"id":793,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10940:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":791,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10925:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10931:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":1148,"src":"10925:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10925:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":790,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"10903:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2373_$","typeString":"type(contract ENSResolver)"}},"id":795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10903:52:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10870:85:1"},{"expression":{"arguments":[{"arguments":[{"id":800,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10994:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":798,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"10980:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"id":799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10989:4:1","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2372,"src":"10980:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10980:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":797,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"10961:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10961:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":803,"nodeType":"ExpressionStatement","src":"10961:48:1"}]},"documentation":{"id":774,"nodeType":"StructuredDocumentation","src":"10537:187:1","text":" @notice Sets the stored oracle contract with the address resolved by ENS\n @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously"},"id":805,"implemented":true,"kind":"function","modifiers":[],"name":"updateChainlinkOracleWithENS","nameLocation":"10736:28:1","nodeType":"FunctionDefinition","parameters":{"id":775,"nodeType":"ParameterList","parameters":[],"src":"10764:2:1"},"returnParameters":{"id":776,"nodeType":"ParameterList","parameters":[],"src":"10776:0:1"},"scope":861,"src":"10727:287:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":814,"nodeType":"Block","src":"11402:6:1","statements":[]},"documentation":{"id":806,"nodeType":"StructuredDocumentation","src":"11018:223:1","text":" @notice Ensures that the fulfillment is valid for this contract\n @dev Use if the contract developer prefers methods instead of modifiers for validation\n @param requestId The request ID for fulfillment"},"id":815,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":811,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":808,"src":"11342:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":812,"kind":"modifierInvocation","modifierName":{"id":810,"name":"recordChainlinkFulfillment","nameLocations":["11315:26:1"],"nodeType":"IdentifierPath","referencedDeclaration":841,"src":"11315:26:1"},"nodeType":"ModifierInvocation","src":"11315:37:1"}],"name":"validateChainlinkCallback","nameLocation":"11253:25:1","nodeType":"FunctionDefinition","parameters":{"id":809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":808,"mutability":"mutable","name":"requestId","nameLocation":"11287:9:1","nodeType":"VariableDeclaration","scope":815,"src":"11279:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11279:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11278:19:1"},"returnParameters":{"id":813,"nodeType":"ParameterList","parameters":[],"src":"11402:0:1"},"scope":861,"src":"11244:164:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":840,"nodeType":"Block","src":"11635:194:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":821,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11649:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11653:6:1","memberName":"sender","nodeType":"MemberAccess","src":"11649:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":823,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11663:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":825,"indexExpression":{"id":824,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11681:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11663:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11649:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374","id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11693:42:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""},"value":"Source must be the oracle of the request"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""}],"id":820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11641:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11641:95:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":829,"nodeType":"ExpressionStatement","src":"11641:95:1"},{"expression":{"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11742:35:1","subExpression":{"baseExpression":{"id":830,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11749:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":832,"indexExpression":{"id":831,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11767:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11749:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":834,"nodeType":"ExpressionStatement","src":"11742:35:1"},{"eventCall":{"arguments":[{"id":836,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11807:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":835,"name":"ChainlinkFulfilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"11788:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11788:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":838,"nodeType":"EmitStatement","src":"11783:34:1"},{"id":839,"nodeType":"PlaceholderStatement","src":"11823:1:1"}]},"documentation":{"id":816,"nodeType":"StructuredDocumentation","src":"11412:165:1","text":" @dev Reverts if the sender is not the oracle of the request.\n Emits ChainlinkFulfilled event.\n @param requestId The request ID for fulfillment"},"id":841,"name":"recordChainlinkFulfillment","nameLocation":"11589:26:1","nodeType":"ModifierDefinition","parameters":{"id":819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":818,"mutability":"mutable","name":"requestId","nameLocation":"11624:9:1","nodeType":"VariableDeclaration","scope":841,"src":"11616:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11616:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11615:19:1"},"src":"11580:249:1","virtual":false,"visibility":"internal"},{"body":{"id":859,"nodeType":"Block","src":"11996:99:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":847,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"12010:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":849,"indexExpression":{"id":848,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":844,"src":"12028:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12010:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12050:1:1","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":851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12042:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":850,"name":"address","nodeType":"ElementaryTypeName","src":"12042:7:1","typeDescriptions":{}}},"id":853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12042:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12010:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265717565737420697320616c72656164792070656e64696e67","id":855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12054:28:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""},"value":"Request is already pending"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""}],"id":846,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12002:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12002:81:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":857,"nodeType":"ExpressionStatement","src":"12002:81:1"},{"id":858,"nodeType":"PlaceholderStatement","src":"12089:1:1"}]},"documentation":{"id":842,"nodeType":"StructuredDocumentation","src":"11833:114:1","text":" @dev Reverts if the request is already pending\n @param requestId The request ID for fulfillment"},"id":860,"name":"notPendingRequest","nameLocation":"11959:17:1","nodeType":"ModifierDefinition","parameters":{"id":845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":844,"mutability":"mutable","name":"requestId","nameLocation":"11985:9:1","nodeType":"VariableDeclaration","scope":860,"src":"11977:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11977:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11976:19:1"},"src":"11950:145:1","virtual":false,"visibility":"internal"}],"scope":862,"src":"549:11548:1","usedErrors":[]}],"src":"32:12066:1"},"id":1},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","exportedSymbols":{"ConfirmedOwner":[881],"ConfirmedOwnerWithProposal":[1043],"OwnableInterface":[1386]},"id":882,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":863,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:2"},{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol","file":"./ConfirmedOwnerWithProposal.sol","id":864,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":882,"sourceUnit":1044,"src":"57:42:2","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":866,"name":"ConfirmedOwnerWithProposal","nameLocations":["239:26:2"],"nodeType":"IdentifierPath","referencedDeclaration":1043,"src":"239:26:2"},"id":867,"nodeType":"InheritanceSpecifier","src":"239:26:2"}],"canonicalName":"ConfirmedOwner","contractDependencies":[],"contractKind":"contract","documentation":{"id":865,"nodeType":"StructuredDocumentation","src":"101:110:2","text":" @title The ConfirmedOwner contract\n @notice A contract with helpers for basic contract ownership."},"fullyImplemented":true,"id":881,"linearizedBaseContracts":[881,1043,1386],"name":"ConfirmedOwner","nameLocation":"221:14:2","nodeType":"ContractDefinition","nodes":[{"body":{"id":879,"nodeType":"Block","src":"349:2:2","statements":[]},"id":880,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":872,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":869,"src":"327:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"345:1:2","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":874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"337:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":873,"name":"address","nodeType":"ElementaryTypeName","src":"337:7:2","typeDescriptions":{}}},"id":876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"337:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":877,"kind":"baseConstructorSpecifier","modifierName":{"id":871,"name":"ConfirmedOwnerWithProposal","nameLocations":["300:26:2"],"nodeType":"IdentifierPath","referencedDeclaration":1043,"src":"300:26:2"},"nodeType":"ModifierInvocation","src":"300:48:2"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":869,"mutability":"mutable","name":"newOwner","nameLocation":"290:8:2","nodeType":"VariableDeclaration","scope":880,"src":"282:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":868,"name":"address","nodeType":"ElementaryTypeName","src":"282:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"281:18:2"},"returnParameters":{"id":878,"nodeType":"ParameterList","parameters":[],"src":"349:0:2"},"scope":881,"src":"270:81:2","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":882,"src":"212:141:2","usedErrors":[]}],"src":"32:322:2"},"id":2},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol","exportedSymbols":{"ConfirmedOwnerWithProposal":[1043],"OwnableInterface":[1386]},"id":1044,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":883,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:3"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol","file":"./interfaces/OwnableInterface.sol","id":884,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1044,"sourceUnit":1387,"src":"57:43:3","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":886,"name":"OwnableInterface","nameLocations":["252:16:3"],"nodeType":"IdentifierPath","referencedDeclaration":1386,"src":"252:16:3"},"id":887,"nodeType":"InheritanceSpecifier","src":"252:16:3"}],"canonicalName":"ConfirmedOwnerWithProposal","contractDependencies":[],"contractKind":"contract","documentation":{"id":885,"nodeType":"StructuredDocumentation","src":"102:110:3","text":" @title The ConfirmedOwner contract\n @notice A contract with helpers for basic contract ownership."},"fullyImplemented":true,"id":1043,"linearizedBaseContracts":[1043,1386],"name":"ConfirmedOwnerWithProposal","nameLocation":"222:26:3","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":889,"mutability":"mutable","name":"s_owner","nameLocation":"289:7:3","nodeType":"VariableDeclaration","scope":1043,"src":"273:23:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":888,"name":"address","nodeType":"ElementaryTypeName","src":"273:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":891,"mutability":"mutable","name":"s_pendingOwner","nameLocation":"316:14:3","nodeType":"VariableDeclaration","scope":1043,"src":"300:30:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":890,"name":"address","nodeType":"ElementaryTypeName","src":"300:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278","id":897,"name":"OwnershipTransferRequested","nameLocation":"341:26:3","nodeType":"EventDefinition","parameters":{"id":896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":893,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"384:4:3","nodeType":"VariableDeclaration","scope":897,"src":"368:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":892,"name":"address","nodeType":"ElementaryTypeName","src":"368:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":895,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"406:2:3","nodeType":"VariableDeclaration","scope":897,"src":"390:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":894,"name":"address","nodeType":"ElementaryTypeName","src":"390:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"367:42:3"},"src":"335:75:3"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":903,"name":"OwnershipTransferred","nameLocation":"419:20:3","nodeType":"EventDefinition","parameters":{"id":902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":899,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"456:4:3","nodeType":"VariableDeclaration","scope":903,"src":"440:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":898,"name":"address","nodeType":"ElementaryTypeName","src":"440:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":901,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"478:2:3","nodeType":"VariableDeclaration","scope":903,"src":"462:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":900,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"439:42:3"},"src":"413:69:3"},{"body":{"id":936,"nodeType":"Block","src":"538:179:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":911,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"552:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"572:1:3","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":913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"564:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":912,"name":"address","nodeType":"ElementaryTypeName","src":"564:7:3","typeDescriptions":{}}},"id":915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"564:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"552:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","id":917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"576:26:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2","typeString":"literal_string \"Cannot set owner to zero\""},"value":"Cannot set owner to zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2","typeString":"literal_string \"Cannot set owner to zero\""}],"id":910,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"544:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"544:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":919,"nodeType":"ExpressionStatement","src":"544:59:3"},{"expression":{"id":922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":920,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"610:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":921,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"620:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"610:18:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":923,"nodeType":"ExpressionStatement","src":"610:18:3"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":924,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"638:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"662:1:3","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":926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"654:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":925,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:3","typeDescriptions":{}}},"id":928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"654:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"638:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":935,"nodeType":"IfStatement","src":"634:79:3","trueBody":{"id":934,"nodeType":"Block","src":"666:47:3","statements":[{"expression":{"arguments":[{"id":931,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"693:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":930,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"674:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"674:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":933,"nodeType":"ExpressionStatement","src":"674:32:3"}]}}]},"id":937,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":905,"mutability":"mutable","name":"newOwner","nameLocation":"506:8:3","nodeType":"VariableDeclaration","scope":937,"src":"498:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":904,"name":"address","nodeType":"ElementaryTypeName","src":"498:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":907,"mutability":"mutable","name":"pendingOwner","nameLocation":"524:12:3","nodeType":"VariableDeclaration","scope":937,"src":"516:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":906,"name":"address","nodeType":"ElementaryTypeName","src":"516:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"497:40:3"},"returnParameters":{"id":909,"nodeType":"ParameterList","parameters":[],"src":"538:0:3"},"scope":1043,"src":"486:231:3","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1382],"body":{"id":950,"nodeType":"Block","src":"891:33:3","statements":[{"expression":{"arguments":[{"id":947,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":940,"src":"916:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":946,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"897:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"897:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":949,"nodeType":"ExpressionStatement","src":"897:22:3"}]},"documentation":{"id":938,"nodeType":"StructuredDocumentation","src":"721:102:3","text":" @notice Allows an owner to begin transferring ownership to a new address,\n pending."},"functionSelector":"f2fde38b","id":951,"implemented":true,"kind":"function","modifiers":[{"id":944,"kind":"modifierInvocation","modifierName":{"id":943,"name":"onlyOwner","nameLocations":["881:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":1042,"src":"881:9:3"},"nodeType":"ModifierInvocation","src":"881:9:3"}],"name":"transferOwnership","nameLocation":"835:17:3","nodeType":"FunctionDefinition","overrides":{"id":942,"nodeType":"OverrideSpecifier","overrides":[],"src":"872:8:3"},"parameters":{"id":941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":940,"mutability":"mutable","name":"to","nameLocation":"861:2:3","nodeType":"VariableDeclaration","scope":951,"src":"853:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":939,"name":"address","nodeType":"ElementaryTypeName","src":"853:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"852:12:3"},"returnParameters":{"id":945,"nodeType":"ParameterList","parameters":[],"src":"891:0:3"},"scope":1043,"src":"826:98:3","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1385],"body":{"id":986,"nodeType":"Block","src":"1061:220:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":957,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1075:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1075:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":959,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1089:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1075:28:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","id":961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1105:24:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c","typeString":"literal_string \"Must be proposed owner\""},"value":"Must be proposed owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c","typeString":"literal_string \"Must be proposed owner\""}],"id":956,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1067:7:3","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,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:63:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":963,"nodeType":"ExpressionStatement","src":"1067:63:3"},{"assignments":[965],"declarations":[{"constant":false,"id":965,"mutability":"mutable","name":"oldOwner","nameLocation":"1145:8:3","nodeType":"VariableDeclaration","scope":986,"src":"1137:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":964,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":967,"initialValue":{"id":966,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1156:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1137:26:3"},{"expression":{"id":971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":968,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1169:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":969,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1179:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1183:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1179:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1169:20:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":972,"nodeType":"ExpressionStatement","src":"1169:20:3"},{"expression":{"id":978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":973,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1195:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1220:1:3","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":975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1212:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":974,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:3","typeDescriptions":{}}},"id":977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1195:27:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":979,"nodeType":"ExpressionStatement","src":"1195:27:3"},{"eventCall":{"arguments":[{"id":981,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":965,"src":"1255:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":982,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1265:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1269:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1265:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":980,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":903,"src":"1234:20:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1234:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":985,"nodeType":"EmitStatement","src":"1229:47:3"}]},"documentation":{"id":952,"nodeType":"StructuredDocumentation","src":"928:85:3","text":" @notice Allows an ownership transfer to be completed by the recipient."},"functionSelector":"79ba5097","id":987,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"1025:15:3","nodeType":"FunctionDefinition","overrides":{"id":954,"nodeType":"OverrideSpecifier","overrides":[],"src":"1052:8:3"},"parameters":{"id":953,"nodeType":"ParameterList","parameters":[],"src":"1040:2:3"},"returnParameters":{"id":955,"nodeType":"ParameterList","parameters":[],"src":"1061:0:3"},"scope":1043,"src":"1016:265:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1377],"body":{"id":996,"nodeType":"Block","src":"1388:25:3","statements":[{"expression":{"id":994,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1401:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":993,"id":995,"nodeType":"Return","src":"1394:14:3"}]},"documentation":{"id":988,"nodeType":"StructuredDocumentation","src":"1285:44:3","text":" @notice Get the current owner"},"functionSelector":"8da5cb5b","id":997,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1341:5:3","nodeType":"FunctionDefinition","overrides":{"id":990,"nodeType":"OverrideSpecifier","overrides":[],"src":"1361:8:3"},"parameters":{"id":989,"nodeType":"ParameterList","parameters":[],"src":"1346:2:3"},"returnParameters":{"id":993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":997,"src":"1379:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":991,"name":"address","nodeType":"ElementaryTypeName","src":"1379:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1378:9:3"},"scope":1043,"src":"1332:81:3","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":1020,"nodeType":"Block","src":"1545:140:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1004,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1559:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1005,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1565:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1569:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1565:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1559:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","id":1008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1577:25:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2","typeString":"literal_string \"Cannot transfer to self\""},"value":"Cannot transfer to self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2","typeString":"literal_string \"Cannot transfer to self\""}],"id":1003,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1551:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1551:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1010,"nodeType":"ExpressionStatement","src":"1551:52:3"},{"expression":{"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1011,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1610:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1012,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1627:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1610:19:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1014,"nodeType":"ExpressionStatement","src":"1610:19:3"},{"eventCall":{"arguments":[{"id":1016,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1668:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1017,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1677:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1015,"name":"OwnershipTransferRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"1641:26:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1641:39:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1019,"nodeType":"EmitStatement","src":"1636:44:3"}]},"documentation":{"id":998,"nodeType":"StructuredDocumentation","src":"1417:77:3","text":" @notice validate, transfer ownership, and emit relevant events"},"id":1021,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"1506:18:3","nodeType":"FunctionDefinition","parameters":{"id":1001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1000,"mutability":"mutable","name":"to","nameLocation":"1533:2:3","nodeType":"VariableDeclaration","scope":1021,"src":"1525:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":999,"name":"address","nodeType":"ElementaryTypeName","src":"1525:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1524:12:3"},"returnParameters":{"id":1002,"nodeType":"ParameterList","parameters":[],"src":"1545:0:3"},"scope":1043,"src":"1497:188:3","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1033,"nodeType":"Block","src":"1774:67:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1026,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1788:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1792:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1788:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1028,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1802:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1788:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1811:24:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3","typeString":"literal_string \"Only callable by owner\""},"value":"Only callable by owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3","typeString":"literal_string \"Only callable by owner\""}],"id":1025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1780:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1032,"nodeType":"ExpressionStatement","src":"1780:56:3"}]},"documentation":{"id":1022,"nodeType":"StructuredDocumentation","src":"1689:38:3","text":" @notice validate access"},"id":1034,"implemented":true,"kind":"function","modifiers":[],"name":"_validateOwnership","nameLocation":"1739:18:3","nodeType":"FunctionDefinition","parameters":{"id":1023,"nodeType":"ParameterList","parameters":[],"src":"1757:2:3"},"returnParameters":{"id":1024,"nodeType":"ParameterList","parameters":[],"src":"1774:0:3"},"scope":1043,"src":"1730:111:3","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1041,"nodeType":"Block","src":"1950:38:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1037,"name":"_validateOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"1956:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1956:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1039,"nodeType":"ExpressionStatement","src":"1956:20:3"},{"id":1040,"nodeType":"PlaceholderStatement","src":"1982:1:3"}]},"documentation":{"id":1035,"nodeType":"StructuredDocumentation","src":"1845:81:3","text":" @notice Reverts if called by anyone other than the contract owner."},"id":1042,"name":"onlyOwner","nameLocation":"1938:9:3","nodeType":"ModifierDefinition","parameters":{"id":1036,"nodeType":"ParameterList","parameters":[],"src":"1947:2:3"},"src":"1929:59:3","virtual":false,"visibility":"internal"}],"scope":1044,"src":"213:1777:3","usedErrors":[]}],"src":"32:1959:3"},"id":3},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[1076]},"id":1077,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1045,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:4"},{"abstract":false,"baseContracts":[],"canonicalName":"ChainlinkRequestInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1076,"linearizedBaseContracts":[1076],"name":"ChainlinkRequestInterface","nameLocation":"67:25:4","nodeType":"ContractDefinition","nodes":[{"functionSelector":"40429946","id":1064,"implemented":false,"kind":"function","modifiers":[],"name":"oracleRequest","nameLocation":"106:13:4","nodeType":"FunctionDefinition","parameters":{"id":1062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1047,"mutability":"mutable","name":"sender","nameLocation":"133:6:4","nodeType":"VariableDeclaration","scope":1064,"src":"125:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1046,"name":"address","nodeType":"ElementaryTypeName","src":"125:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1049,"mutability":"mutable","name":"requestPrice","nameLocation":"153:12:4","nodeType":"VariableDeclaration","scope":1064,"src":"145:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1048,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1051,"mutability":"mutable","name":"serviceAgreementID","nameLocation":"179:18:4","nodeType":"VariableDeclaration","scope":1064,"src":"171:26:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1053,"mutability":"mutable","name":"callbackAddress","nameLocation":"211:15:4","nodeType":"VariableDeclaration","scope":1064,"src":"203:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1052,"name":"address","nodeType":"ElementaryTypeName","src":"203:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1055,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"239:18:4","nodeType":"VariableDeclaration","scope":1064,"src":"232:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1054,"name":"bytes4","nodeType":"ElementaryTypeName","src":"232:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1057,"mutability":"mutable","name":"nonce","nameLocation":"271:5:4","nodeType":"VariableDeclaration","scope":1064,"src":"263:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1056,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1059,"mutability":"mutable","name":"dataVersion","nameLocation":"290:11:4","nodeType":"VariableDeclaration","scope":1064,"src":"282:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1058,"name":"uint256","nodeType":"ElementaryTypeName","src":"282:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1061,"mutability":"mutable","name":"data","nameLocation":"322:4:4","nodeType":"VariableDeclaration","scope":1064,"src":"307:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1060,"name":"bytes","nodeType":"ElementaryTypeName","src":"307:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"119:211:4"},"returnParameters":{"id":1063,"nodeType":"ParameterList","parameters":[],"src":"339:0:4"},"scope":1076,"src":"97:243:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ee4d553","id":1075,"implemented":false,"kind":"function","modifiers":[],"name":"cancelOracleRequest","nameLocation":"353:19:4","nodeType":"FunctionDefinition","parameters":{"id":1073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1066,"mutability":"mutable","name":"requestId","nameLocation":"386:9:4","nodeType":"VariableDeclaration","scope":1075,"src":"378:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1068,"mutability":"mutable","name":"payment","nameLocation":"409:7:4","nodeType":"VariableDeclaration","scope":1075,"src":"401:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1067,"name":"uint256","nodeType":"ElementaryTypeName","src":"401:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1070,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"429:18:4","nodeType":"VariableDeclaration","scope":1075,"src":"422:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1069,"name":"bytes4","nodeType":"ElementaryTypeName","src":"422:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1072,"mutability":"mutable","name":"expiration","nameLocation":"461:10:4","nodeType":"VariableDeclaration","scope":1075,"src":"453:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1071,"name":"uint256","nodeType":"ElementaryTypeName","src":"453:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"372:103:4"},"returnParameters":{"id":1074,"nodeType":"ParameterList","parameters":[],"src":"484:0:4"},"scope":1076,"src":"344:141:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1077,"src":"57:430:4","usedErrors":[]}],"src":"32:456:4"},"id":4},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","exportedSymbols":{"ENSInterface":[1156]},"id":1157,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1078,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:5"},{"abstract":false,"baseContracts":[],"canonicalName":"ENSInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1156,"linearizedBaseContracts":[1156],"name":"ENSInterface","nameLocation":"67:12:5","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"ce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82","id":1086,"name":"NewOwner","nameLocation":"161:8:5","nodeType":"EventDefinition","parameters":{"id":1085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1080,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"186:4:5","nodeType":"VariableDeclaration","scope":1086,"src":"170:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1082,"indexed":true,"mutability":"mutable","name":"label","nameLocation":"208:5:5","nodeType":"VariableDeclaration","scope":1086,"src":"192:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1084,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"223:5:5","nodeType":"VariableDeclaration","scope":1086,"src":"215:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1083,"name":"address","nodeType":"ElementaryTypeName","src":"215:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"169:60:5"},"src":"155:75:5"},{"anonymous":false,"eventSelector":"d4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266","id":1092,"name":"Transfer","nameLocation":"315:8:5","nodeType":"EventDefinition","parameters":{"id":1091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1088,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"340:4:5","nodeType":"VariableDeclaration","scope":1092,"src":"324:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1090,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"354:5:5","nodeType":"VariableDeclaration","scope":1092,"src":"346:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1089,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"323:37:5"},"src":"309:52:5"},{"anonymous":false,"eventSelector":"335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0","id":1098,"name":"NewResolver","nameLocation":"421:11:5","nodeType":"EventDefinition","parameters":{"id":1097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1094,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"449:4:5","nodeType":"VariableDeclaration","scope":1098,"src":"433:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"433:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1096,"indexed":false,"mutability":"mutable","name":"resolver","nameLocation":"463:8:5","nodeType":"VariableDeclaration","scope":1098,"src":"455:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1095,"name":"address","nodeType":"ElementaryTypeName","src":"455:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"432:40:5"},"src":"415:58:5"},{"anonymous":false,"eventSelector":"1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68","id":1104,"name":"NewTTL","nameLocation":"526:6:5","nodeType":"EventDefinition","parameters":{"id":1103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1100,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"549:4:5","nodeType":"VariableDeclaration","scope":1104,"src":"533:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"533:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1102,"indexed":false,"mutability":"mutable","name":"ttl","nameLocation":"562:3:5","nodeType":"VariableDeclaration","scope":1104,"src":"555:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1101,"name":"uint64","nodeType":"ElementaryTypeName","src":"555:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"532:34:5"},"src":"520:47:5"},{"functionSelector":"06ab5923","id":1113,"implemented":false,"kind":"function","modifiers":[],"name":"setSubnodeOwner","nameLocation":"580:15:5","nodeType":"FunctionDefinition","parameters":{"id":1111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1106,"mutability":"mutable","name":"node","nameLocation":"609:4:5","nodeType":"VariableDeclaration","scope":1113,"src":"601:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"601:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1108,"mutability":"mutable","name":"label","nameLocation":"627:5:5","nodeType":"VariableDeclaration","scope":1113,"src":"619:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"619:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1110,"mutability":"mutable","name":"owner","nameLocation":"646:5:5","nodeType":"VariableDeclaration","scope":1113,"src":"638:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1109,"name":"address","nodeType":"ElementaryTypeName","src":"638:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"595:60:5"},"returnParameters":{"id":1112,"nodeType":"ParameterList","parameters":[],"src":"664:0:5"},"scope":1156,"src":"571:94:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1896f70a","id":1120,"implemented":false,"kind":"function","modifiers":[],"name":"setResolver","nameLocation":"678:11:5","nodeType":"FunctionDefinition","parameters":{"id":1118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1115,"mutability":"mutable","name":"node","nameLocation":"698:4:5","nodeType":"VariableDeclaration","scope":1120,"src":"690:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"690:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1117,"mutability":"mutable","name":"resolver","nameLocation":"712:8:5","nodeType":"VariableDeclaration","scope":1120,"src":"704:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1116,"name":"address","nodeType":"ElementaryTypeName","src":"704:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"689:32:5"},"returnParameters":{"id":1119,"nodeType":"ParameterList","parameters":[],"src":"730:0:5"},"scope":1156,"src":"669:62:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5b0fc9c3","id":1127,"implemented":false,"kind":"function","modifiers":[],"name":"setOwner","nameLocation":"744:8:5","nodeType":"FunctionDefinition","parameters":{"id":1125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1122,"mutability":"mutable","name":"node","nameLocation":"761:4:5","nodeType":"VariableDeclaration","scope":1127,"src":"753:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"753:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1124,"mutability":"mutable","name":"owner","nameLocation":"775:5:5","nodeType":"VariableDeclaration","scope":1127,"src":"767:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1123,"name":"address","nodeType":"ElementaryTypeName","src":"767:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:29:5"},"returnParameters":{"id":1126,"nodeType":"ParameterList","parameters":[],"src":"790:0:5"},"scope":1156,"src":"735:56:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"14ab9038","id":1134,"implemented":false,"kind":"function","modifiers":[],"name":"setTTL","nameLocation":"804:6:5","nodeType":"FunctionDefinition","parameters":{"id":1132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1129,"mutability":"mutable","name":"node","nameLocation":"819:4:5","nodeType":"VariableDeclaration","scope":1134,"src":"811:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"811:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1131,"mutability":"mutable","name":"ttl","nameLocation":"832:3:5","nodeType":"VariableDeclaration","scope":1134,"src":"825:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1130,"name":"uint64","nodeType":"ElementaryTypeName","src":"825:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"810:26:5"},"returnParameters":{"id":1133,"nodeType":"ParameterList","parameters":[],"src":"845:0:5"},"scope":1156,"src":"795:51:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"02571be3","id":1141,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"859:5:5","nodeType":"FunctionDefinition","parameters":{"id":1137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1136,"mutability":"mutable","name":"node","nameLocation":"873:4:5","nodeType":"VariableDeclaration","scope":1141,"src":"865:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"865:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"864:14:5"},"returnParameters":{"id":1140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1141,"src":"902:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1138,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"901:9:5"},"scope":1156,"src":"850:61:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0178b8bf","id":1148,"implemented":false,"kind":"function","modifiers":[],"name":"resolver","nameLocation":"924:8:5","nodeType":"FunctionDefinition","parameters":{"id":1144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"mutability":"mutable","name":"node","nameLocation":"941:4:5","nodeType":"VariableDeclaration","scope":1148,"src":"933:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"933:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"932:14:5"},"returnParameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1148,"src":"970:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"969:9:5"},"scope":1156,"src":"915:64:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"16a25cbd","id":1155,"implemented":false,"kind":"function","modifiers":[],"name":"ttl","nameLocation":"992:3:5","nodeType":"FunctionDefinition","parameters":{"id":1151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1150,"mutability":"mutable","name":"node","nameLocation":"1004:4:5","nodeType":"VariableDeclaration","scope":1155,"src":"996:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"996:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"995:14:5"},"returnParameters":{"id":1154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1155,"src":"1033:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1152,"name":"uint64","nodeType":"ElementaryTypeName","src":"1033:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1032:8:5"},"scope":1156,"src":"983:58:5","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1157,"src":"57:986:5","usedErrors":[]}],"src":"32:1012:5"},"id":5},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","exportedSymbols":{"LinkTokenInterface":[1251]},"id":1252,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1158,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:6"},{"abstract":false,"baseContracts":[],"canonicalName":"LinkTokenInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1251,"linearizedBaseContracts":[1251],"name":"LinkTokenInterface","nameLocation":"67:18:6","nodeType":"ContractDefinition","nodes":[{"functionSelector":"dd62ed3e","id":1167,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"99:9:6","nodeType":"FunctionDefinition","parameters":{"id":1163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1160,"mutability":"mutable","name":"owner","nameLocation":"117:5:6","nodeType":"VariableDeclaration","scope":1167,"src":"109:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1159,"name":"address","nodeType":"ElementaryTypeName","src":"109:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1162,"mutability":"mutable","name":"spender","nameLocation":"132:7:6","nodeType":"VariableDeclaration","scope":1167,"src":"124:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1161,"name":"address","nodeType":"ElementaryTypeName","src":"124:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"108:32:6"},"returnParameters":{"id":1166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1165,"mutability":"mutable","name":"remaining","nameLocation":"172:9:6","nodeType":"VariableDeclaration","scope":1167,"src":"164:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1164,"name":"uint256","nodeType":"ElementaryTypeName","src":"164:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"163:19:6"},"scope":1251,"src":"90:93:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":1176,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"196:7:6","nodeType":"FunctionDefinition","parameters":{"id":1172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1169,"mutability":"mutable","name":"spender","nameLocation":"212:7:6","nodeType":"VariableDeclaration","scope":1176,"src":"204:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1168,"name":"address","nodeType":"ElementaryTypeName","src":"204:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1171,"mutability":"mutable","name":"value","nameLocation":"229:5:6","nodeType":"VariableDeclaration","scope":1176,"src":"221:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1170,"name":"uint256","nodeType":"ElementaryTypeName","src":"221:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"203:32:6"},"returnParameters":{"id":1175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1174,"mutability":"mutable","name":"success","nameLocation":"259:7:6","nodeType":"VariableDeclaration","scope":1176,"src":"254:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1173,"name":"bool","nodeType":"ElementaryTypeName","src":"254:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"253:14:6"},"scope":1251,"src":"187:81:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":1183,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"281:9:6","nodeType":"FunctionDefinition","parameters":{"id":1179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1178,"mutability":"mutable","name":"owner","nameLocation":"299:5:6","nodeType":"VariableDeclaration","scope":1183,"src":"291:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1177,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"290:15:6"},"returnParameters":{"id":1182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1181,"mutability":"mutable","name":"balance","nameLocation":"337:7:6","nodeType":"VariableDeclaration","scope":1183,"src":"329:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1180,"name":"uint256","nodeType":"ElementaryTypeName","src":"329:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"328:17:6"},"scope":1251,"src":"272:74:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":1188,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"359:8:6","nodeType":"FunctionDefinition","parameters":{"id":1184,"nodeType":"ParameterList","parameters":[],"src":"367:2:6"},"returnParameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1186,"mutability":"mutable","name":"decimalPlaces","nameLocation":"399:13:6","nodeType":"VariableDeclaration","scope":1188,"src":"393:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1185,"name":"uint8","nodeType":"ElementaryTypeName","src":"393:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"392:21:6"},"scope":1251,"src":"350:64:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"66188463","id":1197,"implemented":false,"kind":"function","modifiers":[],"name":"decreaseApproval","nameLocation":"427:16:6","nodeType":"FunctionDefinition","parameters":{"id":1193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1190,"mutability":"mutable","name":"spender","nameLocation":"452:7:6","nodeType":"VariableDeclaration","scope":1197,"src":"444:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1189,"name":"address","nodeType":"ElementaryTypeName","src":"444:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1192,"mutability":"mutable","name":"addedValue","nameLocation":"469:10:6","nodeType":"VariableDeclaration","scope":1197,"src":"461:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1191,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"443:37:6"},"returnParameters":{"id":1196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1195,"mutability":"mutable","name":"success","nameLocation":"504:7:6","nodeType":"VariableDeclaration","scope":1197,"src":"499:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1194,"name":"bool","nodeType":"ElementaryTypeName","src":"499:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"498:14:6"},"scope":1251,"src":"418:95:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d73dd623","id":1204,"implemented":false,"kind":"function","modifiers":[],"name":"increaseApproval","nameLocation":"526:16:6","nodeType":"FunctionDefinition","parameters":{"id":1202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1199,"mutability":"mutable","name":"spender","nameLocation":"551:7:6","nodeType":"VariableDeclaration","scope":1204,"src":"543:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1198,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1201,"mutability":"mutable","name":"subtractedValue","nameLocation":"568:15:6","nodeType":"VariableDeclaration","scope":1204,"src":"560:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1200,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"542:42:6"},"returnParameters":{"id":1203,"nodeType":"ParameterList","parameters":[],"src":"593:0:6"},"scope":1251,"src":"517:77:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"06fdde03","id":1209,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"607:4:6","nodeType":"FunctionDefinition","parameters":{"id":1205,"nodeType":"ParameterList","parameters":[],"src":"611:2:6"},"returnParameters":{"id":1208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1207,"mutability":"mutable","name":"tokenName","nameLocation":"651:9:6","nodeType":"VariableDeclaration","scope":1209,"src":"637:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1206,"name":"string","nodeType":"ElementaryTypeName","src":"637:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"636:25:6"},"scope":1251,"src":"598:64:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":1214,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"675:6:6","nodeType":"FunctionDefinition","parameters":{"id":1210,"nodeType":"ParameterList","parameters":[],"src":"681:2:6"},"returnParameters":{"id":1213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1212,"mutability":"mutable","name":"tokenSymbol","nameLocation":"721:11:6","nodeType":"VariableDeclaration","scope":1214,"src":"707:25:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1211,"name":"string","nodeType":"ElementaryTypeName","src":"707:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"706:27:6"},"scope":1251,"src":"666:68:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":1219,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"747:11:6","nodeType":"FunctionDefinition","parameters":{"id":1215,"nodeType":"ParameterList","parameters":[],"src":"758:2:6"},"returnParameters":{"id":1218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1217,"mutability":"mutable","name":"totalTokensIssued","nameLocation":"792:17:6","nodeType":"VariableDeclaration","scope":1219,"src":"784:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1216,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"783:27:6"},"scope":1251,"src":"738:73:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":1228,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"824:8:6","nodeType":"FunctionDefinition","parameters":{"id":1224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1221,"mutability":"mutable","name":"to","nameLocation":"841:2:6","nodeType":"VariableDeclaration","scope":1228,"src":"833:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1220,"name":"address","nodeType":"ElementaryTypeName","src":"833:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1223,"mutability":"mutable","name":"value","nameLocation":"853:5:6","nodeType":"VariableDeclaration","scope":1228,"src":"845:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1222,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"832:27:6"},"returnParameters":{"id":1227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1226,"mutability":"mutable","name":"success","nameLocation":"883:7:6","nodeType":"VariableDeclaration","scope":1228,"src":"878:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1225,"name":"bool","nodeType":"ElementaryTypeName","src":"878:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"877:14:6"},"scope":1251,"src":"815:77:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4000aea0","id":1239,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"905:15:6","nodeType":"FunctionDefinition","parameters":{"id":1235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1230,"mutability":"mutable","name":"to","nameLocation":"934:2:6","nodeType":"VariableDeclaration","scope":1239,"src":"926:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1229,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1232,"mutability":"mutable","name":"value","nameLocation":"950:5:6","nodeType":"VariableDeclaration","scope":1239,"src":"942:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1231,"name":"uint256","nodeType":"ElementaryTypeName","src":"942:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1234,"mutability":"mutable","name":"data","nameLocation":"976:4:6","nodeType":"VariableDeclaration","scope":1239,"src":"961:19:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1233,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"920:64:6"},"returnParameters":{"id":1238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1237,"mutability":"mutable","name":"success","nameLocation":"1008:7:6","nodeType":"VariableDeclaration","scope":1239,"src":"1003:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1236,"name":"bool","nodeType":"ElementaryTypeName","src":"1003:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1002:14:6"},"scope":1251,"src":"896:121:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":1250,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1030:12:6","nodeType":"FunctionDefinition","parameters":{"id":1246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1241,"mutability":"mutable","name":"from","nameLocation":"1056:4:6","nodeType":"VariableDeclaration","scope":1250,"src":"1048:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1240,"name":"address","nodeType":"ElementaryTypeName","src":"1048:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1243,"mutability":"mutable","name":"to","nameLocation":"1074:2:6","nodeType":"VariableDeclaration","scope":1250,"src":"1066:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1242,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1245,"mutability":"mutable","name":"value","nameLocation":"1090:5:6","nodeType":"VariableDeclaration","scope":1250,"src":"1082:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1042:57:6"},"returnParameters":{"id":1249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1248,"mutability":"mutable","name":"success","nameLocation":"1123:7:6","nodeType":"VariableDeclaration","scope":1250,"src":"1118:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1247,"name":"bool","nodeType":"ElementaryTypeName","src":"1118:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1117:14:6"},"scope":1251,"src":"1021:111:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1252,"src":"57:1077:6","usedErrors":[]}],"src":"32:1103:6"},"id":6},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[1076],"OperatorInterface":[1331],"OracleInterface":[1370]},"id":1332,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1253,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:7"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","file":"./OracleInterface.sol","id":1254,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1332,"sourceUnit":1371,"src":"57:31:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./ChainlinkRequestInterface.sol","id":1255,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1332,"sourceUnit":1077,"src":"89:41:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1256,"name":"OracleInterface","nameLocations":["163:15:7"],"nodeType":"IdentifierPath","referencedDeclaration":1370,"src":"163:15:7"},"id":1257,"nodeType":"InheritanceSpecifier","src":"163:15:7"},{"baseName":{"id":1258,"name":"ChainlinkRequestInterface","nameLocations":["180:25:7"],"nodeType":"IdentifierPath","referencedDeclaration":1076,"src":"180:25:7"},"id":1259,"nodeType":"InheritanceSpecifier","src":"180:25:7"}],"canonicalName":"OperatorInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1331,"linearizedBaseContracts":[1331,1076,1370],"name":"OperatorInterface","nameLocation":"142:17:7","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3c6d41b9","id":1276,"implemented":false,"kind":"function","modifiers":[],"name":"operatorRequest","nameLocation":"219:15:7","nodeType":"FunctionDefinition","parameters":{"id":1274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1261,"mutability":"mutable","name":"sender","nameLocation":"248:6:7","nodeType":"VariableDeclaration","scope":1276,"src":"240:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1260,"name":"address","nodeType":"ElementaryTypeName","src":"240:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1263,"mutability":"mutable","name":"payment","nameLocation":"268:7:7","nodeType":"VariableDeclaration","scope":1276,"src":"260:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1262,"name":"uint256","nodeType":"ElementaryTypeName","src":"260:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1265,"mutability":"mutable","name":"specId","nameLocation":"289:6:7","nodeType":"VariableDeclaration","scope":1276,"src":"281:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"281:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1267,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"308:18:7","nodeType":"VariableDeclaration","scope":1276,"src":"301:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1266,"name":"bytes4","nodeType":"ElementaryTypeName","src":"301:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1269,"mutability":"mutable","name":"nonce","nameLocation":"340:5:7","nodeType":"VariableDeclaration","scope":1276,"src":"332:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1268,"name":"uint256","nodeType":"ElementaryTypeName","src":"332:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1271,"mutability":"mutable","name":"dataVersion","nameLocation":"359:11:7","nodeType":"VariableDeclaration","scope":1276,"src":"351:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1270,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1273,"mutability":"mutable","name":"data","nameLocation":"391:4:7","nodeType":"VariableDeclaration","scope":1276,"src":"376:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1272,"name":"bytes","nodeType":"ElementaryTypeName","src":"376:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"234:165:7"},"returnParameters":{"id":1275,"nodeType":"ParameterList","parameters":[],"src":"408:0:7"},"scope":1331,"src":"210:199:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ae0bc76","id":1293,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest2","nameLocation":"422:21:7","nodeType":"FunctionDefinition","parameters":{"id":1289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1278,"mutability":"mutable","name":"requestId","nameLocation":"457:9:7","nodeType":"VariableDeclaration","scope":1293,"src":"449:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1277,"name":"bytes32","nodeType":"ElementaryTypeName","src":"449:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1280,"mutability":"mutable","name":"payment","nameLocation":"480:7:7","nodeType":"VariableDeclaration","scope":1293,"src":"472:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1279,"name":"uint256","nodeType":"ElementaryTypeName","src":"472:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1282,"mutability":"mutable","name":"callbackAddress","nameLocation":"501:15:7","nodeType":"VariableDeclaration","scope":1293,"src":"493:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1281,"name":"address","nodeType":"ElementaryTypeName","src":"493:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1284,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"529:18:7","nodeType":"VariableDeclaration","scope":1293,"src":"522:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1283,"name":"bytes4","nodeType":"ElementaryTypeName","src":"522:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1286,"mutability":"mutable","name":"expiration","nameLocation":"561:10:7","nodeType":"VariableDeclaration","scope":1293,"src":"553:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1285,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1288,"mutability":"mutable","name":"data","nameLocation":"592:4:7","nodeType":"VariableDeclaration","scope":1293,"src":"577:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1287,"name":"bytes","nodeType":"ElementaryTypeName","src":"577:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"443:157:7"},"returnParameters":{"id":1292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1293,"src":"619:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1290,"name":"bool","nodeType":"ElementaryTypeName","src":"619:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"618:6:7"},"scope":1331,"src":"413:212:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"902fc370","id":1304,"implemented":false,"kind":"function","modifiers":[],"name":"ownerTransferAndCall","nameLocation":"638:20:7","nodeType":"FunctionDefinition","parameters":{"id":1300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1295,"mutability":"mutable","name":"to","nameLocation":"672:2:7","nodeType":"VariableDeclaration","scope":1304,"src":"664:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1294,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1297,"mutability":"mutable","name":"value","nameLocation":"688:5:7","nodeType":"VariableDeclaration","scope":1304,"src":"680:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1296,"name":"uint256","nodeType":"ElementaryTypeName","src":"680:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1299,"mutability":"mutable","name":"data","nameLocation":"714:4:7","nodeType":"VariableDeclaration","scope":1304,"src":"699:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1298,"name":"bytes","nodeType":"ElementaryTypeName","src":"699:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"658:64:7"},"returnParameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1302,"mutability":"mutable","name":"success","nameLocation":"746:7:7","nodeType":"VariableDeclaration","scope":1304,"src":"741:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1301,"name":"bool","nodeType":"ElementaryTypeName","src":"741:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"740:14:7"},"scope":1331,"src":"629:126:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6bd59ec0","id":1313,"implemented":false,"kind":"function","modifiers":[],"name":"distributeFunds","nameLocation":"768:15:7","nodeType":"FunctionDefinition","parameters":{"id":1311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1307,"mutability":"mutable","name":"receivers","nameLocation":"811:9:7","nodeType":"VariableDeclaration","scope":1313,"src":"784:36:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_calldata_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":1305,"name":"address","nodeType":"ElementaryTypeName","src":"784:15:7","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1306,"nodeType":"ArrayTypeName","src":"784:17:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"},{"constant":false,"id":1310,"mutability":"mutable","name":"amounts","nameLocation":"841:7:7","nodeType":"VariableDeclaration","scope":1313,"src":"822:26:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1308,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1309,"nodeType":"ArrayTypeName","src":"822:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"783:66:7"},"returnParameters":{"id":1312,"nodeType":"ParameterList","parameters":[],"src":"866:0:7"},"scope":1331,"src":"759:108:7","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"2408afaa","id":1319,"implemented":false,"kind":"function","modifiers":[],"name":"getAuthorizedSenders","nameLocation":"880:20:7","nodeType":"FunctionDefinition","parameters":{"id":1314,"nodeType":"ParameterList","parameters":[],"src":"900:2:7"},"returnParameters":{"id":1318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1317,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1319,"src":"921:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1315,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1316,"nodeType":"ArrayTypeName","src":"921:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"920:18:7"},"scope":1331,"src":"871:68:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ee56997b","id":1325,"implemented":false,"kind":"function","modifiers":[],"name":"setAuthorizedSenders","nameLocation":"952:20:7","nodeType":"FunctionDefinition","parameters":{"id":1323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1322,"mutability":"mutable","name":"senders","nameLocation":"992:7:7","nodeType":"VariableDeclaration","scope":1325,"src":"973:26:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1320,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1321,"nodeType":"ArrayTypeName","src":"973:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"972:28:7"},"returnParameters":{"id":1324,"nodeType":"ParameterList","parameters":[],"src":"1009:0:7"},"scope":1331,"src":"943:67:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a0042526","id":1330,"implemented":false,"kind":"function","modifiers":[],"name":"getForwarder","nameLocation":"1023:12:7","nodeType":"FunctionDefinition","parameters":{"id":1326,"nodeType":"ParameterList","parameters":[],"src":"1035:2:7"},"returnParameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1328,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1330,"src":"1056:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1327,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1055:9:7"},"scope":1331,"src":"1014:51:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1332,"src":"132:935:7","usedErrors":[]}],"src":"32:1036:7"},"id":7},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","exportedSymbols":{"OracleInterface":[1370]},"id":1371,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1333,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:8"},{"abstract":false,"baseContracts":[],"canonicalName":"OracleInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1370,"linearizedBaseContracts":[1370],"name":"OracleInterface","nameLocation":"67:15:8","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4ab0d190","id":1350,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest","nameLocation":"96:20:8","nodeType":"FunctionDefinition","parameters":{"id":1346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1335,"mutability":"mutable","name":"requestId","nameLocation":"130:9:8","nodeType":"VariableDeclaration","scope":1350,"src":"122:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1337,"mutability":"mutable","name":"payment","nameLocation":"153:7:8","nodeType":"VariableDeclaration","scope":1350,"src":"145:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1336,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1339,"mutability":"mutable","name":"callbackAddress","nameLocation":"174:15:8","nodeType":"VariableDeclaration","scope":1350,"src":"166:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1338,"name":"address","nodeType":"ElementaryTypeName","src":"166:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1341,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"202:18:8","nodeType":"VariableDeclaration","scope":1350,"src":"195:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1340,"name":"bytes4","nodeType":"ElementaryTypeName","src":"195:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1343,"mutability":"mutable","name":"expiration","nameLocation":"234:10:8","nodeType":"VariableDeclaration","scope":1350,"src":"226:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1342,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1345,"mutability":"mutable","name":"data","nameLocation":"258:4:8","nodeType":"VariableDeclaration","scope":1350,"src":"250:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"116:150:8"},"returnParameters":{"id":1349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1350,"src":"285:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1347,"name":"bool","nodeType":"ElementaryTypeName","src":"285:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"284:6:8"},"scope":1370,"src":"87:204:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fa00763a","id":1357,"implemented":false,"kind":"function","modifiers":[],"name":"isAuthorizedSender","nameLocation":"304:18:8","nodeType":"FunctionDefinition","parameters":{"id":1353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1352,"mutability":"mutable","name":"node","nameLocation":"331:4:8","nodeType":"VariableDeclaration","scope":1357,"src":"323:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1351,"name":"address","nodeType":"ElementaryTypeName","src":"323:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322:14:8"},"returnParameters":{"id":1356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1357,"src":"360:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1354,"name":"bool","nodeType":"ElementaryTypeName","src":"360:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"359:6:8"},"scope":1370,"src":"295:71:8","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f3fef3a3","id":1364,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"379:8:8","nodeType":"FunctionDefinition","parameters":{"id":1362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1359,"mutability":"mutable","name":"recipient","nameLocation":"396:9:8","nodeType":"VariableDeclaration","scope":1364,"src":"388:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1358,"name":"address","nodeType":"ElementaryTypeName","src":"388:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1361,"mutability":"mutable","name":"amount","nameLocation":"415:6:8","nodeType":"VariableDeclaration","scope":1364,"src":"407:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1360,"name":"uint256","nodeType":"ElementaryTypeName","src":"407:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"387:35:8"},"returnParameters":{"id":1363,"nodeType":"ParameterList","parameters":[],"src":"431:0:8"},"scope":1370,"src":"370:62:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"50188301","id":1369,"implemented":false,"kind":"function","modifiers":[],"name":"withdrawable","nameLocation":"445:12:8","nodeType":"FunctionDefinition","parameters":{"id":1365,"nodeType":"ParameterList","parameters":[],"src":"457:2:8"},"returnParameters":{"id":1368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1369,"src":"483:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1366,"name":"uint256","nodeType":"ElementaryTypeName","src":"483:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"482:9:8"},"scope":1370,"src":"436:56:8","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1371,"src":"57:437:8","usedErrors":[]}],"src":"32:463:8"},"id":8},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol","exportedSymbols":{"OwnableInterface":[1386]},"id":1387,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1372,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:9"},{"abstract":false,"baseContracts":[],"canonicalName":"OwnableInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1386,"linearizedBaseContracts":[1386],"name":"OwnableInterface","nameLocation":"67:16:9","nodeType":"ContractDefinition","nodes":[{"functionSelector":"8da5cb5b","id":1377,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"97:5:9","nodeType":"FunctionDefinition","parameters":{"id":1373,"nodeType":"ParameterList","parameters":[],"src":"102:2:9"},"returnParameters":{"id":1376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1377,"src":"123:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1374,"name":"address","nodeType":"ElementaryTypeName","src":"123:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"122:9:9"},"scope":1386,"src":"88:44:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f2fde38b","id":1382,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"145:17:9","nodeType":"FunctionDefinition","parameters":{"id":1380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1379,"mutability":"mutable","name":"recipient","nameLocation":"171:9:9","nodeType":"VariableDeclaration","scope":1382,"src":"163:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1378,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"162:19:9"},"returnParameters":{"id":1381,"nodeType":"ParameterList","parameters":[],"src":"190:0:9"},"scope":1386,"src":"136:55:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"79ba5097","id":1385,"implemented":false,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"204:15:9","nodeType":"FunctionDefinition","parameters":{"id":1383,"nodeType":"ParameterList","parameters":[],"src":"219:2:9"},"returnParameters":{"id":1384,"nodeType":"ParameterList","parameters":[],"src":"230:0:9"},"scope":1386,"src":"195:36:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1387,"src":"57:176:9","usedErrors":[]}],"src":"32:202:9"},"id":9},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","exportedSymbols":{"PointerInterface":[1394]},"id":1395,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1388,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:10"},{"abstract":false,"baseContracts":[],"canonicalName":"PointerInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1394,"linearizedBaseContracts":[1394],"name":"PointerInterface","nameLocation":"67:16:10","nodeType":"ContractDefinition","nodes":[{"functionSelector":"38cc4831","id":1393,"implemented":false,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"97:10:10","nodeType":"FunctionDefinition","parameters":{"id":1389,"nodeType":"ParameterList","parameters":[],"src":"107:2:10"},"returnParameters":{"id":1392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1393,"src":"133:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1390,"name":"address","nodeType":"ElementaryTypeName","src":"133:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"132:9:10"},"scope":1394,"src":"88:54:10","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1395,"src":"57:87:10","usedErrors":[]}],"src":"32:113:10"},"id":10},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","exportedSymbols":{"BufferChainlink":[1916]},"id":1917,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1396,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:11"},{"abstract":false,"baseContracts":[],"canonicalName":"BufferChainlink","contractDependencies":[],"contractKind":"library","documentation":{"id":1397,"nodeType":"StructuredDocumentation","src":"57:383:11","text":" @dev A library for working with mutable byte buffers in Solidity.\n Byte buffers are mutable and expandable, and provide a variety of primitives\n for writing to them. At any time you can fetch a bytes object containing the\n current contents of the buffer. The bytes object should not be stored between\n operations, as it may change due to resizing of the buffer."},"fullyImplemented":true,"id":1916,"linearizedBaseContracts":[1916],"name":"BufferChainlink","nameLocation":"449:15:11","nodeType":"ContractDefinition","nodes":[{"canonicalName":"BufferChainlink.buffer","id":1402,"members":[{"constant":false,"id":1399,"mutability":"mutable","name":"buf","nameLocation":"743:3:11","nodeType":"VariableDeclaration","scope":1402,"src":"737:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1398,"name":"bytes","nodeType":"ElementaryTypeName","src":"737:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1401,"mutability":"mutable","name":"capacity","nameLocation":"760:8:11","nodeType":"VariableDeclaration","scope":1402,"src":"752:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1400,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"buffer","nameLocation":"724:6:11","nodeType":"StructDefinition","scope":1916,"src":"717:56:11","visibility":"public"},{"body":{"id":1439,"nodeType":"Block","src":"1090:310:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1414,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1100:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1100:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1117:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1100:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1429,"nodeType":"IfStatement","src":"1096:71:11","trueBody":{"id":1428,"nodeType":"Block","src":"1120:47:11","statements":[{"expression":{"id":1426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1419,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1128:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1140:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1421,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1146:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1157:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1146:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1424,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1145:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1140:20:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1128:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1427,"nodeType":"ExpressionStatement","src":"1128:32:11"}]}},{"expression":{"id":1434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1430,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1406,"src":"1214:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1218:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"1214:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1433,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1229:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1214:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1435,"nodeType":"ExpressionStatement","src":"1214:23:11"},{"AST":{"nodeType":"YulBlock","src":"1252:128:11","statements":[{"nodeType":"YulVariableDeclaration","src":"1260:22:11","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1277:4:11","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1271:5:11"},"nodeType":"YulFunctionCall","src":"1271:11:11"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"1264:3:11","type":""}]},{"expression":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"1296:3:11"},{"name":"ptr","nodeType":"YulIdentifier","src":"1301:3:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1289:6:11"},"nodeType":"YulFunctionCall","src":"1289:16:11"},"nodeType":"YulExpressionStatement","src":"1289:16:11"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1319:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"1324:1:11","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1312:6:11"},"nodeType":"YulFunctionCall","src":"1312:14:11"},"nodeType":"YulExpressionStatement","src":"1312:14:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1340:4:11","type":"","value":"0x40"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1350:2:11","type":"","value":"32"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1358:3:11"},{"name":"capacity","nodeType":"YulIdentifier","src":"1363:8:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1354:3:11"},"nodeType":"YulFunctionCall","src":"1354:18:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1346:3:11"},"nodeType":"YulFunctionCall","src":"1346:27:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:11"},"nodeType":"YulFunctionCall","src":"1333:41:11"},"nodeType":"YulExpressionStatement","src":"1333:41:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1406,"isOffset":false,"isSlot":false,"src":"1296:3:11","valueSize":1},{"declaration":1408,"isOffset":false,"isSlot":false,"src":"1363:8:11","valueSize":1}],"id":1436,"nodeType":"InlineAssembly","src":"1243:137:11"},{"expression":{"id":1437,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1406,"src":"1392:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1413,"id":1438,"nodeType":"Return","src":"1385:10:11"}]},"documentation":{"id":1403,"nodeType":"StructuredDocumentation","src":"777:221:11","text":" @dev Initializes a buffer with an initial capacity.\n @param buf The buffer to initialize.\n @param capacity The number of bytes of space to allocate the buffer.\n @return The buffer, for chaining."},"id":1440,"implemented":true,"kind":"function","modifiers":[],"name":"init","nameLocation":"1010:4:11","nodeType":"FunctionDefinition","parameters":{"id":1409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1406,"mutability":"mutable","name":"buf","nameLocation":"1029:3:11","nodeType":"VariableDeclaration","scope":1440,"src":"1015:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1405,"nodeType":"UserDefinedTypeName","pathNode":{"id":1404,"name":"buffer","nameLocations":["1015:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1015:6:11"},"referencedDeclaration":1402,"src":"1015:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1408,"mutability":"mutable","name":"capacity","nameLocation":"1042:8:11","nodeType":"VariableDeclaration","scope":1440,"src":"1034:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1407,"name":"uint256","nodeType":"ElementaryTypeName","src":"1034:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:37:11"},"returnParameters":{"id":1413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1440,"src":"1075:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1411,"nodeType":"UserDefinedTypeName","pathNode":{"id":1410,"name":"buffer","nameLocations":["1075:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1075:6:11"},"referencedDeclaration":1402,"src":"1075:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1074:15:11"},"scope":1916,"src":"1001:399:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1468,"nodeType":"Block","src":"1707:90:11","statements":[{"assignments":[1451],"declarations":[{"constant":false,"id":1451,"mutability":"mutable","name":"buf","nameLocation":"1727:3:11","nodeType":"VariableDeclaration","scope":1468,"src":"1713:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1450,"nodeType":"UserDefinedTypeName","pathNode":{"id":1449,"name":"buffer","nameLocations":["1713:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1713:6:11"},"referencedDeclaration":1402,"src":"1713:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"id":1452,"nodeType":"VariableDeclarationStatement","src":"1713:17:11"},{"expression":{"id":1457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1453,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1736:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1740:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"1736:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1456,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"1746:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1736:11:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1458,"nodeType":"ExpressionStatement","src":"1736:11:11"},{"expression":{"id":1464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1459,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1753:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1757:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"1753:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1462,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"1768:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1770:6:11","memberName":"length","nodeType":"MemberAccess","src":"1768:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1753:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1465,"nodeType":"ExpressionStatement","src":"1753:23:11"},{"expression":{"id":1466,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1789:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1448,"id":1467,"nodeType":"Return","src":"1782:10:11"}]},"documentation":{"id":1441,"nodeType":"StructuredDocumentation","src":"1404:227:11","text":" @dev Initializes a new buffer from an existing bytes object.\n Changes to the buffer may mutate the original value.\n @param b The bytes object to initialize the buffer with.\n @return A new buffer."},"id":1469,"implemented":true,"kind":"function","modifiers":[],"name":"fromBytes","nameLocation":"1643:9:11","nodeType":"FunctionDefinition","parameters":{"id":1444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1443,"mutability":"mutable","name":"b","nameLocation":"1666:1:11","nodeType":"VariableDeclaration","scope":1469,"src":"1653:14:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1442,"name":"bytes","nodeType":"ElementaryTypeName","src":"1653:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1652:16:11"},"returnParameters":{"id":1448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1469,"src":"1692:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1446,"nodeType":"UserDefinedTypeName","pathNode":{"id":1445,"name":"buffer","nameLocations":["1692:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1692:6:11"},"referencedDeclaration":1402,"src":"1692:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1691:15:11"},"scope":1916,"src":"1634:163:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1492,"nodeType":"Block","src":"1867:90:11","statements":[{"assignments":[1478],"declarations":[{"constant":false,"id":1478,"mutability":"mutable","name":"oldbuf","nameLocation":"1886:6:11","nodeType":"VariableDeclaration","scope":1492,"src":"1873:19:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1477,"name":"bytes","nodeType":"ElementaryTypeName","src":"1873:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1481,"initialValue":{"expression":{"id":1479,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1895:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1899:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"1895:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1873:29:11"},{"expression":{"arguments":[{"id":1483,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1913:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1484,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1474,"src":"1918:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1482,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1440,"src":"1908:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1908:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1486,"nodeType":"ExpressionStatement","src":"1908:19:11"},{"expression":{"arguments":[{"id":1488,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1940:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1489,"name":"oldbuf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1478,"src":"1945:6:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1487,"name":"append","nodeType":"Identifier","overloadedDeclarations":[1636,1659],"referencedDeclaration":1659,"src":"1933:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":1490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1491,"nodeType":"ExpressionStatement","src":"1933:19:11"}]},"id":1493,"implemented":true,"kind":"function","modifiers":[],"name":"resize","nameLocation":"1810:6:11","nodeType":"FunctionDefinition","parameters":{"id":1475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1472,"mutability":"mutable","name":"buf","nameLocation":"1831:3:11","nodeType":"VariableDeclaration","scope":1493,"src":"1817:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1471,"nodeType":"UserDefinedTypeName","pathNode":{"id":1470,"name":"buffer","nameLocations":["1817:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1817:6:11"},"referencedDeclaration":1402,"src":"1817:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1474,"mutability":"mutable","name":"capacity","nameLocation":"1844:8:11","nodeType":"VariableDeclaration","scope":1493,"src":"1836:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1473,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1816:37:11"},"returnParameters":{"id":1476,"nodeType":"ParameterList","parameters":[],"src":"1867:0:11"},"scope":1916,"src":"1801:156:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1511,"nodeType":"Block","src":"2027:58:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1502,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1495,"src":"2037:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1503,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"2041:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2037:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1508,"nodeType":"IfStatement","src":"2033:34:11","trueBody":{"id":1507,"nodeType":"Block","src":"2044:23:11","statements":[{"expression":{"id":1505,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1495,"src":"2059:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1501,"id":1506,"nodeType":"Return","src":"2052:8:11"}]}},{"expression":{"id":1509,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"2079:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1501,"id":1510,"nodeType":"Return","src":"2072:8:11"}]},"id":1512,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"1970:3:11","nodeType":"FunctionDefinition","parameters":{"id":1498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1495,"mutability":"mutable","name":"a","nameLocation":"1982:1:11","nodeType":"VariableDeclaration","scope":1512,"src":"1974:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1974:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1497,"mutability":"mutable","name":"b","nameLocation":"1993:1:11","nodeType":"VariableDeclaration","scope":1512,"src":"1985:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1496,"name":"uint256","nodeType":"ElementaryTypeName","src":"1985:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1973:22:11"},"returnParameters":{"id":1501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1512,"src":"2018:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1499,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2017:9:11"},"scope":1916,"src":"1961:124:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1525,"nodeType":"Block","src":"2300:97:11","statements":[{"AST":{"nodeType":"YulBlock","src":"2315:62:11","statements":[{"nodeType":"YulVariableDeclaration","src":"2323:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"2343:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2337:5:11"},"nodeType":"YulFunctionCall","src":"2337:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"2327:6:11","type":""}]},{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"2361:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"2369:1:11","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2354:6:11"},"nodeType":"YulFunctionCall","src":"2354:17:11"},"nodeType":"YulExpressionStatement","src":"2354:17:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1516,"isOffset":false,"isSlot":false,"src":"2343:3:11","valueSize":1}],"id":1522,"nodeType":"InlineAssembly","src":"2306:71:11"},{"expression":{"id":1523,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"2389:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1521,"id":1524,"nodeType":"Return","src":"2382:10:11"}]},"documentation":{"id":1513,"nodeType":"StructuredDocumentation","src":"2089:133:11","text":" @dev Sets buffer length to 0.\n @param buf The buffer to truncate.\n @return The original buffer, for chaining.."},"id":1526,"implemented":true,"kind":"function","modifiers":[],"name":"truncate","nameLocation":"2234:8:11","nodeType":"FunctionDefinition","parameters":{"id":1517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1516,"mutability":"mutable","name":"buf","nameLocation":"2257:3:11","nodeType":"VariableDeclaration","scope":1526,"src":"2243:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1515,"nodeType":"UserDefinedTypeName","pathNode":{"id":1514,"name":"buffer","nameLocations":["2243:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2243:6:11"},"referencedDeclaration":1402,"src":"2243:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2242:19:11"},"returnParameters":{"id":1521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1526,"src":"2285:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1519,"nodeType":"UserDefinedTypeName","pathNode":{"id":1518,"name":"buffer","nameLocations":["2285:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2285:6:11"},"referencedDeclaration":1402,"src":"2285:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2284:15:11"},"scope":1916,"src":"2225:172:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1611,"nodeType":"Block","src":"2882:1073:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1543,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2896:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":1544,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"2903:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2908:6:11","memberName":"length","nodeType":"MemberAccess","src":"2903:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2896:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1542,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2888:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2888:27:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1548,"nodeType":"ExpressionStatement","src":"2888:27:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1549,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1532,"src":"2926:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1550,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2932:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1552,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2938:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2942:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"2938:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1569,"nodeType":"IfStatement","src":"2922:90:11","trueBody":{"id":1568,"nodeType":"Block","src":"2952:60:11","statements":[{"expression":{"arguments":[{"id":1556,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2967:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":1558,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2976:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2980:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"2976:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1560,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2990:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1561,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1532,"src":"2996:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2990:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1557,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1512,"src":"2972:3:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2972:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3003:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2972:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1555,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"2960:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2960:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1567,"nodeType":"ExpressionStatement","src":"2960:45:11"}]}},{"assignments":[1571],"declarations":[{"constant":false,"id":1571,"mutability":"mutable","name":"dest","nameLocation":"3026:4:11","nodeType":"VariableDeclaration","scope":1611,"src":"3018:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1570,"name":"uint256","nodeType":"ElementaryTypeName","src":"3018:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1572,"nodeType":"VariableDeclarationStatement","src":"3018:12:11"},{"assignments":[1574],"declarations":[{"constant":false,"id":1574,"mutability":"mutable","name":"src","nameLocation":"3044:3:11","nodeType":"VariableDeclaration","scope":1611,"src":"3036:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1573,"name":"uint256","nodeType":"ElementaryTypeName","src":"3036:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1575,"nodeType":"VariableDeclarationStatement","src":"3036:11:11"},{"AST":{"nodeType":"YulBlock","src":"3062:430:11","statements":[{"nodeType":"YulVariableDeclaration","src":"3113:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"3133:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3127:5:11"},"nodeType":"YulFunctionCall","src":"3127:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"3117:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3184:27:11","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3204:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3198:5:11"},"nodeType":"YulFunctionCall","src":"3198:13:11"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"3188:6:11","type":""}]},{"nodeType":"YulAssignment","src":"3291:33:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3307:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"3315:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3303:3:11"},"nodeType":"YulFunctionCall","src":"3303:15:11"},{"name":"off","nodeType":"YulIdentifier","src":"3320:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3299:3:11"},"nodeType":"YulFunctionCall","src":"3299:25:11"},"variableNames":[{"name":"dest","nodeType":"YulIdentifier","src":"3291:4:11"}]},{"body":{"nodeType":"YulBlock","src":"3412:47:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3429:6:11"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3441:3:11"},{"name":"off","nodeType":"YulIdentifier","src":"3446:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3437:3:11"},"nodeType":"YulFunctionCall","src":"3437:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3422:6:11"},"nodeType":"YulFunctionCall","src":"3422:29:11"},"nodeType":"YulExpressionStatement","src":"3422:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3393:3:11"},{"name":"off","nodeType":"YulIdentifier","src":"3398:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3389:3:11"},"nodeType":"YulFunctionCall","src":"3389:13:11"},{"name":"buflen","nodeType":"YulIdentifier","src":"3404:6:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3386:2:11"},"nodeType":"YulFunctionCall","src":"3386:25:11"},"nodeType":"YulIf","src":"3383:76:11"},{"nodeType":"YulAssignment","src":"3466:20:11","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3477:4:11"},{"kind":"number","nodeType":"YulLiteral","src":"3483:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3473:3:11"},"nodeType":"YulFunctionCall","src":"3473:13:11"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"3466:3:11"}]}]},"evmVersion":"london","externalReferences":[{"declaration":1530,"isOffset":false,"isSlot":false,"src":"3133:3:11","valueSize":1},{"declaration":1534,"isOffset":false,"isSlot":false,"src":"3477:4:11","valueSize":1},{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3291:4:11","valueSize":1},{"declaration":1536,"isOffset":false,"isSlot":false,"src":"3393:3:11","valueSize":1},{"declaration":1536,"isOffset":false,"isSlot":false,"src":"3441:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3320:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3398:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3446:3:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3466:3:11","valueSize":1}],"id":1576,"nodeType":"InlineAssembly","src":"3053:439:11"},{"body":{"id":1593,"nodeType":"Block","src":"3573:100:11","statements":[{"AST":{"nodeType":"YulBlock","src":"3590:42:11","statements":[{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3607:4:11"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3619:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3613:5:11"},"nodeType":"YulFunctionCall","src":"3613:10:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3600:6:11"},"nodeType":"YulFunctionCall","src":"3600:24:11"},"nodeType":"YulExpressionStatement","src":"3600:24:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3607:4:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3619:3:11","valueSize":1}],"id":1584,"nodeType":"InlineAssembly","src":"3581:51:11"},{"expression":{"id":1587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1585,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"3639:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3647:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3639:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1588,"nodeType":"ExpressionStatement","src":"3639:10:11"},{"expression":{"id":1591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1589,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"3657:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3664:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3657:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1592,"nodeType":"ExpressionStatement","src":"3657:9:11"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1577,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3551:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":1578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3558:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3551:9:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1594,"loopExpression":{"expression":{"id":1582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1580,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3562:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":1581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3569:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3562:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1583,"nodeType":"ExpressionStatement","src":"3562:9:11"},"nodeType":"ForStatement","src":"3544:129:11"},{"id":1608,"nodeType":"UncheckedBlock","src":"3707:227:11","statements":[{"assignments":[1596],"declarations":[{"constant":false,"id":1596,"mutability":"mutable","name":"mask","nameLocation":"3733:4:11","nodeType":"VariableDeclaration","scope":1608,"src":"3725:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1595,"name":"uint256","nodeType":"ElementaryTypeName","src":"3725:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1606,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3741:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3747:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1599,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3752:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3747:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1601,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3746:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3741:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1603,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3740:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3760:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3740:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3725:36:11"},{"AST":{"nodeType":"YulBlock","src":"3778:150:11","statements":[{"nodeType":"YulVariableDeclaration","src":"3788:41:11","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3813:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3807:5:11"},"nodeType":"YulFunctionCall","src":"3807:10:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"3823:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3819:3:11"},"nodeType":"YulFunctionCall","src":"3819:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3803:3:11"},"nodeType":"YulFunctionCall","src":"3803:26:11"},"variables":[{"name":"srcpart","nodeType":"YulTypedName","src":"3792:7:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3838:38:11","value":{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3864:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3858:5:11"},"nodeType":"YulFunctionCall","src":"3858:11:11"},{"name":"mask","nodeType":"YulIdentifier","src":"3871:4:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3854:3:11"},"nodeType":"YulFunctionCall","src":"3854:22:11"},"variables":[{"name":"destpart","nodeType":"YulTypedName","src":"3842:8:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3892:4:11"},{"arguments":[{"name":"destpart","nodeType":"YulIdentifier","src":"3901:8:11"},{"name":"srcpart","nodeType":"YulIdentifier","src":"3911:7:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3898:2:11"},"nodeType":"YulFunctionCall","src":"3898:21:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3885:6:11"},"nodeType":"YulFunctionCall","src":"3885:35:11"},"nodeType":"YulExpressionStatement","src":"3885:35:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3864:4:11","valueSize":1},{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3892:4:11","valueSize":1},{"declaration":1596,"isOffset":false,"isSlot":false,"src":"3823:4:11","valueSize":1},{"declaration":1596,"isOffset":false,"isSlot":false,"src":"3871:4:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3813:3:11","valueSize":1}],"id":1607,"nodeType":"InlineAssembly","src":"3769:159:11"}]},{"expression":{"id":1609,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"3947:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1541,"id":1610,"nodeType":"Return","src":"3940:10:11"}]},"documentation":{"id":1527,"nodeType":"StructuredDocumentation","src":"2401:341:11","text":" @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The start offset to write to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1612,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"2754:5:11","nodeType":"FunctionDefinition","parameters":{"id":1537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1530,"mutability":"mutable","name":"buf","nameLocation":"2779:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2765:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1529,"nodeType":"UserDefinedTypeName","pathNode":{"id":1528,"name":"buffer","nameLocations":["2765:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2765:6:11"},"referencedDeclaration":1402,"src":"2765:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1532,"mutability":"mutable","name":"off","nameLocation":"2796:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2788:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1531,"name":"uint256","nodeType":"ElementaryTypeName","src":"2788:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1534,"mutability":"mutable","name":"data","nameLocation":"2818:4:11","nodeType":"VariableDeclaration","scope":1612,"src":"2805:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1533,"name":"bytes","nodeType":"ElementaryTypeName","src":"2805:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1536,"mutability":"mutable","name":"len","nameLocation":"2836:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2828:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1535,"name":"uint256","nodeType":"ElementaryTypeName","src":"2828:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2759:84:11"},"returnParameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1612,"src":"2867:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1539,"nodeType":"UserDefinedTypeName","pathNode":{"id":1538,"name":"buffer","nameLocations":["2867:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2867:6:11"},"referencedDeclaration":1402,"src":"2867:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2866:15:11"},"scope":1916,"src":"2745:1210:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1635,"nodeType":"Block","src":"4379:55:11","statements":[{"expression":{"arguments":[{"id":1627,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"4398:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1628,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"4403:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4407:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4403:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4411:6:11","memberName":"length","nodeType":"MemberAccess","src":"4403:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1631,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"4419:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1632,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"4425:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1626,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1612,"src":"4392:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4392:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1625,"id":1634,"nodeType":"Return","src":"4385:44:11"}]},"documentation":{"id":1613,"nodeType":"StructuredDocumentation","src":"3959:296:11","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1636,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4267:6:11","nodeType":"FunctionDefinition","parameters":{"id":1621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1616,"mutability":"mutable","name":"buf","nameLocation":"4293:3:11","nodeType":"VariableDeclaration","scope":1636,"src":"4279:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1615,"nodeType":"UserDefinedTypeName","pathNode":{"id":1614,"name":"buffer","nameLocations":["4279:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4279:6:11"},"referencedDeclaration":1402,"src":"4279:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1618,"mutability":"mutable","name":"data","nameLocation":"4315:4:11","nodeType":"VariableDeclaration","scope":1636,"src":"4302:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1617,"name":"bytes","nodeType":"ElementaryTypeName","src":"4302:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1620,"mutability":"mutable","name":"len","nameLocation":"4333:3:11","nodeType":"VariableDeclaration","scope":1636,"src":"4325:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1619,"name":"uint256","nodeType":"ElementaryTypeName","src":"4325:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4273:67:11"},"returnParameters":{"id":1625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1636,"src":"4364:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1623,"nodeType":"UserDefinedTypeName","pathNode":{"id":1622,"name":"buffer","nameLocations":["4364:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4364:6:11"},"referencedDeclaration":1402,"src":"4364:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4363:15:11"},"scope":1916,"src":"4258:176:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1658,"nodeType":"Block","src":"4784:63:11","statements":[{"expression":{"arguments":[{"id":1649,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1640,"src":"4803:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1650,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1640,"src":"4808:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4812:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4808:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4816:6:11","memberName":"length","nodeType":"MemberAccess","src":"4808:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1653,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"4824:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1654,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"4830:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4835:6:11","memberName":"length","nodeType":"MemberAccess","src":"4830:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1648,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1612,"src":"4797:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4797:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1647,"id":1657,"nodeType":"Return","src":"4790:52:11"}]},"documentation":{"id":1637,"nodeType":"StructuredDocumentation","src":"4438:251:11","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1659,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4701:6:11","nodeType":"FunctionDefinition","parameters":{"id":1643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1640,"mutability":"mutable","name":"buf","nameLocation":"4722:3:11","nodeType":"VariableDeclaration","scope":1659,"src":"4708:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1639,"nodeType":"UserDefinedTypeName","pathNode":{"id":1638,"name":"buffer","nameLocations":["4708:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4708:6:11"},"referencedDeclaration":1402,"src":"4708:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1642,"mutability":"mutable","name":"data","nameLocation":"4740:4:11","nodeType":"VariableDeclaration","scope":1659,"src":"4727:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1641,"name":"bytes","nodeType":"ElementaryTypeName","src":"4727:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4707:38:11"},"returnParameters":{"id":1647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1659,"src":"4769:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1645,"nodeType":"UserDefinedTypeName","pathNode":{"id":1644,"name":"buffer","nameLocations":["4769:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4769:6:11"},"referencedDeclaration":1402,"src":"4769:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4768:15:11"},"scope":1916,"src":"4692:155:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1690,"nodeType":"Block","src":"5266:521:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1673,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"5276:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":1674,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5283:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5287:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"5283:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5276:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1686,"nodeType":"IfStatement","src":"5272:69:11","trueBody":{"id":1685,"nodeType":"Block","src":"5297:44:11","statements":[{"expression":{"arguments":[{"id":1678,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5312:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1679,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5317:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5321:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"5317:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5332:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5317:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1677,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"5305:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5305:29:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1684,"nodeType":"ExpressionStatement","src":"5305:29:11"}]}},{"AST":{"nodeType":"YulBlock","src":"5356:411:11","statements":[{"nodeType":"YulVariableDeclaration","src":"5407:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"5427:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5421:5:11"},"nodeType":"YulFunctionCall","src":"5421:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"5411:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5478:27:11","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5498:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5492:5:11"},"nodeType":"YulFunctionCall","src":"5492:13:11"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"5482:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5576:37:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5596:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"5604:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5592:3:11"},"nodeType":"YulFunctionCall","src":"5592:16:11"},{"kind":"number","nodeType":"YulLiteral","src":"5610:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5588:3:11"},"nodeType":"YulFunctionCall","src":"5588:25:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"5580:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"5628:4:11"},{"name":"data","nodeType":"YulIdentifier","src":"5634:4:11"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"5620:7:11"},"nodeType":"YulFunctionCall","src":"5620:19:11"},"nodeType":"YulExpressionStatement","src":"5620:19:11"},{"body":{"nodeType":"YulBlock","src":"5713:48:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5730:6:11"},{"arguments":[{"name":"buflen","nodeType":"YulIdentifier","src":"5742:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"5750:1:11","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:11"},"nodeType":"YulFunctionCall","src":"5738:14:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5723:6:11"},"nodeType":"YulFunctionCall","src":"5723:30:11"},"nodeType":"YulExpressionStatement","src":"5723:30:11"}]},"condition":{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"5700:3:11"},{"name":"buflen","nodeType":"YulIdentifier","src":"5705:6:11"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5697:2:11"},"nodeType":"YulFunctionCall","src":"5697:15:11"},"nodeType":"YulIf","src":"5694:67:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1663,"isOffset":false,"isSlot":false,"src":"5427:3:11","valueSize":1},{"declaration":1667,"isOffset":false,"isSlot":false,"src":"5634:4:11","valueSize":1},{"declaration":1665,"isOffset":false,"isSlot":false,"src":"5604:3:11","valueSize":1},{"declaration":1665,"isOffset":false,"isSlot":false,"src":"5700:3:11","valueSize":1}],"id":1687,"nodeType":"InlineAssembly","src":"5347:420:11"},{"expression":{"id":1688,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5779:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1672,"id":1689,"nodeType":"Return","src":"5772:10:11"}]},"documentation":{"id":1660,"nodeType":"StructuredDocumentation","src":"4851:294:11","text":" @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write the byte at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1691,"implemented":true,"kind":"function","modifiers":[],"name":"writeUint8","nameLocation":"5157:10:11","nodeType":"FunctionDefinition","parameters":{"id":1668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1663,"mutability":"mutable","name":"buf","nameLocation":"5187:3:11","nodeType":"VariableDeclaration","scope":1691,"src":"5173:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1662,"nodeType":"UserDefinedTypeName","pathNode":{"id":1661,"name":"buffer","nameLocations":["5173:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"5173:6:11"},"referencedDeclaration":1402,"src":"5173:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1665,"mutability":"mutable","name":"off","nameLocation":"5204:3:11","nodeType":"VariableDeclaration","scope":1691,"src":"5196:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1664,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1667,"mutability":"mutable","name":"data","nameLocation":"5219:4:11","nodeType":"VariableDeclaration","scope":1691,"src":"5213:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1666,"name":"uint8","nodeType":"ElementaryTypeName","src":"5213:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5167:60:11"},"returnParameters":{"id":1672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1691,"src":"5251:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1670,"nodeType":"UserDefinedTypeName","pathNode":{"id":1669,"name":"buffer","nameLocations":["5251:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"5251:6:11"},"referencedDeclaration":1402,"src":"5251:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"5250:15:11"},"scope":1916,"src":"5148:639:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1711,"nodeType":"Block","src":"6130:55:11","statements":[{"expression":{"arguments":[{"id":1704,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1695,"src":"6154:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1705,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1695,"src":"6159:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6163:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"6159:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6167:6:11","memberName":"length","nodeType":"MemberAccess","src":"6159:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1708,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"6175:4:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1703,"name":"writeUint8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"6143:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6143:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1702,"id":1710,"nodeType":"Return","src":"6136:44:11"}]},"documentation":{"id":1692,"nodeType":"StructuredDocumentation","src":"5791:246:11","text":" @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1712,"implemented":true,"kind":"function","modifiers":[],"name":"appendUint8","nameLocation":"6049:11:11","nodeType":"FunctionDefinition","parameters":{"id":1698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1695,"mutability":"mutable","name":"buf","nameLocation":"6075:3:11","nodeType":"VariableDeclaration","scope":1712,"src":"6061:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1694,"nodeType":"UserDefinedTypeName","pathNode":{"id":1693,"name":"buffer","nameLocations":["6061:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6061:6:11"},"referencedDeclaration":1402,"src":"6061:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1697,"mutability":"mutable","name":"data","nameLocation":"6086:4:11","nodeType":"VariableDeclaration","scope":1712,"src":"6080:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1696,"name":"uint8","nodeType":"ElementaryTypeName","src":"6080:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6060:31:11"},"returnParameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1712,"src":"6115:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1700,"nodeType":"UserDefinedTypeName","pathNode":{"id":1699,"name":"buffer","nameLocations":["6115:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6115:6:11"},"referencedDeclaration":1402,"src":"6115:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6114:15:11"},"scope":1916,"src":"6040:145:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1771,"nodeType":"Block","src":"6677:652:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1728,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6687:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1729,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6693:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1731,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6699:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6703:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"6699:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1745,"nodeType":"IfStatement","src":"6683:73:11","trueBody":{"id":1744,"nodeType":"Block","src":"6713:43:11","statements":[{"expression":{"arguments":[{"id":1735,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6728:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1736,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6734:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1737,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6740:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6734:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1739,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6733:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6747:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6733:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1734,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"6721:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6721:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1743,"nodeType":"ExpressionStatement","src":"6721:28:11"}]}},{"id":1768,"nodeType":"UncheckedBlock","src":"6762:547:11","statements":[{"assignments":[1747],"declarations":[{"constant":false,"id":1747,"mutability":"mutable","name":"mask","nameLocation":"6788:4:11","nodeType":"VariableDeclaration","scope":1768,"src":"6780:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1746,"name":"uint256","nodeType":"ElementaryTypeName","src":"6780:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1754,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6796:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1749,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6801:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6796:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1751,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6795:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6808:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6795:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6780:29:11"},{"expression":{"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1755,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1720,"src":"6843:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1756,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1720,"src":"6850:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":1757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6859:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6864:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1759,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6869:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6864:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1761,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6863:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6859:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1763,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6858:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6850:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6843:31:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1766,"nodeType":"ExpressionStatement","src":"6843:31:11"},{"AST":{"nodeType":"YulBlock","src":"6891:412:11","statements":[{"nodeType":"YulVariableDeclaration","src":"6946:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"6966:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6960:5:11"},"nodeType":"YulFunctionCall","src":"6960:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"6950:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7051:38:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7071:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"7079:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7067:3:11"},"nodeType":"YulFunctionCall","src":"7067:16:11"},{"name":"len","nodeType":"YulIdentifier","src":"7085:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7063:3:11"},"nodeType":"YulFunctionCall","src":"7063:26:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"7055:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7105:4:11"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7124:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7118:5:11"},"nodeType":"YulFunctionCall","src":"7118:11:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"7135:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7131:3:11"},"nodeType":"YulFunctionCall","src":"7131:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7114:3:11"},"nodeType":"YulFunctionCall","src":"7114:27:11"},{"name":"data","nodeType":"YulIdentifier","src":"7143:4:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7111:2:11"},"nodeType":"YulFunctionCall","src":"7111:37:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7098:6:11"},"nodeType":"YulFunctionCall","src":"7098:51:11"},"nodeType":"YulExpressionStatement","src":"7098:51:11"},{"body":{"nodeType":"YulBlock","src":"7244:51:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7263:6:11"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7275:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"7280:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7271:3:11"},"nodeType":"YulFunctionCall","src":"7271:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7256:6:11"},"nodeType":"YulFunctionCall","src":"7256:29:11"},"nodeType":"YulExpressionStatement","src":"7256:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7218:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"7223:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7214:3:11"},"nodeType":"YulFunctionCall","src":"7214:13:11"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7235:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7229:5:11"},"nodeType":"YulFunctionCall","src":"7229:13:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7211:2:11"},"nodeType":"YulFunctionCall","src":"7211:32:11"},"nodeType":"YulIf","src":"7208:87:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1716,"isOffset":false,"isSlot":false,"src":"6966:3:11","valueSize":1},{"declaration":1720,"isOffset":false,"isSlot":false,"src":"7143:4:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7085:3:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7223:3:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7280:3:11","valueSize":1},{"declaration":1747,"isOffset":false,"isSlot":false,"src":"7135:4:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7079:3:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7218:3:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7275:3:11","valueSize":1}],"id":1767,"nodeType":"InlineAssembly","src":"6882:421:11"}]},{"expression":{"id":1769,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"7321:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1727,"id":1770,"nodeType":"Return","src":"7314:10:11"}]},"documentation":{"id":1713,"nodeType":"StructuredDocumentation","src":"6189:354:11","text":" @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (left-aligned).\n @return The original buffer, for chaining."},"id":1772,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"6555:5:11","nodeType":"FunctionDefinition","parameters":{"id":1723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1716,"mutability":"mutable","name":"buf","nameLocation":"6580:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6566:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1715,"nodeType":"UserDefinedTypeName","pathNode":{"id":1714,"name":"buffer","nameLocations":["6566:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6566:6:11"},"referencedDeclaration":1402,"src":"6566:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1718,"mutability":"mutable","name":"off","nameLocation":"6597:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6589:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1717,"name":"uint256","nodeType":"ElementaryTypeName","src":"6589:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1720,"mutability":"mutable","name":"data","nameLocation":"6614:4:11","nodeType":"VariableDeclaration","scope":1772,"src":"6606:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1719,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6606:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1722,"mutability":"mutable","name":"len","nameLocation":"6632:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6624:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1721,"name":"uint256","nodeType":"ElementaryTypeName","src":"6624:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6560:79:11"},"returnParameters":{"id":1727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1772,"src":"6662:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1725,"nodeType":"UserDefinedTypeName","pathNode":{"id":1724,"name":"buffer","nameLocations":["6662:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6662:6:11"},"referencedDeclaration":1402,"src":"6662:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6661:15:11"},"scope":1916,"src":"6546:783:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1796,"nodeType":"Block","src":"7746:52:11","statements":[{"expression":{"arguments":[{"id":1787,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"7765:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1788,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"7770:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1791,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1780,"src":"7783:4:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7775:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7775:7:11","typeDescriptions":{}}},"id":1792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7775:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7790:2:11","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1786,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"7759:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7759:34:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1785,"id":1795,"nodeType":"Return","src":"7752:41:11"}]},"documentation":{"id":1773,"nodeType":"StructuredDocumentation","src":"7333:288:11","text":" @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1797,"implemented":true,"kind":"function","modifiers":[],"name":"writeBytes20","nameLocation":"7633:12:11","nodeType":"FunctionDefinition","parameters":{"id":1781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1776,"mutability":"mutable","name":"buf","nameLocation":"7665:3:11","nodeType":"VariableDeclaration","scope":1797,"src":"7651:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1775,"nodeType":"UserDefinedTypeName","pathNode":{"id":1774,"name":"buffer","nameLocations":["7651:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"7651:6:11"},"referencedDeclaration":1402,"src":"7651:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1778,"mutability":"mutable","name":"off","nameLocation":"7682:3:11","nodeType":"VariableDeclaration","scope":1797,"src":"7674:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1777,"name":"uint256","nodeType":"ElementaryTypeName","src":"7674:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1780,"mutability":"mutable","name":"data","nameLocation":"7699:4:11","nodeType":"VariableDeclaration","scope":1797,"src":"7691:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1779,"name":"bytes20","nodeType":"ElementaryTypeName","src":"7691:7:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"7645:62:11"},"returnParameters":{"id":1785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1797,"src":"7731:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1783,"nodeType":"UserDefinedTypeName","pathNode":{"id":1782,"name":"buffer","nameLocations":["7731:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"7731:6:11"},"referencedDeclaration":1402,"src":"7731:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"7730:15:11"},"scope":1916,"src":"7624:174:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1821,"nodeType":"Block","src":"8149:63:11","statements":[{"expression":{"arguments":[{"id":1810,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"8168:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1811,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"8173:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8177:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"8173:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8181:6:11","memberName":"length","nodeType":"MemberAccess","src":"8173:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1816,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1803,"src":"8197:4:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8189:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8189:7:11","typeDescriptions":{}}},"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8189:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8204:2:11","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1809,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"8162:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8162:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1808,"id":1820,"nodeType":"Return","src":"8155:52:11"}]},"documentation":{"id":1798,"nodeType":"StructuredDocumentation","src":"7802:250:11","text":" @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chhaining."},"id":1822,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes20","nameLocation":"8064:13:11","nodeType":"FunctionDefinition","parameters":{"id":1804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1801,"mutability":"mutable","name":"buf","nameLocation":"8092:3:11","nodeType":"VariableDeclaration","scope":1822,"src":"8078:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1800,"nodeType":"UserDefinedTypeName","pathNode":{"id":1799,"name":"buffer","nameLocations":["8078:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8078:6:11"},"referencedDeclaration":1402,"src":"8078:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1803,"mutability":"mutable","name":"data","nameLocation":"8105:4:11","nodeType":"VariableDeclaration","scope":1822,"src":"8097:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1802,"name":"bytes20","nodeType":"ElementaryTypeName","src":"8097:7:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"8077:33:11"},"returnParameters":{"id":1808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1822,"src":"8134:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1806,"nodeType":"UserDefinedTypeName","pathNode":{"id":1805,"name":"buffer","nameLocations":["8134:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8134:6:11"},"referencedDeclaration":1402,"src":"8134:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8133:15:11"},"scope":1916,"src":"8055:157:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1843,"nodeType":"Block","src":"8562:54:11","statements":[{"expression":{"arguments":[{"id":1835,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"8581:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1836,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"8586:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8590:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"8586:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8594:6:11","memberName":"length","nodeType":"MemberAccess","src":"8586:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1839,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1828,"src":"8602:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3332","id":1840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8608:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":1834,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"8575:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8575:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1833,"id":1842,"nodeType":"Return","src":"8568:43:11"}]},"documentation":{"id":1823,"nodeType":"StructuredDocumentation","src":"8216:249:11","text":" @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1844,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes32","nameLocation":"8477:13:11","nodeType":"FunctionDefinition","parameters":{"id":1829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1826,"mutability":"mutable","name":"buf","nameLocation":"8505:3:11","nodeType":"VariableDeclaration","scope":1844,"src":"8491:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1825,"nodeType":"UserDefinedTypeName","pathNode":{"id":1824,"name":"buffer","nameLocations":["8491:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8491:6:11"},"referencedDeclaration":1402,"src":"8491:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1828,"mutability":"mutable","name":"data","nameLocation":"8518:4:11","nodeType":"VariableDeclaration","scope":1844,"src":"8510:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1827,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8510:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8490:33:11"},"returnParameters":{"id":1833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1844,"src":"8547:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1831,"nodeType":"UserDefinedTypeName","pathNode":{"id":1830,"name":"buffer","nameLocations":["8547:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8547:6:11"},"referencedDeclaration":1402,"src":"8547:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8546:15:11"},"scope":1916,"src":"8468:148:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1890,"nodeType":"Block","src":"9108:541:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1860,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9118:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1861,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"9124:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1863,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9130:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9134:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"9130:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1877,"nodeType":"IfStatement","src":"9114:73:11","trueBody":{"id":1876,"nodeType":"Block","src":"9144:43:11","statements":[{"expression":{"arguments":[{"id":1867,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9159:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1868,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9165:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1869,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"9171:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9165:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1871,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9164:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9178:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9164:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1866,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"9152:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9152:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1875,"nodeType":"ExpressionStatement","src":"9152:28:11"}]}},{"assignments":[1879],"declarations":[{"constant":false,"id":1879,"mutability":"mutable","name":"mask","nameLocation":"9201:4:11","nodeType":"VariableDeclaration","scope":1890,"src":"9193:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1878,"name":"uint256","nodeType":"ElementaryTypeName","src":"9193:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1886,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9209:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1881,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9214:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9209:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1883,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9208:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9221:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9208:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9193:29:11"},{"AST":{"nodeType":"YulBlock","src":"9237:392:11","statements":[{"nodeType":"YulVariableDeclaration","src":"9288:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"9308:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9302:5:11"},"nodeType":"YulFunctionCall","src":"9302:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"9292:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9389:38:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9409:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"9417:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9405:3:11"},"nodeType":"YulFunctionCall","src":"9405:16:11"},{"name":"len","nodeType":"YulIdentifier","src":"9423:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9401:3:11"},"nodeType":"YulFunctionCall","src":"9401:26:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"9393:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9441:4:11"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9460:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9454:5:11"},"nodeType":"YulFunctionCall","src":"9454:11:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"9471:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9467:3:11"},"nodeType":"YulFunctionCall","src":"9467:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9450:3:11"},"nodeType":"YulFunctionCall","src":"9450:27:11"},{"name":"data","nodeType":"YulIdentifier","src":"9479:4:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9447:2:11"},"nodeType":"YulFunctionCall","src":"9447:37:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9434:6:11"},"nodeType":"YulFunctionCall","src":"9434:51:11"},"nodeType":"YulExpressionStatement","src":"9434:51:11"},{"body":{"nodeType":"YulBlock","src":"9576:47:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9593:6:11"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9605:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"9610:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9601:3:11"},"nodeType":"YulFunctionCall","src":"9601:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9586:6:11"},"nodeType":"YulFunctionCall","src":"9586:29:11"},"nodeType":"YulExpressionStatement","src":"9586:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9550:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"9555:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9546:3:11"},"nodeType":"YulFunctionCall","src":"9546:13:11"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9567:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9561:5:11"},"nodeType":"YulFunctionCall","src":"9561:13:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9543:2:11"},"nodeType":"YulFunctionCall","src":"9543:32:11"},"nodeType":"YulIf","src":"9540:83:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1848,"isOffset":false,"isSlot":false,"src":"9308:3:11","valueSize":1},{"declaration":1852,"isOffset":false,"isSlot":false,"src":"9479:4:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9423:3:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9555:3:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9610:3:11","valueSize":1},{"declaration":1879,"isOffset":false,"isSlot":false,"src":"9471:4:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9417:3:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9550:3:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9605:3:11","valueSize":1}],"id":1887,"nodeType":"InlineAssembly","src":"9228:401:11"},{"expression":{"id":1888,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9641:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1859,"id":1889,"nodeType":"Return","src":"9634:10:11"}]},"documentation":{"id":1845,"nodeType":"StructuredDocumentation","src":"8620:351:11","text":" @dev Writes an integer to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (right-aligned).\n @return The original buffer, for chaining."},"id":1891,"implemented":true,"kind":"function","modifiers":[],"name":"writeInt","nameLocation":"8983:8:11","nodeType":"FunctionDefinition","parameters":{"id":1855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"mutability":"mutable","name":"buf","nameLocation":"9011:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"8997:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1847,"nodeType":"UserDefinedTypeName","pathNode":{"id":1846,"name":"buffer","nameLocations":["8997:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8997:6:11"},"referencedDeclaration":1402,"src":"8997:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1850,"mutability":"mutable","name":"off","nameLocation":"9028:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"9020:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1849,"name":"uint256","nodeType":"ElementaryTypeName","src":"9020:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1852,"mutability":"mutable","name":"data","nameLocation":"9045:4:11","nodeType":"VariableDeclaration","scope":1891,"src":"9037:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1851,"name":"uint256","nodeType":"ElementaryTypeName","src":"9037:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1854,"mutability":"mutable","name":"len","nameLocation":"9063:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"9055:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1853,"name":"uint256","nodeType":"ElementaryTypeName","src":"9055:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8991:79:11"},"returnParameters":{"id":1859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1891,"src":"9093:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1857,"nodeType":"UserDefinedTypeName","pathNode":{"id":1856,"name":"buffer","nameLocations":["9093:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9093:6:11"},"referencedDeclaration":1402,"src":"9093:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9092:15:11"},"scope":1916,"src":"8974:675:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1914,"nodeType":"Block","src":"10013:58:11","statements":[{"expression":{"arguments":[{"id":1906,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1895,"src":"10035:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1907,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1895,"src":"10040:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10044:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"10040:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10048:6:11","memberName":"length","nodeType":"MemberAccess","src":"10040:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1910,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"10056:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1911,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1899,"src":"10062:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1905,"name":"writeInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"10026:8:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10026:40:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1904,"id":1913,"nodeType":"Return","src":"10019:47:11"}]},"documentation":{"id":1892,"nodeType":"StructuredDocumentation","src":"9653:238:11","text":" @dev Appends a byte to the end of the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer."},"id":1915,"implemented":true,"kind":"function","modifiers":[],"name":"appendInt","nameLocation":"9903:9:11","nodeType":"FunctionDefinition","parameters":{"id":1900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1895,"mutability":"mutable","name":"buf","nameLocation":"9932:3:11","nodeType":"VariableDeclaration","scope":1915,"src":"9918:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1894,"nodeType":"UserDefinedTypeName","pathNode":{"id":1893,"name":"buffer","nameLocations":["9918:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9918:6:11"},"referencedDeclaration":1402,"src":"9918:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1897,"mutability":"mutable","name":"data","nameLocation":"9949:4:11","nodeType":"VariableDeclaration","scope":1915,"src":"9941:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1896,"name":"uint256","nodeType":"ElementaryTypeName","src":"9941:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1899,"mutability":"mutable","name":"len","nameLocation":"9967:3:11","nodeType":"VariableDeclaration","scope":1915,"src":"9959:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1898,"name":"uint256","nodeType":"ElementaryTypeName","src":"9959:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9912:62:11"},"returnParameters":{"id":1904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1915,"src":"9998:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1902,"nodeType":"UserDefinedTypeName","pathNode":{"id":1901,"name":"buffer","nameLocations":["9998:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9998:6:11"},"referencedDeclaration":1402,"src":"9998:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9997:15:11"},"scope":1916,"src":"9894:177:11","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1917,"src":"441:9632:11","usedErrors":[]}],"src":"32:10042:11"},"id":11},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363]},"id":2364,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1918,"literals":["solidity",">=","0.4",".19"],"nodeType":"PragmaDirective","src":"32:25:12"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./BufferChainlink.sol","id":1920,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2364,"sourceUnit":1917,"src":"59:54:12","symbolAliases":[{"foreign":{"id":1919,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"67:15:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"CBORChainlink","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2363,"linearizedBaseContracts":[2363],"name":"CBORChainlink","nameLocation":"123:13:12","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1924,"libraryName":{"id":1921,"name":"BufferChainlink","nameLocations":["147:15:12"],"nodeType":"IdentifierPath","referencedDeclaration":1916,"src":"147:15:12"},"nodeType":"UsingForDirective","src":"141:49:12","typeName":{"id":1923,"nodeType":"UserDefinedTypeName","pathNode":{"id":1922,"name":"BufferChainlink.buffer","nameLocations":["167:15:12","183:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"167:22:12"},"referencedDeclaration":1402,"src":"167:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"constant":true,"id":1927,"mutability":"constant","name":"MAJOR_TYPE_INT","nameLocation":"217:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"194:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1925,"name":"uint8","nodeType":"ElementaryTypeName","src":"194:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":1926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"234:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":1930,"mutability":"constant","name":"MAJOR_TYPE_NEGATIVE_INT","nameLocation":"262:23:12","nodeType":"VariableDeclaration","scope":2363,"src":"239:50:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1928,"name":"uint8","nodeType":"ElementaryTypeName","src":"239:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":1933,"mutability":"constant","name":"MAJOR_TYPE_BYTES","nameLocation":"316:16:12","nodeType":"VariableDeclaration","scope":2363,"src":"293:43:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1931,"name":"uint8","nodeType":"ElementaryTypeName","src":"293:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"335:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1936,"mutability":"constant","name":"MAJOR_TYPE_STRING","nameLocation":"363:17:12","nodeType":"VariableDeclaration","scope":2363,"src":"340:44:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1934,"name":"uint8","nodeType":"ElementaryTypeName","src":"340:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"383:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"constant":true,"id":1939,"mutability":"constant","name":"MAJOR_TYPE_ARRAY","nameLocation":"411:16:12","nodeType":"VariableDeclaration","scope":2363,"src":"388:43:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1937,"name":"uint8","nodeType":"ElementaryTypeName","src":"388:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":1938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"430:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"private"},{"constant":true,"id":1942,"mutability":"constant","name":"MAJOR_TYPE_MAP","nameLocation":"458:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"435:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1940,"name":"uint8","nodeType":"ElementaryTypeName","src":"435:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"35","id":1941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"475:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"visibility":"private"},{"constant":true,"id":1945,"mutability":"constant","name":"MAJOR_TYPE_TAG","nameLocation":"503:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"480:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1943,"name":"uint8","nodeType":"ElementaryTypeName","src":"480:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"36","id":1944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"520:1:12","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"visibility":"private"},{"constant":true,"id":1948,"mutability":"constant","name":"MAJOR_TYPE_CONTENT_FREE","nameLocation":"548:23:12","nodeType":"VariableDeclaration","scope":2363,"src":"525:50:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1946,"name":"uint8","nodeType":"ElementaryTypeName","src":"525:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"37","id":1947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"574:1:12","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"private"},{"constant":true,"id":1951,"mutability":"constant","name":"TAG_TYPE_BIGNUM","nameLocation":"603:15:12","nodeType":"VariableDeclaration","scope":2363,"src":"580:42:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1949,"name":"uint8","nodeType":"ElementaryTypeName","src":"580:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"621:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1954,"mutability":"constant","name":"TAG_TYPE_NEGATIVE_BIGNUM","nameLocation":"649:24:12","nodeType":"VariableDeclaration","scope":2363,"src":"626:51:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1952,"name":"uint8","nodeType":"ElementaryTypeName","src":"626:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"676:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"body":{"id":2083,"nodeType":"Block","src":"785:522:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1964,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"794:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3233","id":1965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"803:2:12","typeDescriptions":{"typeIdentifier":"t_rational_23_by_1","typeString":"int_const 23"},"value":"23"},"src":"794:11:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1982,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"876:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646","id":1983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"885:4:12","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"876:13:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2007,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"988:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"307846464646","id":2008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"997:6:12","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"value":"0xFFFF"},"src":"988:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2032,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1102:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646464646464646","id":2033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:10:12","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xFFFFFFFF"},"src":"1102:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2078,"nodeType":"Block","src":"1216:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2062,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1247:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1256:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1247:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2065,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1246:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3237","id":2066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:2:12","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"1246:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1240:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2060,"name":"uint8","nodeType":"ElementaryTypeName","src":"1240:5:12","typeDescriptions":{}}},"id":2068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1240:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2057,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1224:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1228:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1224:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1224:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2070,"nodeType":"ExpressionStatement","src":"1224:41:12"},{"expression":{"arguments":[{"id":2074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1287:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"38","id":2075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1294:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"expression":{"id":2071,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1273:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1277:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1273:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1273:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2077,"nodeType":"ExpressionStatement","src":"1273:23:12"}]},"id":2079,"nodeType":"IfStatement","src":"1098:205:12","trueBody":{"id":2056,"nodeType":"Block","src":"1123:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2040,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1154:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1163:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1154:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2043,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1153:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3236","id":2044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1168:2:12","typeDescriptions":{"typeIdentifier":"t_rational_26_by_1","typeString":"int_const 26"},"value":"26"},"src":"1153:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1147:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2038,"name":"uint8","nodeType":"ElementaryTypeName","src":"1147:5:12","typeDescriptions":{}}},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2035,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1131:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1135:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1131:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1131:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2048,"nodeType":"ExpressionStatement","src":"1131:41:12"},{"expression":{"arguments":[{"id":2052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1194:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"34","id":2053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1201:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"expression":{"id":2049,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1180:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1184:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1180:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1180:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2055,"nodeType":"ExpressionStatement","src":"1180:23:12"}]}},"id":2080,"nodeType":"IfStatement","src":"984:319:12","trueBody":{"id":2031,"nodeType":"Block","src":"1005:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2015,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1036:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1036:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2018,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1035:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3235","id":2019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:2:12","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"src":"1035:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1029:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2013,"name":"uint8","nodeType":"ElementaryTypeName","src":"1029:5:12","typeDescriptions":{}}},"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1029:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2010,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1013:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1017:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1013:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1013:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2023,"nodeType":"ExpressionStatement","src":"1013:41:12"},{"expression":{"arguments":[{"id":2027,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1076:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"32","id":2028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1083:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":2024,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1062:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1066:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1062:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1062:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2030,"nodeType":"ExpressionStatement","src":"1062:23:12"}]}},"id":2081,"nodeType":"IfStatement","src":"872:431:12","trueBody":{"id":2006,"nodeType":"Block","src":"891:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1990,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"922:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"922:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1993,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"921:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3234","id":1994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:2:12","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"921:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1988,"name":"uint8","nodeType":"ElementaryTypeName","src":"915:5:12","typeDescriptions":{}}},"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1985,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"899:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"903:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"899:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"899:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1998,"nodeType":"ExpressionStatement","src":"899:41:12"},{"expression":{"arguments":[{"id":2002,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"962:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"31","id":2003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"969:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":1999,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"948:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"952:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"948:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2005,"nodeType":"ExpressionStatement","src":"948:23:12"}]}},"id":2082,"nodeType":"IfStatement","src":"791:512:12","trueBody":{"id":1981,"nodeType":"Block","src":"807:59:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1972,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"838:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"847:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"838:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1975,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"837:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":1976,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"852:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"837:20:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"831:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1970,"name":"uint8","nodeType":"ElementaryTypeName","src":"831:5:12","typeDescriptions":{}}},"id":1978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"831:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1967,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"815:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"819:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"815:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"815:44:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1980,"nodeType":"ExpressionStatement","src":"815:44:12"}]}}]},"id":2084,"implemented":true,"kind":"function","modifiers":[],"name":"encodeFixedNumeric","nameLocation":"691:18:12","nodeType":"FunctionDefinition","parameters":{"id":1962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1957,"mutability":"mutable","name":"buf","nameLocation":"740:3:12","nodeType":"VariableDeclaration","scope":2084,"src":"710:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1956,"nodeType":"UserDefinedTypeName","pathNode":{"id":1955,"name":"BufferChainlink.buffer","nameLocations":["710:15:12","726:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"710:22:12"},"referencedDeclaration":1402,"src":"710:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1959,"mutability":"mutable","name":"major","nameLocation":"751:5:12","nodeType":"VariableDeclaration","scope":2084,"src":"745:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1958,"name":"uint8","nodeType":"ElementaryTypeName","src":"745:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1961,"mutability":"mutable","name":"value","nameLocation":"765:5:12","nodeType":"VariableDeclaration","scope":2084,"src":"758:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1960,"name":"uint64","nodeType":"ElementaryTypeName","src":"758:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"709:62:12"},"returnParameters":{"id":1963,"nodeType":"ParameterList","parameters":[],"src":"785:0:12"},"scope":2363,"src":"682:625:12","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2106,"nodeType":"Block","src":"1408:52:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2097,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2089,"src":"1437:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1446:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1437:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1436:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3331","id":2101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1451:2:12","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"1436:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1430:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2095,"name":"uint8","nodeType":"ElementaryTypeName","src":"1430:5:12","typeDescriptions":{}}},"id":2103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1430:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2092,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2087,"src":"1414:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1418:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1414:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2105,"nodeType":"ExpressionStatement","src":"1414:41:12"}]},"id":2107,"implemented":true,"kind":"function","modifiers":[],"name":"encodeIndefiniteLengthType","nameLocation":"1320:26:12","nodeType":"FunctionDefinition","parameters":{"id":2090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2087,"mutability":"mutable","name":"buf","nameLocation":"1377:3:12","nodeType":"VariableDeclaration","scope":2107,"src":"1347:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2086,"nodeType":"UserDefinedTypeName","pathNode":{"id":2085,"name":"BufferChainlink.buffer","nameLocations":["1347:15:12","1363:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1347:22:12"},"referencedDeclaration":1402,"src":"1347:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2089,"mutability":"mutable","name":"major","nameLocation":"1388:5:12","nodeType":"VariableDeclaration","scope":2107,"src":"1382:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2088,"name":"uint8","nodeType":"ElementaryTypeName","src":"1382:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1346:48:12"},"returnParameters":{"id":2091,"nodeType":"ParameterList","parameters":[],"src":"1408:0:12"},"scope":2363,"src":"1311:149:12","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2135,"nodeType":"Block","src":"1545:155:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1554:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":2116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1562:18:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1554:26:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2133,"nodeType":"Block","src":"1627:69:12","statements":[{"expression":{"arguments":[{"id":2125,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"1654:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2126,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1927,"src":"1659:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"id":2129,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1682:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1675:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2127,"name":"uint64","nodeType":"ElementaryTypeName","src":"1675:6:12","typeDescriptions":{}}},"id":2130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2124,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"1635:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1635:54:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2132,"nodeType":"ExpressionStatement","src":"1635:54:12"}]},"id":2134,"nodeType":"IfStatement","src":"1551:145:12","trueBody":{"id":2123,"nodeType":"Block","src":"1582:39:12","statements":[{"expression":{"arguments":[{"id":2119,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"1603:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2120,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1608:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2118,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2258,"src":"1590:12:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":2121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2122,"nodeType":"ExpressionStatement","src":"1590:24:12"}]}}]},"id":2136,"implemented":true,"kind":"function","modifiers":[],"name":"encodeUInt","nameLocation":"1473:10:12","nodeType":"FunctionDefinition","parameters":{"id":2113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2110,"mutability":"mutable","name":"buf","nameLocation":"1514:3:12","nodeType":"VariableDeclaration","scope":2136,"src":"1484:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2109,"nodeType":"UserDefinedTypeName","pathNode":{"id":2108,"name":"BufferChainlink.buffer","nameLocations":["1484:15:12","1500:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1484:22:12"},"referencedDeclaration":1402,"src":"1484:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2112,"mutability":"mutable","name":"value","nameLocation":"1524:5:12","nodeType":"VariableDeclaration","scope":2136,"src":"1519:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2111,"name":"uint","nodeType":"ElementaryTypeName","src":"1519:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1483:47:12"},"returnParameters":{"id":2114,"nodeType":"ParameterList","parameters":[],"src":"1545:0:12"},"scope":2363,"src":"1464:236:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2201,"nodeType":"Block","src":"1783:367:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2144,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1792:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1800:20:12","subExpression":{"hexValue":"30783130303030303030303030303030303030","id":2145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1801:19:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_18446744073709551616_by_1","typeString":"int_const -18446744073709551616"}},"src":"1792:28:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2154,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1876:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":2155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1884:18:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1876:26:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2166,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1958:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":2167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1967:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1958:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2197,"nodeType":"Block","src":"2054:92:12","statements":[{"expression":{"arguments":[{"id":2183,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"2081:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2184,"name":"MAJOR_TYPE_NEGATIVE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"2086:23:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2126:2:12","subExpression":{"hexValue":"31","id":2189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2127:1:12","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"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2191,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"2131:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2126:10:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2118:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2187,"name":"uint256","nodeType":"ElementaryTypeName","src":"2118:7:12","typeDescriptions":{}}},"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2118:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2111:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2185,"name":"uint64","nodeType":"ElementaryTypeName","src":"2111:6:12","typeDescriptions":{}}},"id":2194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2182,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2062:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2062:77:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2196,"nodeType":"ExpressionStatement","src":"2062:77:12"}]},"id":2198,"nodeType":"IfStatement","src":"1955:191:12","trueBody":{"id":2181,"nodeType":"Block","src":"1970:78:12","statements":[{"expression":{"arguments":[{"id":2170,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1997:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2171,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1927,"src":"2002:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"id":2176,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"2033:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2025:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2174,"name":"uint256","nodeType":"ElementaryTypeName","src":"2025:7:12","typeDescriptions":{}}},"id":2177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2025:14:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2018:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2172,"name":"uint64","nodeType":"ElementaryTypeName","src":"2018:6:12","typeDescriptions":{}}},"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2018:22:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2169,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"1978:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2180,"nodeType":"ExpressionStatement","src":"1978:63:12"}]}},"id":2199,"nodeType":"IfStatement","src":"1873:273:12","trueBody":{"id":2165,"nodeType":"Block","src":"1904:45:12","statements":[{"expression":{"arguments":[{"id":2158,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1925:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":2161,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1935:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1930:4:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2159,"name":"uint","nodeType":"ElementaryTypeName","src":"1930:4:12","typeDescriptions":{}}},"id":2162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1930:11:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2157,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2258,"src":"1912:12:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":2163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2164,"nodeType":"ExpressionStatement","src":"1912:30:12"}]}},"id":2200,"nodeType":"IfStatement","src":"1789:357:12","trueBody":{"id":2153,"nodeType":"Block","src":"1822:45:12","statements":[{"expression":{"arguments":[{"id":2149,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1849:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2150,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1854:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2148,"name":"encodeSignedBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"1830:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_int256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":2151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1830:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2152,"nodeType":"ExpressionStatement","src":"1830:30:12"}]}}]},"id":2202,"implemented":true,"kind":"function","modifiers":[],"name":"encodeInt","nameLocation":"1713:9:12","nodeType":"FunctionDefinition","parameters":{"id":2142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2139,"mutability":"mutable","name":"buf","nameLocation":"1753:3:12","nodeType":"VariableDeclaration","scope":2202,"src":"1723:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2138,"nodeType":"UserDefinedTypeName","pathNode":{"id":2137,"name":"BufferChainlink.buffer","nameLocations":["1723:15:12","1739:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1723:22:12"},"referencedDeclaration":1402,"src":"1723:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2141,"mutability":"mutable","name":"value","nameLocation":"1762:5:12","nodeType":"VariableDeclaration","scope":2202,"src":"1758:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2140,"name":"int","nodeType":"ElementaryTypeName","src":"1758:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1722:46:12"},"returnParameters":{"id":2143,"nodeType":"ParameterList","parameters":[],"src":"1783:0:12"},"scope":2363,"src":"1704:446:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2226,"nodeType":"Block","src":"2244:97:12","statements":[{"expression":{"arguments":[{"id":2211,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"2269:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2212,"name":"MAJOR_TYPE_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1933,"src":"2274:16:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"id":2215,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"2299:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2305:6:12","memberName":"length","nodeType":"MemberAccess","src":"2299:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2292:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2213,"name":"uint64","nodeType":"ElementaryTypeName","src":"2292:6:12","typeDescriptions":{}}},"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2292:20:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2210,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2250:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2219,"nodeType":"ExpressionStatement","src":"2250:63:12"},{"expression":{"arguments":[{"id":2223,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"2330:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2220,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"2319:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2323:6:12","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"2319:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2319:17:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2225,"nodeType":"ExpressionStatement","src":"2319:17:12"}]},"id":2227,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBytes","nameLocation":"2163:11:12","nodeType":"FunctionDefinition","parameters":{"id":2208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2205,"mutability":"mutable","name":"buf","nameLocation":"2205:3:12","nodeType":"VariableDeclaration","scope":2227,"src":"2175:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2204,"nodeType":"UserDefinedTypeName","pathNode":{"id":2203,"name":"BufferChainlink.buffer","nameLocations":["2175:15:12","2191:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2175:22:12"},"referencedDeclaration":1402,"src":"2175:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2207,"mutability":"mutable","name":"value","nameLocation":"2223:5:12","nodeType":"VariableDeclaration","scope":2227,"src":"2210:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2206,"name":"bytes","nodeType":"ElementaryTypeName","src":"2210:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2174:55:12"},"returnParameters":{"id":2209,"nodeType":"ParameterList","parameters":[],"src":"2244:0:12"},"scope":2363,"src":"2154:187:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2257,"nodeType":"Block","src":"2428:115:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2240,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"2457:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2475:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2457:19:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2243,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2456:21:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2244,"name":"TAG_TYPE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"2480:15:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2456:39:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2450:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2238,"name":"uint8","nodeType":"ElementaryTypeName","src":"2450:5:12","typeDescriptions":{}}},"id":2246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2450:46:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2235,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"2434:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2438:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"2434:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2434:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2248,"nodeType":"ExpressionStatement","src":"2434:63:12"},{"expression":{"arguments":[{"id":2250,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"2515:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":2253,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2232,"src":"2531:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2251,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2520:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2524:6:12","memberName":"encode","nodeType":"MemberAccess","src":"2520:10:12","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2520:17:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2249,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2227,"src":"2503:11:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:35:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2256,"nodeType":"ExpressionStatement","src":"2503:35:12"}]},"id":2258,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBigNum","nameLocation":"2354:12:12","nodeType":"FunctionDefinition","parameters":{"id":2233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2230,"mutability":"mutable","name":"buf","nameLocation":"2397:3:12","nodeType":"VariableDeclaration","scope":2258,"src":"2367:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2229,"nodeType":"UserDefinedTypeName","pathNode":{"id":2228,"name":"BufferChainlink.buffer","nameLocations":["2367:15:12","2383:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2367:22:12"},"referencedDeclaration":1402,"src":"2367:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2232,"mutability":"mutable","name":"value","nameLocation":"2407:5:12","nodeType":"VariableDeclaration","scope":2258,"src":"2402:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2231,"name":"uint","nodeType":"ElementaryTypeName","src":"2402:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2366:47:12"},"returnParameters":{"id":2234,"nodeType":"ParameterList","parameters":[],"src":"2428:0:12"},"scope":2363,"src":"2345:198:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2294,"nodeType":"Block","src":"2635:138:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2271,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"2664:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2682:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2664:19:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2274,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2663:21:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2275,"name":"TAG_TYPE_NEGATIVE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1954,"src":"2687:24:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2663:48:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2657:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2269,"name":"uint8","nodeType":"ElementaryTypeName","src":"2657:5:12","typeDescriptions":{}}},"id":2277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2657:55:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2266,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"2641:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2645:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"2641:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:72:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2279,"nodeType":"ExpressionStatement","src":"2641:72:12"},{"expression":{"arguments":[{"id":2281,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"2731:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2755:2:12","subExpression":{"hexValue":"31","id":2286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2756:1:12","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"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2288,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2263,"src":"2760:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2755:10:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2284,"name":"uint256","nodeType":"ElementaryTypeName","src":"2747:7:12","typeDescriptions":{}}},"id":2290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2282,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2736:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2740:6:12","memberName":"encode","nodeType":"MemberAccess","src":"2736:10:12","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2736:31:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2280,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2227,"src":"2719:11:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2719:49:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2293,"nodeType":"ExpressionStatement","src":"2719:49:12"}]},"id":2295,"implemented":true,"kind":"function","modifiers":[],"name":"encodeSignedBigNum","nameLocation":"2556:18:12","nodeType":"FunctionDefinition","parameters":{"id":2264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2261,"mutability":"mutable","name":"buf","nameLocation":"2605:3:12","nodeType":"VariableDeclaration","scope":2295,"src":"2575:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2260,"nodeType":"UserDefinedTypeName","pathNode":{"id":2259,"name":"BufferChainlink.buffer","nameLocations":["2575:15:12","2591:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2575:22:12"},"referencedDeclaration":1402,"src":"2575:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2263,"mutability":"mutable","name":"input","nameLocation":"2614:5:12","nodeType":"VariableDeclaration","scope":2295,"src":"2610:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2262,"name":"int","nodeType":"ElementaryTypeName","src":"2610:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2574:46:12"},"returnParameters":{"id":2265,"nodeType":"ParameterList","parameters":[],"src":"2635:0:12"},"scope":2363,"src":"2547:226:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2325,"nodeType":"Block","src":"2869:112:12","statements":[{"expression":{"arguments":[{"id":2304,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"2894:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2305,"name":"MAJOR_TYPE_STRING","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"2899:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"arguments":[{"id":2310,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"2931:5:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2925:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2308,"name":"bytes","nodeType":"ElementaryTypeName","src":"2925:5:12","typeDescriptions":{}}},"id":2311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2938:6:12","memberName":"length","nodeType":"MemberAccess","src":"2925:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2918:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2306,"name":"uint64","nodeType":"ElementaryTypeName","src":"2918:6:12","typeDescriptions":{}}},"id":2313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2918:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2303,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2875:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2875:71:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2315,"nodeType":"ExpressionStatement","src":"2875:71:12"},{"expression":{"arguments":[{"arguments":[{"id":2321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"2969:5:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2963:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2319,"name":"bytes","nodeType":"ElementaryTypeName","src":"2963:5:12","typeDescriptions":{}}},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2316,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"2952:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2956:6:12","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"2952:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2324,"nodeType":"ExpressionStatement","src":"2952:24:12"}]},"id":2326,"implemented":true,"kind":"function","modifiers":[],"name":"encodeString","nameLocation":"2786:12:12","nodeType":"FunctionDefinition","parameters":{"id":2301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2298,"mutability":"mutable","name":"buf","nameLocation":"2829:3:12","nodeType":"VariableDeclaration","scope":2326,"src":"2799:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2297,"nodeType":"UserDefinedTypeName","pathNode":{"id":2296,"name":"BufferChainlink.buffer","nameLocations":["2799:15:12","2815:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2799:22:12"},"referencedDeclaration":1402,"src":"2799:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2300,"mutability":"mutable","name":"value","nameLocation":"2848:5:12","nodeType":"VariableDeclaration","scope":2326,"src":"2834:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2299,"name":"string","nodeType":"ElementaryTypeName","src":"2834:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2798:56:12"},"returnParameters":{"id":2302,"nodeType":"ParameterList","parameters":[],"src":"2869:0:12"},"scope":2363,"src":"2777:204:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2337,"nodeType":"Block","src":"3054:60:12","statements":[{"expression":{"arguments":[{"id":2333,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"3087:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2334,"name":"MAJOR_TYPE_ARRAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1939,"src":"3092:16:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2332,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3060:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3060:49:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2336,"nodeType":"ExpressionStatement","src":"3060:49:12"}]},"id":2338,"implemented":true,"kind":"function","modifiers":[],"name":"startArray","nameLocation":"2994:10:12","nodeType":"FunctionDefinition","parameters":{"id":2330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2329,"mutability":"mutable","name":"buf","nameLocation":"3035:3:12","nodeType":"VariableDeclaration","scope":2338,"src":"3005:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2328,"nodeType":"UserDefinedTypeName","pathNode":{"id":2327,"name":"BufferChainlink.buffer","nameLocations":["3005:15:12","3021:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3005:22:12"},"referencedDeclaration":1402,"src":"3005:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3004:35:12"},"returnParameters":{"id":2331,"nodeType":"ParameterList","parameters":[],"src":"3054:0:12"},"scope":2363,"src":"2985:129:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2349,"nodeType":"Block","src":"3185:58:12","statements":[{"expression":{"arguments":[{"id":2345,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"3218:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2346,"name":"MAJOR_TYPE_MAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"3223:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2344,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3191:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3191:47:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2348,"nodeType":"ExpressionStatement","src":"3191:47:12"}]},"id":2350,"implemented":true,"kind":"function","modifiers":[],"name":"startMap","nameLocation":"3127:8:12","nodeType":"FunctionDefinition","parameters":{"id":2342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2341,"mutability":"mutable","name":"buf","nameLocation":"3166:3:12","nodeType":"VariableDeclaration","scope":2350,"src":"3136:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2340,"nodeType":"UserDefinedTypeName","pathNode":{"id":2339,"name":"BufferChainlink.buffer","nameLocations":["3136:15:12","3152:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3136:22:12"},"referencedDeclaration":1402,"src":"3136:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3135:35:12"},"returnParameters":{"id":2343,"nodeType":"ParameterList","parameters":[],"src":"3185:0:12"},"scope":2363,"src":"3118:125:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2361,"nodeType":"Block","src":"3317:67:12","statements":[{"expression":{"arguments":[{"id":2357,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"3350:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2358,"name":"MAJOR_TYPE_CONTENT_FREE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1948,"src":"3355:23:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2356,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3323:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:56:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2360,"nodeType":"ExpressionStatement","src":"3323:56:12"}]},"id":2362,"implemented":true,"kind":"function","modifiers":[],"name":"endSequence","nameLocation":"3256:11:12","nodeType":"FunctionDefinition","parameters":{"id":2354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2353,"mutability":"mutable","name":"buf","nameLocation":"3298:3:12","nodeType":"VariableDeclaration","scope":2362,"src":"3268:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2352,"nodeType":"UserDefinedTypeName","pathNode":{"id":2351,"name":"BufferChainlink.buffer","nameLocations":["3268:15:12","3284:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3268:22:12"},"referencedDeclaration":1402,"src":"3268:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3267:35:12"},"returnParameters":{"id":2355,"nodeType":"ParameterList","parameters":[],"src":"3317:0:12"},"scope":2363,"src":"3247:137:12","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2364,"src":"115:3271:12","usedErrors":[]}],"src":"32:3355:12"},"id":12},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","exportedSymbols":{"ENSResolver":[2373]},"id":2374,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2365,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:13"},{"abstract":true,"baseContracts":[],"canonicalName":"ENSResolver","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":2373,"linearizedBaseContracts":[2373],"name":"ENSResolver","nameLocation":"75:11:13","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3b3b57de","id":2372,"implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"100:4:13","nodeType":"FunctionDefinition","parameters":{"id":2368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2367,"mutability":"mutable","name":"node","nameLocation":"113:4:13","nodeType":"VariableDeclaration","scope":2372,"src":"105:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"104:14:13"},"returnParameters":{"id":2371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2372,"src":"148:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2369,"name":"address","nodeType":"ElementaryTypeName","src":"148:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"147:9:13"},"scope":2373,"src":"91:66:13","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2374,"src":"57:102:13","usedErrors":[]}],"src":"32:128:13"},"id":13},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","exportedSymbols":{"SafeMath":[2685]},"id":2686,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2375,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:14"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeMath","contractDependencies":[],"contractKind":"library","documentation":{"id":2376,"nodeType":"StructuredDocumentation","src":"285:196:14","text":" @dev Wrappers over Solidity's arithmetic operations.\n NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler\n now has built in overflow checking."},"fullyImplemented":true,"id":2685,"linearizedBaseContracts":[2685],"name":"SafeMath","nameLocation":"490:8:14","nodeType":"ContractDefinition","nodes":[{"body":{"id":2407,"nodeType":"Block","src":"717:140:14","statements":[{"id":2406,"nodeType":"UncheckedBlock","src":"727:124:14","statements":[{"assignments":[2389],"declarations":[{"constant":false,"id":2389,"mutability":"mutable","name":"c","nameLocation":"759:1:14","nodeType":"VariableDeclaration","scope":2406,"src":"751:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2388,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2393,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2390,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2379,"src":"763:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2391,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2381,"src":"767:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"763:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"751:17:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2394,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2389,"src":"786:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2395,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2379,"src":"790:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"786:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2401,"nodeType":"IfStatement","src":"782:28:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"801:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"808:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2399,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"800:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2387,"id":2400,"nodeType":"Return","src":"793:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"832:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2403,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2389,"src":"838:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2404,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"831:9:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2387,"id":2405,"nodeType":"Return","src":"824:16:14"}]}]},"documentation":{"id":2377,"nodeType":"StructuredDocumentation","src":"505:131:14","text":" @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":2408,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"650:6:14","nodeType":"FunctionDefinition","parameters":{"id":2382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2379,"mutability":"mutable","name":"a","nameLocation":"665:1:14","nodeType":"VariableDeclaration","scope":2408,"src":"657:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2378,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2381,"mutability":"mutable","name":"b","nameLocation":"676:1:14","nodeType":"VariableDeclaration","scope":2408,"src":"668:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2380,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"656:22:14"},"returnParameters":{"id":2387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2384,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2408,"src":"702:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2383,"name":"bool","nodeType":"ElementaryTypeName","src":"702:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2408,"src":"708:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2385,"name":"uint256","nodeType":"ElementaryTypeName","src":"708:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"701:15:14"},"scope":2685,"src":"641:216:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2435,"nodeType":"Block","src":"1078:113:14","statements":[{"id":2434,"nodeType":"UncheckedBlock","src":"1088:97:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2420,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2413,"src":"1116:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2421,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2411,"src":"1120:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1116:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2427,"nodeType":"IfStatement","src":"1112:28:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1131:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1138:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2425,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1130:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2419,"id":2426,"nodeType":"Return","src":"1123:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1162:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2429,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2411,"src":"1168:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2430,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2413,"src":"1172:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1168:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2432,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1161:13:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2419,"id":2433,"nodeType":"Return","src":"1154:20:14"}]}]},"documentation":{"id":2409,"nodeType":"StructuredDocumentation","src":"863:134:14","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":2436,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"1011:6:14","nodeType":"FunctionDefinition","parameters":{"id":2414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2411,"mutability":"mutable","name":"a","nameLocation":"1026:1:14","nodeType":"VariableDeclaration","scope":2436,"src":"1018:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2410,"name":"uint256","nodeType":"ElementaryTypeName","src":"1018:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2413,"mutability":"mutable","name":"b","nameLocation":"1037:1:14","nodeType":"VariableDeclaration","scope":2436,"src":"1029:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2412,"name":"uint256","nodeType":"ElementaryTypeName","src":"1029:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1017:22:14"},"returnParameters":{"id":2419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2436,"src":"1063:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2415,"name":"bool","nodeType":"ElementaryTypeName","src":"1063:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2436,"src":"1069:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2417,"name":"uint256","nodeType":"ElementaryTypeName","src":"1069:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1062:15:14"},"scope":2685,"src":"1002:189:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2477,"nodeType":"Block","src":"1415:417:14","statements":[{"id":2476,"nodeType":"UncheckedBlock","src":"1425:401:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2448,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2439,"src":"1683:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1688:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1683:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2455,"nodeType":"IfStatement","src":"1679:28:14","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":2451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1699:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":2452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1705:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2453,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1698:9:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2447,"id":2454,"nodeType":"Return","src":"1691:16:14"}},{"assignments":[2457],"declarations":[{"constant":false,"id":2457,"mutability":"mutable","name":"c","nameLocation":"1729:1:14","nodeType":"VariableDeclaration","scope":2476,"src":"1721:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2456,"name":"uint256","nodeType":"ElementaryTypeName","src":"1721:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2461,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2458,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2439,"src":"1733:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2459,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2441,"src":"1737:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1733:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1721:17:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2462,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2457,"src":"1756:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2463,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2439,"src":"1760:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1756:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2465,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2441,"src":"1765:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1756:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2471,"nodeType":"IfStatement","src":"1752:33:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1776:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1783:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2469,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1775:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2447,"id":2470,"nodeType":"Return","src":"1768:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1807:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2473,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2457,"src":"1813:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2474,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1806:9:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2447,"id":2475,"nodeType":"Return","src":"1799:16:14"}]}]},"documentation":{"id":2437,"nodeType":"StructuredDocumentation","src":"1197:137:14","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":2478,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1348:6:14","nodeType":"FunctionDefinition","parameters":{"id":2442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2439,"mutability":"mutable","name":"a","nameLocation":"1363:1:14","nodeType":"VariableDeclaration","scope":2478,"src":"1355:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2438,"name":"uint256","nodeType":"ElementaryTypeName","src":"1355:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2441,"mutability":"mutable","name":"b","nameLocation":"1374:1:14","nodeType":"VariableDeclaration","scope":2478,"src":"1366:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2440,"name":"uint256","nodeType":"ElementaryTypeName","src":"1366:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1354:22:14"},"returnParameters":{"id":2447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2478,"src":"1400:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2443,"name":"bool","nodeType":"ElementaryTypeName","src":"1400:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2446,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2478,"src":"1406:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2445,"name":"uint256","nodeType":"ElementaryTypeName","src":"1406:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1399:15:14"},"scope":2685,"src":"1339:493:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2505,"nodeType":"Block","src":"2057:114:14","statements":[{"id":2504,"nodeType":"UncheckedBlock","src":"2067:98:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2490,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2095:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2100:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2095:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2497,"nodeType":"IfStatement","src":"2091:29:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2111:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2118:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2495,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2110:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2489,"id":2496,"nodeType":"Return","src":"2103:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2142:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2499,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"2148:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2500,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2152:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2148:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2502,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2141:13:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2489,"id":2503,"nodeType":"Return","src":"2134:20:14"}]}]},"documentation":{"id":2479,"nodeType":"StructuredDocumentation","src":"1838:138:14","text":" @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"id":2506,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1990:6:14","nodeType":"FunctionDefinition","parameters":{"id":2484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2481,"mutability":"mutable","name":"a","nameLocation":"2005:1:14","nodeType":"VariableDeclaration","scope":2506,"src":"1997:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2480,"name":"uint256","nodeType":"ElementaryTypeName","src":"1997:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2483,"mutability":"mutable","name":"b","nameLocation":"2016:1:14","nodeType":"VariableDeclaration","scope":2506,"src":"2008:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2482,"name":"uint256","nodeType":"ElementaryTypeName","src":"2008:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1996:22:14"},"returnParameters":{"id":2489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2506,"src":"2042:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2485,"name":"bool","nodeType":"ElementaryTypeName","src":"2042:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2506,"src":"2048:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2487,"name":"uint256","nodeType":"ElementaryTypeName","src":"2048:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2041:15:14"},"scope":2685,"src":"1981:190:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2533,"nodeType":"Block","src":"2406:114:14","statements":[{"id":2532,"nodeType":"UncheckedBlock","src":"2416:98:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2518,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"2444:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2449:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2444:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2525,"nodeType":"IfStatement","src":"2440:29:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2460:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2467:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2523,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2459:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2517,"id":2524,"nodeType":"Return","src":"2452:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2491:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2527,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2509,"src":"2497:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":2528,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"2501:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2497:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2530,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2490:13:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2517,"id":2531,"nodeType":"Return","src":"2483:20:14"}]}]},"documentation":{"id":2507,"nodeType":"StructuredDocumentation","src":"2177:148:14","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"id":2534,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2339:6:14","nodeType":"FunctionDefinition","parameters":{"id":2512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2509,"mutability":"mutable","name":"a","nameLocation":"2354:1:14","nodeType":"VariableDeclaration","scope":2534,"src":"2346:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2508,"name":"uint256","nodeType":"ElementaryTypeName","src":"2346:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2511,"mutability":"mutable","name":"b","nameLocation":"2365:1:14","nodeType":"VariableDeclaration","scope":2534,"src":"2357:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2510,"name":"uint256","nodeType":"ElementaryTypeName","src":"2357:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2345:22:14"},"returnParameters":{"id":2517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2514,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2534,"src":"2391:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2513,"name":"bool","nodeType":"ElementaryTypeName","src":"2391:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2534,"src":"2397:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2515,"name":"uint256","nodeType":"ElementaryTypeName","src":"2397:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2390:15:14"},"scope":2685,"src":"2330:190:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2548,"nodeType":"Block","src":"2822:29:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2544,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2537,"src":"2839:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2545,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2539,"src":"2843:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2839:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2543,"id":2547,"nodeType":"Return","src":"2832:12:14"}]},"documentation":{"id":2535,"nodeType":"StructuredDocumentation","src":"2526:224:14","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":2549,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"2764:3:14","nodeType":"FunctionDefinition","parameters":{"id":2540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2537,"mutability":"mutable","name":"a","nameLocation":"2776:1:14","nodeType":"VariableDeclaration","scope":2549,"src":"2768:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2536,"name":"uint256","nodeType":"ElementaryTypeName","src":"2768:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2539,"mutability":"mutable","name":"b","nameLocation":"2787:1:14","nodeType":"VariableDeclaration","scope":2549,"src":"2779:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2538,"name":"uint256","nodeType":"ElementaryTypeName","src":"2779:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2767:22:14"},"returnParameters":{"id":2543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2549,"src":"2813:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2541,"name":"uint256","nodeType":"ElementaryTypeName","src":"2813:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2812:9:14"},"scope":2685,"src":"2755:96:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2563,"nodeType":"Block","src":"3189:29:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2559,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"3206:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2560,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2554,"src":"3210:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3206:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2558,"id":2562,"nodeType":"Return","src":"3199:12:14"}]},"documentation":{"id":2550,"nodeType":"StructuredDocumentation","src":"2857:260:14","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":2564,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"3131:3:14","nodeType":"FunctionDefinition","parameters":{"id":2555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2552,"mutability":"mutable","name":"a","nameLocation":"3143:1:14","nodeType":"VariableDeclaration","scope":2564,"src":"3135:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2551,"name":"uint256","nodeType":"ElementaryTypeName","src":"3135:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2554,"mutability":"mutable","name":"b","nameLocation":"3154:1:14","nodeType":"VariableDeclaration","scope":2564,"src":"3146:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2553,"name":"uint256","nodeType":"ElementaryTypeName","src":"3146:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3134:22:14"},"returnParameters":{"id":2558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2564,"src":"3180:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2556,"name":"uint256","nodeType":"ElementaryTypeName","src":"3180:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3179:9:14"},"scope":2685,"src":"3122:96:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2578,"nodeType":"Block","src":"3532:29:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2574,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2567,"src":"3549:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2575,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"3553:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3549:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2573,"id":2577,"nodeType":"Return","src":"3542:12:14"}]},"documentation":{"id":2565,"nodeType":"StructuredDocumentation","src":"3224:236:14","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":2579,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nameLocation":"3474:3:14","nodeType":"FunctionDefinition","parameters":{"id":2570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2567,"mutability":"mutable","name":"a","nameLocation":"3486:1:14","nodeType":"VariableDeclaration","scope":2579,"src":"3478:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2566,"name":"uint256","nodeType":"ElementaryTypeName","src":"3478:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2569,"mutability":"mutable","name":"b","nameLocation":"3497:1:14","nodeType":"VariableDeclaration","scope":2579,"src":"3489:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2568,"name":"uint256","nodeType":"ElementaryTypeName","src":"3489:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3477:22:14"},"returnParameters":{"id":2573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2572,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2579,"src":"3523:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2571,"name":"uint256","nodeType":"ElementaryTypeName","src":"3523:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3522:9:14"},"scope":2685,"src":"3465:96:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2593,"nodeType":"Block","src":"3917:29:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2589,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2582,"src":"3934:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2590,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2584,"src":"3938:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3934:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2588,"id":2592,"nodeType":"Return","src":"3927:12:14"}]},"documentation":{"id":2580,"nodeType":"StructuredDocumentation","src":"3567:278:14","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.\n Requirements:\n - The divisor cannot be zero."},"id":2594,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"3859:3:14","nodeType":"FunctionDefinition","parameters":{"id":2585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2582,"mutability":"mutable","name":"a","nameLocation":"3871:1:14","nodeType":"VariableDeclaration","scope":2594,"src":"3863:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2581,"name":"uint256","nodeType":"ElementaryTypeName","src":"3863:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2584,"mutability":"mutable","name":"b","nameLocation":"3882:1:14","nodeType":"VariableDeclaration","scope":2594,"src":"3874:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2583,"name":"uint256","nodeType":"ElementaryTypeName","src":"3874:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3862:22:14"},"returnParameters":{"id":2588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2594,"src":"3908:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2586,"name":"uint256","nodeType":"ElementaryTypeName","src":"3908:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3907:9:14"},"scope":2685,"src":"3850:96:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2608,"nodeType":"Block","src":"4466:29:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2604,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2597,"src":"4483:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":2605,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2599,"src":"4487:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4483:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2603,"id":2607,"nodeType":"Return","src":"4476:12:14"}]},"documentation":{"id":2595,"nodeType":"StructuredDocumentation","src":"3952:442:14","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":2609,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"4408:3:14","nodeType":"FunctionDefinition","parameters":{"id":2600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2597,"mutability":"mutable","name":"a","nameLocation":"4420:1:14","nodeType":"VariableDeclaration","scope":2609,"src":"4412:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2596,"name":"uint256","nodeType":"ElementaryTypeName","src":"4412:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2599,"mutability":"mutable","name":"b","nameLocation":"4431:1:14","nodeType":"VariableDeclaration","scope":2609,"src":"4423:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2598,"name":"uint256","nodeType":"ElementaryTypeName","src":"4423:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4411:22:14"},"returnParameters":{"id":2603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2609,"src":"4457:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2601,"name":"uint256","nodeType":"ElementaryTypeName","src":"4457:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4456:9:14"},"scope":2685,"src":"4399:96:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2633,"nodeType":"Block","src":"5054:106:14","statements":[{"id":2632,"nodeType":"UncheckedBlock","src":"5064:90:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2622,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2614,"src":"5096:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":2623,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2612,"src":"5101:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5096:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2625,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2616,"src":"5104: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":2621,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5088:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5088:29:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2627,"nodeType":"ExpressionStatement","src":"5088:29:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2628,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2612,"src":"5138:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2629,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2614,"src":"5142:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5138:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2620,"id":2631,"nodeType":"Return","src":"5131:12:14"}]}]},"documentation":{"id":2610,"nodeType":"StructuredDocumentation","src":"4501:453:14","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":2634,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"4968:3:14","nodeType":"FunctionDefinition","parameters":{"id":2617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2612,"mutability":"mutable","name":"a","nameLocation":"4980:1:14","nodeType":"VariableDeclaration","scope":2634,"src":"4972:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2611,"name":"uint256","nodeType":"ElementaryTypeName","src":"4972:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2614,"mutability":"mutable","name":"b","nameLocation":"4991:1:14","nodeType":"VariableDeclaration","scope":2634,"src":"4983:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2613,"name":"uint256","nodeType":"ElementaryTypeName","src":"4983:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2616,"mutability":"mutable","name":"errorMessage","nameLocation":"5008:12:14","nodeType":"VariableDeclaration","scope":2634,"src":"4994:26:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2615,"name":"string","nodeType":"ElementaryTypeName","src":"4994:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4971:50:14"},"returnParameters":{"id":2620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2634,"src":"5045:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2618,"name":"uint256","nodeType":"ElementaryTypeName","src":"5045:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5044:9:14"},"scope":2685,"src":"4959:201:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2658,"nodeType":"Block","src":"5739:105:14","statements":[{"id":2657,"nodeType":"UncheckedBlock","src":"5749:89:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2647,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2639,"src":"5781:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5785:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5781:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2650,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2641,"src":"5788: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":2646,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5773:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5773:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2652,"nodeType":"ExpressionStatement","src":"5773:28:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2653,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"5822:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2654,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2639,"src":"5826:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5822:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2645,"id":2656,"nodeType":"Return","src":"5815:12:14"}]}]},"documentation":{"id":2635,"nodeType":"StructuredDocumentation","src":"5166:473:14","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 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":2659,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"5653:3:14","nodeType":"FunctionDefinition","parameters":{"id":2642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2637,"mutability":"mutable","name":"a","nameLocation":"5665:1:14","nodeType":"VariableDeclaration","scope":2659,"src":"5657:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2636,"name":"uint256","nodeType":"ElementaryTypeName","src":"5657:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2639,"mutability":"mutable","name":"b","nameLocation":"5676:1:14","nodeType":"VariableDeclaration","scope":2659,"src":"5668:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2638,"name":"uint256","nodeType":"ElementaryTypeName","src":"5668:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2641,"mutability":"mutable","name":"errorMessage","nameLocation":"5693:12:14","nodeType":"VariableDeclaration","scope":2659,"src":"5679:26:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2640,"name":"string","nodeType":"ElementaryTypeName","src":"5679:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5656:50:14"},"returnParameters":{"id":2645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2659,"src":"5730:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2643,"name":"uint256","nodeType":"ElementaryTypeName","src":"5730:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5729:9:14"},"scope":2685,"src":"5644:200:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2683,"nodeType":"Block","src":"6585:105:14","statements":[{"id":2682,"nodeType":"UncheckedBlock","src":"6595:89:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2672,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"6627:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6631:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6627:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2675,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2666,"src":"6634: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":2671,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6619:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6619:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2677,"nodeType":"ExpressionStatement","src":"6619:28:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2678,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2662,"src":"6668:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":2679,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"6672:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6668:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2670,"id":2681,"nodeType":"Return","src":"6661:12:14"}]}]},"documentation":{"id":2660,"nodeType":"StructuredDocumentation","src":"5850:635:14","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":2684,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"6499:3:14","nodeType":"FunctionDefinition","parameters":{"id":2667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2662,"mutability":"mutable","name":"a","nameLocation":"6511:1:14","nodeType":"VariableDeclaration","scope":2684,"src":"6503:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2661,"name":"uint256","nodeType":"ElementaryTypeName","src":"6503:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2664,"mutability":"mutable","name":"b","nameLocation":"6522:1:14","nodeType":"VariableDeclaration","scope":2684,"src":"6514:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2663,"name":"uint256","nodeType":"ElementaryTypeName","src":"6514:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2666,"mutability":"mutable","name":"errorMessage","nameLocation":"6539:12:14","nodeType":"VariableDeclaration","scope":2684,"src":"6525:26:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2665,"name":"string","nodeType":"ElementaryTypeName","src":"6525:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6502:50:14"},"returnParameters":{"id":2670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2684,"src":"6576:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2668,"name":"uint256","nodeType":"ElementaryTypeName","src":"6576:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6575:9:14"},"scope":2685,"src":"6490:200:14","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2686,"src":"482:6210:14","usedErrors":[]}],"src":"107:6586:14"},"id":14},"contracts/AdmodConsumer.sol":{"ast":{"absolutePath":"contracts/AdmodConsumer.sol","exportedSymbols":{"AdmodConsumer":[2984],"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[1076],"ConfirmedOwner":[881],"ConfirmedOwnerWithProposal":[1043],"ENSInterface":[1156],"ENSResolver_Chainlink":[2373],"LinkTokenInterface":[1251],"OperatorInterface":[1331],"OracleInterface":[1370],"OwnableInterface":[1386],"PointerInterface":[1394],"SafeMath":[2685]},"id":2985,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2687,"literals":["solidity","0.8",".17"],"nodeType":"PragmaDirective","src":"32:23:15"},{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","file":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","id":2688,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2985,"sourceUnit":862,"src":"57:59:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","file":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","id":2689,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2985,"sourceUnit":882,"src":"117:58:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","file":"@openzeppelin/contracts/utils/math/SafeMath.sol","id":2690,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2985,"sourceUnit":2686,"src":"176:57:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2691,"name":"ChainlinkClient","nameLocations":["261:15:15"],"nodeType":"IdentifierPath","referencedDeclaration":861,"src":"261:15:15"},"id":2692,"nodeType":"InheritanceSpecifier","src":"261:15:15"},{"baseName":{"id":2693,"name":"ConfirmedOwner","nameLocations":["278:14:15"],"nodeType":"IdentifierPath","referencedDeclaration":881,"src":"278:14:15"},"id":2694,"nodeType":"InheritanceSpecifier","src":"278:14:15"}],"canonicalName":"AdmodConsumer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":2984,"linearizedBaseContracts":[2984,881,1043,1386,861],"name":"AdmodConsumer","nameLocation":"244:13:15","nodeType":"ContractDefinition","nodes":[{"global":false,"id":2698,"libraryName":{"id":2695,"name":"Chainlink","nameLocations":["305:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":268,"src":"305:9:15"},"nodeType":"UsingForDirective","src":"299:38:15","typeName":{"id":2697,"nodeType":"UserDefinedTypeName","pathNode":{"id":2696,"name":"Chainlink.Request","nameLocations":["319:9:15","329:7:15"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"319:17:15"},"referencedDeclaration":25,"src":"319:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"global":false,"id":2701,"libraryName":{"id":2699,"name":"SafeMath","nameLocations":["349:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":2685,"src":"349:8:15"},"nodeType":"UsingForDirective","src":"343:24:15","typeName":{"id":2700,"name":"uint","nodeType":"ElementaryTypeName","src":"362:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"functionSelector":"df78abe6","id":2703,"mutability":"mutable","name":"earning","nameLocation":"428:7:15","nodeType":"VariableDeclaration","scope":2984,"src":"413:22:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2702,"name":"uint256","nodeType":"ElementaryTypeName","src":"413:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"a035b1fe","id":2705,"mutability":"mutable","name":"price","nameLocation":"524:5:15","nodeType":"VariableDeclaration","scope":2984,"src":"509:20:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2704,"name":"uint256","nodeType":"ElementaryTypeName","src":"509:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"403a7761","id":2707,"mutability":"mutable","name":"ggJobId","nameLocation":"611:7:15","nodeType":"VariableDeclaration","scope":2984,"src":"596:22:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"596:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"350844ce","id":2709,"mutability":"mutable","name":"transakJobId","nameLocation":"639:12:15","nodeType":"VariableDeclaration","scope":2984,"src":"624:27:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2708,"name":"bytes32","nodeType":"ElementaryTypeName","src":"624:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"id":2711,"mutability":"mutable","name":"fee","nameLocation":"674:3:15","nodeType":"VariableDeclaration","scope":2984,"src":"658:19:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2710,"name":"uint256","nodeType":"ElementaryTypeName","src":"658:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"functionSelector":"9e2f9084","id":2715,"mutability":"mutable","name":"earningReports","nameLocation":"718:14:15","nodeType":"VariableDeclaration","scope":2984,"src":"683:49:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":2714,"keyType":{"id":2712,"name":"uint256","nodeType":"ElementaryTypeName","src":"691:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"683:27:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":2713,"name":"uint256","nodeType":"ElementaryTypeName","src":"702:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"43e1ca49","id":2717,"mutability":"mutable","name":"isEligible","nameLocation":"750:10:15","nodeType":"VariableDeclaration","scope":2984,"src":"738:22:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2716,"name":"bool","nodeType":"ElementaryTypeName","src":"738:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"documentation":{"id":2718,"nodeType":"StructuredDocumentation","src":"767:207:15","text":" @notice\n @beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it\n In this 0xSplits contract will contain the list of charity organizations' addresses"},"functionSelector":"38af3eed","id":2720,"mutability":"mutable","name":"beneficiary","nameLocation":"994:11:15","nodeType":"VariableDeclaration","scope":2984,"src":"979:26:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2719,"name":"address","nodeType":"ElementaryTypeName","src":"979:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"eventSelector":"9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0","id":2726,"name":"RequestEarning","nameLocation":"1018:14:15","nodeType":"EventDefinition","parameters":{"id":2725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2722,"indexed":true,"mutability":"mutable","name":"requestId","nameLocation":"1049:9:15","nodeType":"VariableDeclaration","scope":2726,"src":"1033:25:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1033:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2724,"indexed":false,"mutability":"mutable","name":"earning","nameLocation":"1068:7:15","nodeType":"VariableDeclaration","scope":2726,"src":"1060:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2723,"name":"uint256","nodeType":"ElementaryTypeName","src":"1060:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1032:44:15"},"src":"1012:65:15"},{"anonymous":false,"eventSelector":"2e48c207bbe18ca424eae69ca096badb69cc821f8cb72b42f49599f3390a3b1c","id":2732,"name":"RequestBoughtAmount","nameLocation":"1088:19:15","nodeType":"EventDefinition","parameters":{"id":2731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2728,"indexed":true,"mutability":"mutable","name":"requestId","nameLocation":"1124:9:15","nodeType":"VariableDeclaration","scope":2732,"src":"1108:25:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2727,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1108:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2730,"indexed":false,"mutability":"mutable","name":"price","nameLocation":"1143:5:15","nodeType":"VariableDeclaration","scope":2732,"src":"1135:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2729,"name":"uint256","nodeType":"ElementaryTypeName","src":"1135:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1107:42:15"},"src":"1082:68:15"},{"body":{"id":2772,"nodeType":"Block","src":"1518:356:15","statements":[{"expression":{"arguments":[{"hexValue":"307833323643393737453665666338344535313262423943333066373645333063313630654430364642","id":2744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1546:42:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x326C977E6efc84E512bB9C30f76E30c160eD06FB"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2743,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"1528:17:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1528:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2746,"nodeType":"ExpressionStatement","src":"1528:61:15"},{"expression":{"arguments":[{"hexValue":"307861413337343733633864373846306631433836633964386145453533453842383936624342344435","id":2748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1618:42:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2747,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"1599:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1599:62:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2750,"nodeType":"ExpressionStatement","src":"1599:62:15"},{"expression":{"id":2753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2751,"name":"ggJobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2707,"src":"1671:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"6231643432636435346133613432303062316637323561363865343838383838","id":2752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1681:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1279806ce6db11c89121bbea4c15608b4b52482ad47bd18e6ea9ce5893a70f51","typeString":"literal_string \"b1d42cd54a3a4200b1f725a68e488888\""},"value":"b1d42cd54a3a4200b1f725a68e488888"},"src":"1671:44:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2754,"nodeType":"ExpressionStatement","src":"1671:44:15"},{"expression":{"id":2762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2755,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2711,"src":"1725:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1732:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2757,"name":"LINK_DIVISIBILITY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"1736:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1732:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2759,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1731:23:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":2760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1757:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1731:28:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1725:34:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2763,"nodeType":"ExpressionStatement","src":"1725:34:15"},{"expression":{"id":2766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2764,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2720,"src":"1813:11:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2765,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2737,"src":"1827:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1813:26:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2767,"nodeType":"ExpressionStatement","src":"1813:26:15"},{"expression":{"id":2770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2768,"name":"isEligible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"1849:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1862:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1849:18:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2771,"nodeType":"ExpressionStatement","src":"1849:18:15"}]},"documentation":{"id":2733,"nodeType":"StructuredDocumentation","src":"1157:283:15","text":" @notice Initialize the link token and target oracle\n Mumbai Testnet details:\n Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB\n Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 \n jobId: b1d42cd54a3a4200b1f725a68e488888"},"id":2773,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":2740,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2735,"src":"1510:6:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2741,"kind":"baseConstructorSpecifier","modifierName":{"id":2739,"name":"ConfirmedOwner","nameLocations":["1495:14:15"],"nodeType":"IdentifierPath","referencedDeclaration":881,"src":"1495:14:15"},"nodeType":"ModifierInvocation","src":"1495:22:15"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2735,"mutability":"mutable","name":"_owner","nameLocation":"1465:6:15","nodeType":"VariableDeclaration","scope":2773,"src":"1457:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2734,"name":"address","nodeType":"ElementaryTypeName","src":"1457:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2737,"mutability":"mutable","name":"_beneficiary","nameLocation":"1481:12:15","nodeType":"VariableDeclaration","scope":2773,"src":"1473:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2736,"name":"address","nodeType":"ElementaryTypeName","src":"1473:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1456:38:15"},"returnParameters":{"id":2742,"nodeType":"ParameterList","parameters":[],"src":"1518:0:15"},"scope":2984,"src":"1445:429:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2814,"nodeType":"Block","src":"2126:508:15","statements":[{"assignments":[2783],"declarations":[{"constant":false,"id":2783,"mutability":"mutable","name":"req","nameLocation":"2161:3:15","nodeType":"VariableDeclaration","scope":2814,"src":"2136:28:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":2782,"nodeType":"UserDefinedTypeName","pathNode":{"id":2781,"name":"Chainlink.Request","nameLocations":["2136:9:15","2146:7:15"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2136:17:15"},"referencedDeclaration":25,"src":"2136:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":2794,"initialValue":{"arguments":[{"id":2785,"name":"ggJobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2707,"src":"2202:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2788,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2231:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$2984","typeString":"contract AdmodConsumer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AdmodConsumer_$2984","typeString":"contract AdmodConsumer"}],"id":2787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2223:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2786,"name":"address","nodeType":"ElementaryTypeName","src":"2223:7:15","typeDescriptions":{}}},"id":2789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2223:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":2790,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2250:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$2984","typeString":"contract AdmodConsumer"}},"id":2791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2255:7:15","memberName":"fulfill","nodeType":"MemberAccess","referencedDeclaration":2843,"src":"2250:12:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":2792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2263:8:15","memberName":"selector","nodeType":"MemberAccess","src":"2250:21:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":2784,"name":"buildChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"2167:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":2793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2167:114:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"nodeType":"VariableDeclarationStatement","src":"2136:145:15"},{"expression":{"arguments":[{"hexValue":"676574","id":2798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2366:5:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},"value":"get"},{"hexValue":"68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274","id":2799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2385:78:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2951f46cc986317dd19e0aff69f07b81260ff04938edb6663dfc83d944c37d93","typeString":"literal_string \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\""},"value":"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},{"typeIdentifier":"t_stringliteral_2951f46cc986317dd19e0aff69f07b81260ff04938edb6663dfc83d944c37d93","typeString":"literal_string \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\""}],"expression":{"id":2795,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2783,"src":"2345:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":2797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2349:3:15","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2345:7:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":2800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2345:128:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2801,"nodeType":"ExpressionStatement","src":"2345:128:15"},{"expression":{"arguments":[{"hexValue":"70617468","id":2805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2492:6:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},"value":"path"},{"hexValue":"726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565","id":2806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2500:49:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dc5377b9552c5187c2f765c9772a9f30d6c0e04ce19232cb7bc0187b9472339","typeString":"literal_string \"row,metricValues,ESTIMATED_EARNINGS,microsValue\""},"value":"row,metricValues,ESTIMATED_EARNINGS,microsValue"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},{"typeIdentifier":"t_stringliteral_6dc5377b9552c5187c2f765c9772a9f30d6c0e04ce19232cb7bc0187b9472339","typeString":"literal_string \"row,metricValues,ESTIMATED_EARNINGS,microsValue\""}],"expression":{"id":2802,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2783,"src":"2484:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":2804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2488:3:15","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2484:7:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":2807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2484:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2808,"nodeType":"ExpressionStatement","src":"2484:66:15"},{"expression":{"arguments":[{"id":2810,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2783,"src":"2618:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":2811,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2711,"src":"2623:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2809,"name":"sendChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"2597:20:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":2812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2597:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2778,"id":2813,"nodeType":"Return","src":"2590:37:15"}]},"documentation":{"id":2774,"nodeType":"StructuredDocumentation","src":"1881:175:15","text":" Create a Chainlink request to retrieve API response, find the target\n data, then multiply by 1000000000000000000 (to remove decimal places from data)."},"functionSelector":"50ed6a95","id":2815,"implemented":true,"kind":"function","modifiers":[],"name":"requestWeekEarning","nameLocation":"2070:18:15","nodeType":"FunctionDefinition","parameters":{"id":2775,"nodeType":"ParameterList","parameters":[],"src":"2088:2:15"},"returnParameters":{"id":2778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2777,"mutability":"mutable","name":"requestId","nameLocation":"2115:9:15","nodeType":"VariableDeclaration","scope":2815,"src":"2107:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2776,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2107:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2106:19:15"},"scope":2984,"src":"2061:573:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2842,"nodeType":"Block","src":"2838:266:15","statements":[{"eventCall":{"arguments":[{"id":2827,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2818,"src":"2868:10:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2828,"name":"_earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"2880:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2826,"name":"RequestEarning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"2853:14:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":2829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2853:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2830,"nodeType":"EmitStatement","src":"2848:41:15"},{"documentation":"@notice earning will be a total of earning this week subtract for Transak transaction fee","expression":{"id":2837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2831,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"3021:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2834,"name":"_earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"3044:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313030303030","id":2835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3053:6:15","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"}],"expression":{"id":2832,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"3031:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$2685_$","typeString":"type(library SafeMath)"}},"id":2833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3040:3:15","memberName":"div","nodeType":"MemberAccess","referencedDeclaration":2594,"src":"3031:12:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3031:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3021:39:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2838,"nodeType":"ExpressionStatement","src":"3021:39:15"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2839,"name":"_requestTransakValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2895,"src":"3070:25:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_bytes32_$","typeString":"function () returns (bytes32)"}},"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3070:27:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2841,"nodeType":"ExpressionStatement","src":"3070:27:15"}]},"documentation":{"id":2816,"nodeType":"StructuredDocumentation","src":"2640:70:15","text":"@notice\n Receive the response in the form of uint256"},"functionSelector":"4357855e","id":2843,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2823,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2818,"src":"2826:10:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2824,"kind":"modifierInvocation","modifierName":{"id":2822,"name":"recordChainlinkFulfillment","nameLocations":["2799:26:15"],"nodeType":"IdentifierPath","referencedDeclaration":841,"src":"2799:26:15"},"nodeType":"ModifierInvocation","src":"2799:38:15"}],"name":"fulfill","nameLocation":"2724:7:15","nodeType":"FunctionDefinition","parameters":{"id":2821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2818,"mutability":"mutable","name":"_requestId","nameLocation":"2749:10:15","nodeType":"VariableDeclaration","scope":2843,"src":"2741:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2741:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2820,"mutability":"mutable","name":"_earning","nameLocation":"2777:8:15","nodeType":"VariableDeclaration","scope":2843,"src":"2769:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2819,"name":"uint256","nodeType":"ElementaryTypeName","src":"2769:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2731:60:15"},"returnParameters":{"id":2825,"nodeType":"ParameterList","parameters":[],"src":"2838:0:15"},"scope":2984,"src":"2715:389:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2894,"nodeType":"Block","src":"3183:739:15","statements":[{"assignments":[2852],"declarations":[{"constant":false,"id":2852,"mutability":"mutable","name":"req","nameLocation":"3218:3:15","nodeType":"VariableDeclaration","scope":2894,"src":"3193:28:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":2851,"nodeType":"UserDefinedTypeName","pathNode":{"id":2850,"name":"Chainlink.Request","nameLocations":["3193:9:15","3203:7:15"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3193:17:15"},"referencedDeclaration":25,"src":"3193:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":2863,"initialValue":{"arguments":[{"id":2854,"name":"transakJobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2709,"src":"3259:12:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2857,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3293:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$2984","typeString":"contract AdmodConsumer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AdmodConsumer_$2984","typeString":"contract AdmodConsumer"}],"id":2856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3285:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2855,"name":"address","nodeType":"ElementaryTypeName","src":"3285:7:15","typeDescriptions":{}}},"id":2858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3285:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":2859,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3312:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$2984","typeString":"contract AdmodConsumer"}},"id":2860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3317:19:15","memberName":"fulfillTransakPrice","nodeType":"MemberAccess","referencedDeclaration":2918,"src":"3312:24:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":2861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3337:8:15","memberName":"selector","nodeType":"MemberAccess","src":"3312:33:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":2853,"name":"buildChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"3224:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":2862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:131:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"nodeType":"VariableDeclarationStatement","src":"3193:162:15"},{"assignments":[2865],"declarations":[{"constant":false,"id":2865,"mutability":"mutable","name":"apiUrl","nameLocation":"3380:6:15","nodeType":"VariableDeclaration","scope":2894,"src":"3366:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2864,"name":"string","nodeType":"ElementaryTypeName","src":"3366:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2874,"initialValue":{"arguments":[{"arguments":[{"hexValue":"68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f76322f63757272656e636965732f70726963653f706172746e65724170694b65793d30363235323566302d383536622d343330322d396434382d386236393062623565363334266669617443757272656e63793d5553442663727970746f43757272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f726b3d657468657265756d267061796d656e744d6574686f643d6372656469745f64656269745f636172642666696174416d6f756e743d","id":2870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3413:217:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad","typeString":"literal_string \"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount=\""},"value":"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount="},{"id":2871,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"3632:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad","typeString":"literal_string \"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount=\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2868,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3396:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3400:12:15","memberName":"encodePacked","nodeType":"MemberAccess","src":"3396:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3396:244:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3389:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2866,"name":"string","nodeType":"ElementaryTypeName","src":"3389:6:15","typeDescriptions":{}}},"id":2873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3389:252:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"3366:275:15"},{"expression":{"arguments":[{"hexValue":"676574","id":2878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3726:5:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},"value":"get"},{"id":2879,"name":"apiUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"3745:6:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2875,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2852,"src":"3705:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":2877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3709:3:15","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"3705:7:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":2880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3705:56:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2881,"nodeType":"ExpressionStatement","src":"3705:56:15"},{"expression":{"arguments":[{"hexValue":"70617468","id":2885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3780:6:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},"value":"path"},{"hexValue":"726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565","id":2886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3788:49:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dc5377b9552c5187c2f765c9772a9f30d6c0e04ce19232cb7bc0187b9472339","typeString":"literal_string \"row,metricValues,ESTIMATED_EARNINGS,microsValue\""},"value":"row,metricValues,ESTIMATED_EARNINGS,microsValue"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},{"typeIdentifier":"t_stringliteral_6dc5377b9552c5187c2f765c9772a9f30d6c0e04ce19232cb7bc0187b9472339","typeString":"literal_string \"row,metricValues,ESTIMATED_EARNINGS,microsValue\""}],"expression":{"id":2882,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2852,"src":"3772:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":2884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3776:3:15","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"3772:7:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":2887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3772:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2888,"nodeType":"ExpressionStatement","src":"3772:66:15"},{"expression":{"arguments":[{"id":2890,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2852,"src":"3906:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":2891,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2711,"src":"3911:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2889,"name":"sendChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"3885:20:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":2892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3885:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2847,"id":2893,"nodeType":"Return","src":"3878:37:15"}]},"id":2895,"implemented":true,"kind":"function","modifiers":[],"name":"_requestTransakValidation","nameLocation":"3119:25:15","nodeType":"FunctionDefinition","parameters":{"id":2844,"nodeType":"ParameterList","parameters":[],"src":"3144:2:15"},"returnParameters":{"id":2847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2846,"mutability":"mutable","name":"requestId","nameLocation":"3172:9:15","nodeType":"VariableDeclaration","scope":2895,"src":"3164:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3164:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3163:19:15"},"scope":2984,"src":"3110:812:15","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2917,"nodeType":"Block","src":"4061:240:15","statements":[{"eventCall":{"arguments":[{"id":2906,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2897,"src":"4096:10:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2907,"name":"_price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"4108:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2905,"name":"RequestBoughtAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2732,"src":"4076:19:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":2908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4076:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2909,"nodeType":"EmitStatement","src":"4071:44:15"},{"documentation":"@notice earning will be a total of earning this week subtract for Transak transaction fee","expression":{"id":2912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2910,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2705,"src":"4247:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2911,"name":"_price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"4255:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4247:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2913,"nodeType":"ExpressionStatement","src":"4247:14:15"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2914,"name":"_checkEligibleEarning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2983,"src":"4271:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4271:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2916,"nodeType":"ExpressionStatement","src":"4271:23:15"}]},"functionSelector":"93232d9f","id":2918,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2902,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2897,"src":"4049:10:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2903,"kind":"modifierInvocation","modifierName":{"id":2901,"name":"recordChainlinkFulfillment","nameLocations":["4022:26:15"],"nodeType":"IdentifierPath","referencedDeclaration":841,"src":"4022:26:15"},"nodeType":"ModifierInvocation","src":"4022:38:15"}],"name":"fulfillTransakPrice","nameLocation":"3937:19:15","nodeType":"FunctionDefinition","parameters":{"id":2900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2897,"mutability":"mutable","name":"_requestId","nameLocation":"3974:10:15","nodeType":"VariableDeclaration","scope":2918,"src":"3966:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2896,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3966:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2899,"mutability":"mutable","name":"_price","nameLocation":"4002:6:15","nodeType":"VariableDeclaration","scope":2918,"src":"3994:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2898,"name":"uint256","nodeType":"ElementaryTypeName","src":"3994:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3956:58:15"},"returnParameters":{"id":2904,"nodeType":"ParameterList","parameters":[],"src":"4061:0:15"},"scope":2984,"src":"3928:373:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2947,"nodeType":"Block","src":"4493:218:15","statements":[{"assignments":[2926],"declarations":[{"constant":false,"id":2926,"mutability":"mutable","name":"link","nameLocation":"4522:4:15","nodeType":"VariableDeclaration","scope":2947,"src":"4503:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"},"typeName":{"id":2925,"nodeType":"UserDefinedTypeName","pathNode":{"id":2924,"name":"LinkTokenInterface","nameLocations":["4503:18:15"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"4503:18:15"},"referencedDeclaration":1251,"src":"4503:18:15","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"visibility":"internal"}],"id":2931,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2928,"name":"chainlinkTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"4548:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4548:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2927,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"4529:18:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1251_$","typeString":"type(contract LinkTokenInterface)"}},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4529:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"nodeType":"VariableDeclarationStatement","src":"4503:69:15"},{"expression":{"arguments":[{"arguments":[{"id":2935,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2720,"src":"4617:11:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":2940,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4653:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$2984","typeString":"contract AdmodConsumer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AdmodConsumer_$2984","typeString":"contract AdmodConsumer"}],"id":2939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4645:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2938,"name":"address","nodeType":"ElementaryTypeName","src":"4645:7:15","typeDescriptions":{}}},"id":2941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4645:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2936,"name":"link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2926,"src":"4630:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":2937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4635:9:15","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1183,"src":"4630:14:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4630:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2933,"name":"link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2926,"src":"4603:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":2934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4608:8:15","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":1228,"src":"4603:13:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4603:57:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e61626c6520746f207472616e73666572","id":2944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4674:20:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1","typeString":"literal_string \"Unable to transfer\""},"value":"Unable to transfer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1","typeString":"literal_string \"Unable to transfer\""}],"id":2932,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4582:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4582:122:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2946,"nodeType":"ExpressionStatement","src":"4582:122:15"}]},"documentation":{"id":2919,"nodeType":"StructuredDocumentation","src":"4307:139:15","text":"@notice\n Allow withdraw of Link tokens from the contract\n LINK will always be sent to beneficiary 0xSplits contract"},"functionSelector":"8dc654a2","id":2948,"implemented":true,"kind":"function","modifiers":[{"id":2922,"kind":"modifierInvocation","modifierName":{"id":2921,"name":"onlyOwner","nameLocations":["4483:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":1042,"src":"4483:9:15"},"nodeType":"ModifierInvocation","src":"4483:9:15"}],"name":"withdrawLink","nameLocation":"4461:12:15","nodeType":"FunctionDefinition","parameters":{"id":2920,"nodeType":"ParameterList","parameters":[],"src":"4473:2:15"},"returnParameters":{"id":2923,"nodeType":"ParameterList","parameters":[],"src":"4493:0:15"},"scope":2984,"src":"4452:259:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2982,"nodeType":"Block","src":"4758:274:15","statements":[{"assignments":[2953],"declarations":[{"constant":false,"id":2953,"mutability":"mutable","name":"link","nameLocation":"4787:4:15","nodeType":"VariableDeclaration","scope":2982,"src":"4768:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"},"typeName":{"id":2952,"nodeType":"UserDefinedTypeName","pathNode":{"id":2951,"name":"LinkTokenInterface","nameLocations":["4768:18:15"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"4768:18:15"},"referencedDeclaration":1251,"src":"4768:18:15","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"visibility":"internal"}],"id":2958,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2955,"name":"chainlinkTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"4813:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4813:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2954,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"4794:18:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1251_$","typeString":"type(contract LinkTokenInterface)"}},"id":2957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4794:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"nodeType":"VariableDeclarationStatement","src":"4768:69:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2961,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2720,"src":"4866:11:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2959,"name":"link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2953,"src":"4851:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":2960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4856:9:15","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1183,"src":"4851:14:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4851:27:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2963,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"4882:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4851:38:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"id":2979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2977,"name":"isEligible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"5007:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5020:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5007:18:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2980,"nodeType":"ExpressionStatement","src":"5007:18:15"},"id":2981,"nodeType":"IfStatement","src":"4847:178:15","trueBody":{"id":2976,"nodeType":"Block","src":"4899:94:15","statements":[{"expression":{"id":2970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2965,"name":"earningReports","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2715,"src":"4913:14:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":2968,"indexExpression":{"expression":{"id":2966,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4928:5:15","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4934:6:15","memberName":"number","nodeType":"MemberAccess","src":"4928:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4913:28:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2969,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"4944:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4913:38:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2971,"nodeType":"ExpressionStatement","src":"4913:38:15"},{"expression":{"id":2974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2972,"name":"isEligible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"4965:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4978:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4965:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2975,"nodeType":"ExpressionStatement","src":"4965:17:15"}]}}]},"id":2983,"implemented":true,"kind":"function","modifiers":[],"name":"_checkEligibleEarning","nameLocation":"4726:21:15","nodeType":"FunctionDefinition","parameters":{"id":2949,"nodeType":"ParameterList","parameters":[],"src":"4747:2:15"},"returnParameters":{"id":2950,"nodeType":"ParameterList","parameters":[],"src":"4758:0:15"},"scope":2984,"src":"4717:315:15","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":2985,"src":"235:4800:15","usedErrors":[]}],"src":"32:5003:15"},"id":15}},"contracts":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"Chainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220105cba522c50bcfa40d79857ca1cf61e43326a5bb6975a5f5eafaf335714c55f64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 LT 0x5C 0xBA MSTORE 0x2C POP 0xBC STATICCALL BLOCKHASH 0xD7 SWAP9 JUMPI 0xCA SHR 0xF6 0x1E NUMBER ORIGIN PUSH11 0x5BB6975A5F5EAFAF335714 0xC5 0x5F PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;293:3494:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220105cba522c50bcfa40d79857ca1cf61e43326a5bb6975a5f5eafaf335714c55f64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT 0x5C 0xBA MSTORE 0x2C POP 0xBC STATICCALL BLOCKHASH 0xD7 SWAP9 JUMPI 0xCA SHR 0xF6 0x1E NUMBER ORIGIN PUSH11 0x5BB6975A5F5EAFAF335714 0xC5 0x5F PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Uses imported CBOR library for encoding to buffer\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Library for common Chainlink functions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":\"Chainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ChainlinkClient":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ChainlinkClient contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contract writers can inherit this contract in order to create requests for the Chainlink network\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":\"ChainlinkClient\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"ConfirmedOwner":{"abi":[{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_880":{"entryPoint":null,"id":880,"parameterSlots":1,"returnSlots":0},"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":197,"id":1021,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":366,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1011:16","statements":[{"nodeType":"YulBlock","src":"6:3:16","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:16","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:16"},"nodeType":"YulFunctionCall","src":"143:12:16"},"nodeType":"YulExpressionStatement","src":"143:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:16"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:16"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:16"},"nodeType":"YulFunctionCall","src":"112:23:16"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:16","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:16"},"nodeType":"YulFunctionCall","src":"108:32:16"},"nodeType":"YulIf","src":"105:52:16"},{"nodeType":"YulVariableDeclaration","src":"166:29:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:16"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:16"},"nodeType":"YulFunctionCall","src":"179:16:16"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:16","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:16"},"nodeType":"YulFunctionCall","src":"260:12:16"},"nodeType":"YulExpressionStatement","src":"260:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:16"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:16"},"nodeType":"YulFunctionCall","src":"239:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:16"},"nodeType":"YulFunctionCall","src":"235:19:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:16"},"nodeType":"YulFunctionCall","src":"224:31:16"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:16"},"nodeType":"YulFunctionCall","src":"214:42:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:16"},"nodeType":"YulFunctionCall","src":"207:50:16"},"nodeType":"YulIf","src":"204:70:16"},{"nodeType":"YulAssignment","src":"283:15:16","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:16"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:16"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:16","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:16","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:16","type":""}],"src":"14:290:16"},{"body":{"nodeType":"YulBlock","src":"483:174:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"500:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"511:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:16"},"nodeType":"YulFunctionCall","src":"493:21:16"},"nodeType":"YulExpressionStatement","src":"493:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"534:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"545:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"530:3:16"},"nodeType":"YulFunctionCall","src":"530:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"550:2:16","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"523:6:16"},"nodeType":"YulFunctionCall","src":"523:30:16"},"nodeType":"YulExpressionStatement","src":"523:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"573:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"584:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:16"},"nodeType":"YulFunctionCall","src":"569:18:16"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"589:26:16","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"562:6:16"},"nodeType":"YulFunctionCall","src":"562:54:16"},"nodeType":"YulExpressionStatement","src":"562:54:16"},{"nodeType":"YulAssignment","src":"625:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"637:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"648:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"633:3:16"},"nodeType":"YulFunctionCall","src":"633:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"625:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"460:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"474:4:16","type":""}],"src":"309:348:16"},{"body":{"nodeType":"YulBlock","src":"836:173:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"853:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"864:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"846:6:16"},"nodeType":"YulFunctionCall","src":"846:21:16"},"nodeType":"YulExpressionStatement","src":"846:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"887:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"898:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"883:3:16"},"nodeType":"YulFunctionCall","src":"883:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"903:2:16","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"876:6:16"},"nodeType":"YulFunctionCall","src":"876:30:16"},"nodeType":"YulExpressionStatement","src":"876:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"926:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"937:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"922:3:16"},"nodeType":"YulFunctionCall","src":"922:18:16"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"942:25:16","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"915:6:16"},"nodeType":"YulFunctionCall","src":"915:53:16"},"nodeType":"YulExpressionStatement","src":"915:53:16"},{"nodeType":"YulAssignment","src":"977:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"989:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1000:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"985:3:16"},"nodeType":"YulFunctionCall","src":"985:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"977:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"813:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"827:4:16","type":""}],"src":"662:347:16"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":16,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161045638038061045683398101604081905261002f9161016e565b8060006001600160a01b03821661008d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03848116919091179091558116156100bd576100bd816100c5565b50505061019e565b336001600160a01b0382160361011d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610084565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561018057600080fd5b81516001600160a01b038116811461019757600080fd5b9392505050565b6102a9806101ad6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea26469706673582212201739d59a9a74282c0b5b391ffbf3f28ae1e523716204ee3945844347ccadf1d664736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x456 CODESIZE SUB DUP1 PUSH2 0x456 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x16E JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH2 0xBD JUMPI PUSH2 0xBD DUP2 PUSH2 0xC5 JUMP JUMPDEST POP POP POP PUSH2 0x19E JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x11D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x84 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x197 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2A9 DUP1 PUSH2 0x1AD 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR CODECOPY 0xD5 SWAP11 SWAP11 PUSH21 0x282C0B5B391FFBF3F28AE1E523716204EE39458443 SELFBALANCE 0xCC 0xAD CALL 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"212:141:2:-:0;;;270:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;327:8;345:1;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;511:2:16;544:59:3;;;493:21:16;550:2;530:18;;;523:30;589:26;569:18;;;562:54;633:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;270:81:2;212:141;;1497:188:3;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;864:2:16;1551:52:3;;;846:21:16;903:2;883:18;;;876:30;942:25;922:18;;;915:53;985:18;;1551:52:3;662:347:16;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;14:290:16:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:16;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:16:o;662:347::-;212:141:2;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_transferOwnership_1021":{"entryPoint":410,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":325,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":130,"id":987,"parameterSlots":0,"returnSlots":0},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@transferOwnership_951":{"entryPoint":305,"id":951,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":579,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1564:16","statements":[{"nodeType":"YulBlock","src":"6:3:16","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:102:16","statements":[{"nodeType":"YulAssignment","src":"125:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:16"},"nodeType":"YulFunctionCall","src":"133:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:16"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:16"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"182:6:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"198:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"203:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"194:3:16"},"nodeType":"YulFunctionCall","src":"194:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"207:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"190:3:16"},"nodeType":"YulFunctionCall","src":"190:19:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"178:3:16"},"nodeType":"YulFunctionCall","src":"178:32:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:16"},"nodeType":"YulFunctionCall","src":"160:51:16"},"nodeType":"YulExpressionStatement","src":"160:51:16"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:16","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:16","type":""}],"src":"14:203:16"},{"body":{"nodeType":"YulBlock","src":"292:216:16","statements":[{"body":{"nodeType":"YulBlock","src":"338:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"347:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"350:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"340:6:16"},"nodeType":"YulFunctionCall","src":"340:12:16"},"nodeType":"YulExpressionStatement","src":"340:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"313:7:16"},{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:16"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"309:3:16"},"nodeType":"YulFunctionCall","src":"309:23:16"},{"kind":"number","nodeType":"YulLiteral","src":"334:2:16","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"305:3:16"},"nodeType":"YulFunctionCall","src":"305:32:16"},"nodeType":"YulIf","src":"302:52:16"},{"nodeType":"YulVariableDeclaration","src":"363:36:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"389:9:16"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"376:12:16"},"nodeType":"YulFunctionCall","src":"376:23:16"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"367:5:16","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"471:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"474:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"464:6:16"},"nodeType":"YulFunctionCall","src":"464:12:16"},"nodeType":"YulExpressionStatement","src":"464:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"421:5:16"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"432:5:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"447:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"452:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"443:3:16"},"nodeType":"YulFunctionCall","src":"443:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"456:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"439:3:16"},"nodeType":"YulFunctionCall","src":"439:19:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"428:3:16"},"nodeType":"YulFunctionCall","src":"428:31:16"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"418:2:16"},"nodeType":"YulFunctionCall","src":"418:42:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"411:6:16"},"nodeType":"YulFunctionCall","src":"411:50:16"},"nodeType":"YulIf","src":"408:70:16"},{"nodeType":"YulAssignment","src":"487:15:16","value":{"name":"value","nodeType":"YulIdentifier","src":"497:5:16"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"487:6:16"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"258:9:16","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"269:7:16","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"281:6:16","type":""}],"src":"222:286:16"},{"body":{"nodeType":"YulBlock","src":"687:172:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"704:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"715:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"697:6:16"},"nodeType":"YulFunctionCall","src":"697:21:16"},"nodeType":"YulExpressionStatement","src":"697:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"738:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"749:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:16"},"nodeType":"YulFunctionCall","src":"734:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"754:2:16","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:16"},"nodeType":"YulFunctionCall","src":"727:30:16"},"nodeType":"YulExpressionStatement","src":"727:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"777:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"788:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"773:3:16"},"nodeType":"YulFunctionCall","src":"773:18:16"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"793:24:16","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"766:6:16"},"nodeType":"YulFunctionCall","src":"766:52:16"},"nodeType":"YulExpressionStatement","src":"766:52:16"},{"nodeType":"YulAssignment","src":"827:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"839:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"850:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"835:3:16"},"nodeType":"YulFunctionCall","src":"835:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"827:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"664:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"678:4:16","type":""}],"src":"513:346:16"},{"body":{"nodeType":"YulBlock","src":"1038:172:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1066:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1048:6:16"},"nodeType":"YulFunctionCall","src":"1048:21:16"},"nodeType":"YulExpressionStatement","src":"1048:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1089:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1085:3:16"},"nodeType":"YulFunctionCall","src":"1085:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"1105:2:16","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1078:6:16"},"nodeType":"YulFunctionCall","src":"1078:30:16"},"nodeType":"YulExpressionStatement","src":"1078:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1139:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1124:3:16"},"nodeType":"YulFunctionCall","src":"1124:18:16"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1144:24:16","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1117:6:16"},"nodeType":"YulFunctionCall","src":"1117:52:16"},"nodeType":"YulExpressionStatement","src":"1117:52:16"},{"nodeType":"YulAssignment","src":"1178:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1190:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1201:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1186:3:16"},"nodeType":"YulFunctionCall","src":"1186:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1178:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1015:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1029:4:16","type":""}],"src":"864:346:16"},{"body":{"nodeType":"YulBlock","src":"1389:173:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1417:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1399:6:16"},"nodeType":"YulFunctionCall","src":"1399:21:16"},"nodeType":"YulExpressionStatement","src":"1399:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1440:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1451:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:16"},"nodeType":"YulFunctionCall","src":"1436:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"1456:2:16","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1429:6:16"},"nodeType":"YulFunctionCall","src":"1429:30:16"},"nodeType":"YulExpressionStatement","src":"1429:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1479:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1490:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:16"},"nodeType":"YulFunctionCall","src":"1475:18:16"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1495:25:16","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1468:6:16"},"nodeType":"YulFunctionCall","src":"1468:53:16"},"nodeType":"YulExpressionStatement","src":"1468:53:16"},{"nodeType":"YulAssignment","src":"1530:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1542:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1553:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1538:3:16"},"nodeType":"YulFunctionCall","src":"1538:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1530:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1366:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1380:4:16","type":""}],"src":"1215:347:16"}]},"contents":"{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":16,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea26469706673582212201739d59a9a74282c0b5b391ffbf3f28ae1e523716204ee3945844347ccadf1d664736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR CODECOPY 0xD5 SWAP11 SWAP11 PUSH21 0x282C0B5B391FFBF3F28AE1E523716204EE39458443 SELFBALANCE 0xCC 0xAD CALL 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"212:141:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:265:3;;;:::i;:::-;;1332:81;1379:7;1401;1332:81;;;-1:-1:-1;;;;;1401:7:3;;;160:51:16;;1332:81:3;;;;;148:2:16;1332:81:3;;;826:98;;;;;;:::i;:::-;;:::i;1016:265::-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;715:2:16;1067:63:3;;;697:21:16;754:2;734:18;;;727:30;-1:-1:-1;;;773:18:16;;;766:52;835:18;;1067:63:3;;;;;;;;;1137:16;1156:7;;1179:10;-1:-1:-1;;;;;;1169:20:3;;;;;;;-1:-1:-1;1195:27:3;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;;1156:7;;1234:42;;;1061:220;1016:265::o;826:98::-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;:::-;826:98:::0;:::o;1730:111::-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;1066:2:16;1780:56:3;;;1048:21:16;1105:2;1085:18;;;1078:30;-1:-1:-1;;;1124:18:16;;;1117:52;1186:18;;1780:56:3;864:346:16;1780:56:3;1730:111::o;1497:188::-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1417:2:16;1551:52:3;;;1399:21:16;1456:2;1436:18;;;1429:30;1495:25;1475:18;;;1468:53;1538:18;;1551:52:3;1215:347:16;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;222:286:16:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:16;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:16:o"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ConfirmedOwner contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"}},\"notice\":\"A contract with helpers for basic contract ownership.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":\"ConfirmedOwner\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":{\"keccak256\":\"0x99d0b0786fe368970009c703f2249bfbc56340ddf1a28b60d2915bb58c34cd72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0371c1af45db651823b9a3d5af761b08243c78f105166342eee28de356c8dd\",\"dweb:/ipfs/QmPnC9qNDKwJFd5unwLb9pxjrutoe8MWjm5EXHTxq2kJ4x\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"ConfirmedOwnerWithProposal":{"abi":[{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":193,"id":1021,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":362,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":390,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1196:16","statements":[{"nodeType":"YulBlock","src":"6:3:16","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:16","statements":[{"nodeType":"YulAssignment","src":"84:22:16","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:16"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:16"},"nodeType":"YulFunctionCall","src":"93:13:16"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:16"}]},{"body":{"nodeType":"YulBlock","src":"169:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:16"},"nodeType":"YulFunctionCall","src":"171:12:16"},"nodeType":"YulExpressionStatement","src":"171:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:16"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:16"},"nodeType":"YulFunctionCall","src":"150:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:16"},"nodeType":"YulFunctionCall","src":"146:19:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:16"},"nodeType":"YulFunctionCall","src":"135:31:16"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:16"},"nodeType":"YulFunctionCall","src":"125:42:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:16"},"nodeType":"YulFunctionCall","src":"118:50:16"},"nodeType":"YulIf","src":"115:70:16"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:16","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:16","type":""}],"src":"14:177:16"},{"body":{"nodeType":"YulBlock","src":"294:195:16","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:16"},"nodeType":"YulFunctionCall","src":"342:12:16"},"nodeType":"YulExpressionStatement","src":"342:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:16"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:16"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:16"},"nodeType":"YulFunctionCall","src":"311:23:16"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:16","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:16"},"nodeType":"YulFunctionCall","src":"307:32:16"},"nodeType":"YulIf","src":"304:52:16"},{"nodeType":"YulAssignment","src":"365:50:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:16"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:16"},"nodeType":"YulFunctionCall","src":"375:40:16"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:16"}]},{"nodeType":"YulAssignment","src":"424:59:16","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:16"},"nodeType":"YulFunctionCall","src":"464:18:16"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:16"},"nodeType":"YulFunctionCall","src":"434:49:16"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:16"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:16","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:16","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:16","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:16","type":""}],"src":"196:293:16"},{"body":{"nodeType":"YulBlock","src":"668:174:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:16"},"nodeType":"YulFunctionCall","src":"678:21:16"},"nodeType":"YulExpressionStatement","src":"678:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:16"},"nodeType":"YulFunctionCall","src":"715:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:16","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:16"},"nodeType":"YulFunctionCall","src":"708:30:16"},"nodeType":"YulExpressionStatement","src":"708:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:16"},"nodeType":"YulFunctionCall","src":"754:18:16"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"774:26:16","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:16"},"nodeType":"YulFunctionCall","src":"747:54:16"},"nodeType":"YulExpressionStatement","src":"747:54:16"},{"nodeType":"YulAssignment","src":"810:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"822:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"833:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"818:3:16"},"nodeType":"YulFunctionCall","src":"818:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"810:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:16","type":""}],"src":"494:348:16"},{"body":{"nodeType":"YulBlock","src":"1021:173:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1038:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1031:6:16"},"nodeType":"YulFunctionCall","src":"1031:21:16"},"nodeType":"YulExpressionStatement","src":"1031:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1072:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1083:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1068:3:16"},"nodeType":"YulFunctionCall","src":"1068:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"1088:2:16","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1061:6:16"},"nodeType":"YulFunctionCall","src":"1061:30:16"},"nodeType":"YulExpressionStatement","src":"1061:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1111:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1122:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1107:3:16"},"nodeType":"YulFunctionCall","src":"1107:18:16"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1127:25:16","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1100:6:16"},"nodeType":"YulFunctionCall","src":"1100:53:16"},"nodeType":"YulExpressionStatement","src":"1100:53:16"},{"nodeType":"YulAssignment","src":"1162:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1174:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1185:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1170:3:16"},"nodeType":"YulFunctionCall","src":"1170:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1162:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"998:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1012:4:16","type":""}],"src":"847:347:16"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":16,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161047138038061047183398101604081905261002f91610186565b6001600160a01b03821661008a5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03848116919091179091558116156100ba576100ba816100c1565b50506101b9565b336001600160a01b038216036101195760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610081565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b038116811461018157600080fd5b919050565b6000806040838503121561019957600080fd5b6101a28361016a565b91506101b06020840161016a565b90509250929050565b6102a9806101c86000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea2646970667358221220768354278908a9a8fa21a7093ee5414379b9ee80a33d9f06b906f6d52bff6b1c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x471 CODESIZE SUB DUP1 PUSH2 0x471 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x186 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH2 0xBA JUMPI PUSH2 0xBA DUP2 PUSH2 0xC1 JUMP JUMPDEST POP POP PUSH2 0x1B9 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x119 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x81 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x181 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A2 DUP4 PUSH2 0x16A JUMP JUMPDEST SWAP2 POP PUSH2 0x1B0 PUSH1 0x20 DUP5 ADD PUSH2 0x16A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A9 DUP1 PUSH2 0x1C8 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x8354278908A9A8FA21A7093EE5414379B9EE80A33D9F06 0xB9 MOD 0xF6 0xD5 0x2B SELFDESTRUCT PUSH12 0x1C64736F6C63430008110033 ","sourceMap":"213:1777:3:-:0;;;486:231;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;696:2:16;544:59:3;;;678:21:16;735:2;715:18;;;708:30;774:26;754:18;;;747:54;818:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;213:1777;;1497:188;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1049:2:16;1551:52:3;;;1031:21:16;1088:2;1068:18;;;1061:30;1127:25;1107:18;;;1100:53;1170:18;;1551:52:3;847:347:16;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;14:177:16:-;93:13;;-1:-1:-1;;;;;135:31:16;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;847:347::-;213:1777:3;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_transferOwnership_1021":{"entryPoint":410,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":325,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":130,"id":987,"parameterSlots":0,"returnSlots":0},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@transferOwnership_951":{"entryPoint":305,"id":951,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":579,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1564:16","statements":[{"nodeType":"YulBlock","src":"6:3:16","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:102:16","statements":[{"nodeType":"YulAssignment","src":"125:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:16"},"nodeType":"YulFunctionCall","src":"133:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:16"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:16"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"182:6:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"198:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"203:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"194:3:16"},"nodeType":"YulFunctionCall","src":"194:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"207:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"190:3:16"},"nodeType":"YulFunctionCall","src":"190:19:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"178:3:16"},"nodeType":"YulFunctionCall","src":"178:32:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:16"},"nodeType":"YulFunctionCall","src":"160:51:16"},"nodeType":"YulExpressionStatement","src":"160:51:16"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:16","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:16","type":""}],"src":"14:203:16"},{"body":{"nodeType":"YulBlock","src":"292:216:16","statements":[{"body":{"nodeType":"YulBlock","src":"338:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"347:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"350:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"340:6:16"},"nodeType":"YulFunctionCall","src":"340:12:16"},"nodeType":"YulExpressionStatement","src":"340:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"313:7:16"},{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:16"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"309:3:16"},"nodeType":"YulFunctionCall","src":"309:23:16"},{"kind":"number","nodeType":"YulLiteral","src":"334:2:16","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"305:3:16"},"nodeType":"YulFunctionCall","src":"305:32:16"},"nodeType":"YulIf","src":"302:52:16"},{"nodeType":"YulVariableDeclaration","src":"363:36:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"389:9:16"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"376:12:16"},"nodeType":"YulFunctionCall","src":"376:23:16"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"367:5:16","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"471:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"474:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"464:6:16"},"nodeType":"YulFunctionCall","src":"464:12:16"},"nodeType":"YulExpressionStatement","src":"464:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"421:5:16"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"432:5:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"447:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"452:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"443:3:16"},"nodeType":"YulFunctionCall","src":"443:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"456:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"439:3:16"},"nodeType":"YulFunctionCall","src":"439:19:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"428:3:16"},"nodeType":"YulFunctionCall","src":"428:31:16"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"418:2:16"},"nodeType":"YulFunctionCall","src":"418:42:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"411:6:16"},"nodeType":"YulFunctionCall","src":"411:50:16"},"nodeType":"YulIf","src":"408:70:16"},{"nodeType":"YulAssignment","src":"487:15:16","value":{"name":"value","nodeType":"YulIdentifier","src":"497:5:16"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"487:6:16"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"258:9:16","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"269:7:16","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"281:6:16","type":""}],"src":"222:286:16"},{"body":{"nodeType":"YulBlock","src":"687:172:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"704:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"715:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"697:6:16"},"nodeType":"YulFunctionCall","src":"697:21:16"},"nodeType":"YulExpressionStatement","src":"697:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"738:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"749:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:16"},"nodeType":"YulFunctionCall","src":"734:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"754:2:16","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:16"},"nodeType":"YulFunctionCall","src":"727:30:16"},"nodeType":"YulExpressionStatement","src":"727:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"777:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"788:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"773:3:16"},"nodeType":"YulFunctionCall","src":"773:18:16"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"793:24:16","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"766:6:16"},"nodeType":"YulFunctionCall","src":"766:52:16"},"nodeType":"YulExpressionStatement","src":"766:52:16"},{"nodeType":"YulAssignment","src":"827:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"839:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"850:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"835:3:16"},"nodeType":"YulFunctionCall","src":"835:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"827:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"664:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"678:4:16","type":""}],"src":"513:346:16"},{"body":{"nodeType":"YulBlock","src":"1038:172:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1066:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1048:6:16"},"nodeType":"YulFunctionCall","src":"1048:21:16"},"nodeType":"YulExpressionStatement","src":"1048:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1089:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1085:3:16"},"nodeType":"YulFunctionCall","src":"1085:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"1105:2:16","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1078:6:16"},"nodeType":"YulFunctionCall","src":"1078:30:16"},"nodeType":"YulExpressionStatement","src":"1078:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1139:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1124:3:16"},"nodeType":"YulFunctionCall","src":"1124:18:16"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1144:24:16","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1117:6:16"},"nodeType":"YulFunctionCall","src":"1117:52:16"},"nodeType":"YulExpressionStatement","src":"1117:52:16"},{"nodeType":"YulAssignment","src":"1178:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1190:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1201:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1186:3:16"},"nodeType":"YulFunctionCall","src":"1186:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1178:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1015:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1029:4:16","type":""}],"src":"864:346:16"},{"body":{"nodeType":"YulBlock","src":"1389:173:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1417:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1399:6:16"},"nodeType":"YulFunctionCall","src":"1399:21:16"},"nodeType":"YulExpressionStatement","src":"1399:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1440:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1451:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:16"},"nodeType":"YulFunctionCall","src":"1436:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"1456:2:16","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1429:6:16"},"nodeType":"YulFunctionCall","src":"1429:30:16"},"nodeType":"YulExpressionStatement","src":"1429:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1479:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1490:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:16"},"nodeType":"YulFunctionCall","src":"1475:18:16"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1495:25:16","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1468:6:16"},"nodeType":"YulFunctionCall","src":"1468:53:16"},"nodeType":"YulExpressionStatement","src":"1468:53:16"},{"nodeType":"YulAssignment","src":"1530:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1542:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1553:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1538:3:16"},"nodeType":"YulFunctionCall","src":"1538:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1530:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1366:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1380:4:16","type":""}],"src":"1215:347:16"}]},"contents":"{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":16,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea2646970667358221220768354278908a9a8fa21a7093ee5414379b9ee80a33d9f06b906f6d52bff6b1c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x8354278908A9A8FA21A7093EE5414379B9EE80A33D9F06 0xB9 MOD 0xF6 0xD5 0x2B SELFDESTRUCT PUSH12 0x1C64736F6C63430008110033 ","sourceMap":"213:1777:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:265;;;:::i;:::-;;1332:81;1379:7;1401;1332:81;;;-1:-1:-1;;;;;1401:7:3;;;160:51:16;;1332:81:3;;;;;148:2:16;1332:81:3;;;826:98;;;;;;:::i;:::-;;:::i;1016:265::-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;715:2:16;1067:63:3;;;697:21:16;754:2;734:18;;;727:30;-1:-1:-1;;;773:18:16;;;766:52;835:18;;1067:63:3;;;;;;;;;1137:16;1156:7;;1179:10;-1:-1:-1;;;;;;1169:20:3;;;;;;;-1:-1:-1;1195:27:3;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;;1156:7;;1234:42;;;1061:220;1016:265::o;826:98::-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;:::-;826:98:::0;:::o;1730:111::-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;1066:2:16;1780:56:3;;;1048:21:16;1105:2;1085:18;;;1078:30;-1:-1:-1;;;1124:18:16;;;1117:52;1186:18;;1780:56:3;864:346:16;1780:56:3;1730:111::o;1497:188::-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1417:2:16;1551:52:3;;;1399:21:16;1456:2;1436:18;;;1429:30;1495:25;1475:18;;;1468:53;1538:18;;1551:52:3;1215:347:16;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;222:286:16:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:16;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:16:o"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ConfirmedOwner contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"}},\"notice\":\"A contract with helpers for basic contract ownership.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":\"ConfirmedOwnerWithProposal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ChainlinkRequestInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":\"ChainlinkRequestInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ENSInterface":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"label","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner(bytes32)":"02571be3","resolver(bytes32)":"0178b8bf","setOwner(bytes32,address)":"5b0fc9c3","setResolver(bytes32,address)":"1896f70a","setSubnodeOwner(bytes32,bytes32,address)":"06ab5923","setTTL(bytes32,uint64)":"14ab9038","ttl(bytes32)":"16a25cbd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":\"ENSInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"LinkTokenInterface":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"decimalPlaces","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"increaseApproval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"tokenName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"tokenSymbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"totalTokensIssued","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseApproval(address,uint256)":"66188463","increaseApproval(address,uint256)":"d73dd623","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferAndCall(address,uint256,bytes)":"4000aea0","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"decimalPlaces\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalTokensIssued\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":\"LinkTokenInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"OperatorInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"distributeFunds","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"fulfillOracleRequest2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAuthorizedSenders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getForwarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes32","name":"specId","type":"bytes32"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"operatorRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ownerTransferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"senders","type":"address[]"}],"name":"setAuthorizedSenders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","distributeFunds(address[],uint256[])":"6bd59ec0","fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)":"6ae0bc76","getAuthorizedSenders()":"2408afaa","getForwarder()":"a0042526","isAuthorizedSender(address)":"fa00763a","operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes)":"3c6d41b9","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946","ownerTransferAndCall(address,uint256,bytes)":"902fc370","setAuthorizedSenders(address[])":"ee56997b","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"distributeFunds\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"fulfillOracleRequest2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuthorizedSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"specId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"operatorRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ownerTransferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"senders\",\"type\":\"address[]\"}],\"name\":\"setAuthorizedSenders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":\"OperatorInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"OracleInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","isAuthorizedSender(address)":"fa00763a","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":\"OracleInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"OwnableInterface":{"abi":[{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":\"OwnableInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"PointerInterface":{"abi":[{"inputs":[],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getAddress()":"38cc4831"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":\"PointerInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"BufferChainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e86a3ae4595e07c02fc63bb9fa7644f0282d309680ceb2c0cfb8ba039b2776bb64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0xE8 PUSH11 0x3AE4595E07C02FC63BB9FA PUSH23 0x44F0282D309680CEB2C0CFB8BA039B2776BB64736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"441:9632:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;441:9632:11;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e86a3ae4595e07c02fc63bb9fa7644f0282d309680ceb2c0cfb8ba039b2776bb64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE8 PUSH11 0x3AE4595E07C02FC63BB9FA PUSH23 0x44F0282D309680CEB2C0CFB8BA039B2776BB64736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"441:9632:11:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"A library for working with mutable byte buffers in Solidity. Byte buffers are mutable and expandable, and provide a variety of primitives for writing to them. At any time you can fetch a bytes object containing the current contents of the buffer. The bytes object should not be stored between operations, as it may change due to resizing of the buffer.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":\"BufferChainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"CBORChainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7f6205a46b5929d7528a5cbcc4e9160178d1084fdd91e38d125311819bd729164736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0xD7 0xF6 KECCAK256 GAS CHAINID 0xB5 SWAP3 SWAP14 PUSH22 0x28A5CBCC4E9160178D1084FDD91E38D125311819BD72 SWAP2 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"115:3271:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;115:3271:12;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7f6205a46b5929d7528a5cbcc4e9160178d1084fdd91e38d125311819bd729164736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 0xF6 KECCAK256 GAS CHAINID 0xB5 SWAP3 SWAP14 PUSH22 0x28A5CBCC4E9160178D1084FDD91E38D125311819BD72 SWAP2 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"115:3271:12:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":\"CBORChainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ENSResolver":{"abi":[{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"addr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addr(bytes32)":"3b3b57de"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":\"ENSResolver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"SafeMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208e77a4680532ae9e9e61e1cd4ff6be2a8d9dddec98c69552d2944258cddde66d64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 DUP15 PUSH24 0xA4680532AE9E9E61E1CD4FF6BE2A8D9DDDEC98C69552D294 TIMESTAMP PC 0xCD 0xDD 0xE6 PUSH14 0x64736F6C63430008110033000000 ","sourceMap":"482:6210:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;482:6210:14;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208e77a4680532ae9e9e61e1cd4ff6be2a8d9dddec98c69552d2944258cddde66d64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP15 PUSH24 0xA4680532AE9E9E61E1CD4FF6BE2A8D9DDDEC98C69552D294 TIMESTAMP PC 0xCD 0xDD 0xE6 PUSH14 0x64736F6C63430008110033000000 ","sourceMap":"482:6210:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations. NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler now has built in overflow checking.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x58b21219689909c4f8339af00813760337f7e2e7f169a97fe49e2896dcfb3b9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8e012e946dec20e59f2d4446f4b44bb098f3fa8bac103b1b5112fff777447b\",\"dweb:/ipfs/QmVTooKWcLkJ9W68yNX4MgdrbAKiAXwuRN9A7f4NkdcdtQ\"]}},\"version\":1}"}},"contracts/AdmodConsumer.sol":{"AdmodConsumer":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"RequestBoughtAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"earning","type":"uint256"}],"name":"RequestEarning","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"earningReports","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_requestId","type":"bytes32"},{"internalType":"uint256","name":"_earning","type":"uint256"}],"name":"fulfill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_requestId","type":"bytes32"},{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"fulfillTransakPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ggJobId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isEligible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"requestWeekEarning","outputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transakJobId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawLink","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_2773":{"entryPoint":null,"id":2773,"parameterSlots":2,"returnSlots":0},"@_880":{"entryPoint":null,"id":880,"parameterSlots":1,"returnSlots":0},"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":406,"id":1021,"parameterSlots":1,"returnSlots":0},"@setChainlinkOracle_656":{"entryPoint":null,"id":656,"parameterSlots":1,"returnSlots":0},"@setChainlinkToken_669":{"entryPoint":578,"id":669,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":612,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":641,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":741,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":697,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1688:16","statements":[{"nodeType":"YulBlock","src":"6:3:16","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:16","statements":[{"nodeType":"YulAssignment","src":"84:22:16","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:16"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:16"},"nodeType":"YulFunctionCall","src":"93:13:16"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:16"}]},{"body":{"nodeType":"YulBlock","src":"169:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:16"},"nodeType":"YulFunctionCall","src":"171:12:16"},"nodeType":"YulExpressionStatement","src":"171:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:16"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:16"},"nodeType":"YulFunctionCall","src":"150:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:16"},"nodeType":"YulFunctionCall","src":"146:19:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:16"},"nodeType":"YulFunctionCall","src":"135:31:16"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:16"},"nodeType":"YulFunctionCall","src":"125:42:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:16"},"nodeType":"YulFunctionCall","src":"118:50:16"},"nodeType":"YulIf","src":"115:70:16"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:16","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:16","type":""}],"src":"14:177:16"},{"body":{"nodeType":"YulBlock","src":"294:195:16","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:16"},"nodeType":"YulFunctionCall","src":"342:12:16"},"nodeType":"YulExpressionStatement","src":"342:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:16"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:16"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:16"},"nodeType":"YulFunctionCall","src":"311:23:16"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:16","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:16"},"nodeType":"YulFunctionCall","src":"307:32:16"},"nodeType":"YulIf","src":"304:52:16"},{"nodeType":"YulAssignment","src":"365:50:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:16"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:16"},"nodeType":"YulFunctionCall","src":"375:40:16"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:16"}]},{"nodeType":"YulAssignment","src":"424:59:16","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:16"},"nodeType":"YulFunctionCall","src":"464:18:16"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:16"},"nodeType":"YulFunctionCall","src":"434:49:16"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:16"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:16","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:16","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:16","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:16","type":""}],"src":"196:293:16"},{"body":{"nodeType":"YulBlock","src":"668:174:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:16"},"nodeType":"YulFunctionCall","src":"678:21:16"},"nodeType":"YulExpressionStatement","src":"678:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:16"},"nodeType":"YulFunctionCall","src":"715:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:16","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:16"},"nodeType":"YulFunctionCall","src":"708:30:16"},"nodeType":"YulExpressionStatement","src":"708:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:16"},"nodeType":"YulFunctionCall","src":"754:18:16"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"774:26:16","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:16"},"nodeType":"YulFunctionCall","src":"747:54:16"},"nodeType":"YulExpressionStatement","src":"747:54:16"},{"nodeType":"YulAssignment","src":"810:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"822:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"833:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"818:3:16"},"nodeType":"YulFunctionCall","src":"818:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"810:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:16","type":""}],"src":"494:348:16"},{"body":{"nodeType":"YulBlock","src":"899:213:16","statements":[{"nodeType":"YulAssignment","src":"909:20:16","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"924:1:16"},{"name":"y","nodeType":"YulIdentifier","src":"927:1:16"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"920:3:16"},"nodeType":"YulFunctionCall","src":"920:9:16"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"909:7:16"}]},{"body":{"nodeType":"YulBlock","src":"995:111:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1016:1:16","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1023:3:16","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1028:10:16","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1019:3:16"},"nodeType":"YulFunctionCall","src":"1019:20:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1009:6:16"},"nodeType":"YulFunctionCall","src":"1009:31:16"},"nodeType":"YulExpressionStatement","src":"1009:31:16"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1060:1:16","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1063:4:16","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1053:6:16"},"nodeType":"YulFunctionCall","src":"1053:15:16"},"nodeType":"YulExpressionStatement","src":"1053:15:16"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1088:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1091:4:16","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1081:6:16"},"nodeType":"YulFunctionCall","src":"1081:15:16"},"nodeType":"YulExpressionStatement","src":"1081:15:16"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"958:1:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"951:6:16"},"nodeType":"YulFunctionCall","src":"951:9:16"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"965:1:16"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"972:7:16"},{"name":"x","nodeType":"YulIdentifier","src":"981:1:16"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"968:3:16"},"nodeType":"YulFunctionCall","src":"968:15:16"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"962:2:16"},"nodeType":"YulFunctionCall","src":"962:22:16"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"948:2:16"},"nodeType":"YulFunctionCall","src":"948:37:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"941:6:16"},"nodeType":"YulFunctionCall","src":"941:45:16"},"nodeType":"YulIf","src":"938:168:16"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"878:1:16","type":""},{"name":"y","nodeType":"YulTypedName","src":"881:1:16","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"887:7:16","type":""}],"src":"847:265:16"},{"body":{"nodeType":"YulBlock","src":"1163:171:16","statements":[{"body":{"nodeType":"YulBlock","src":"1194:111:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1215:1:16","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1222:3:16","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1227:10:16","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1218:3:16"},"nodeType":"YulFunctionCall","src":"1218:20:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1208:6:16"},"nodeType":"YulFunctionCall","src":"1208:31:16"},"nodeType":"YulExpressionStatement","src":"1208:31:16"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1259:1:16","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1262:4:16","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1252:6:16"},"nodeType":"YulFunctionCall","src":"1252:15:16"},"nodeType":"YulExpressionStatement","src":"1252:15:16"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1287:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1290:4:16","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1280:6:16"},"nodeType":"YulFunctionCall","src":"1280:15:16"},"nodeType":"YulExpressionStatement","src":"1280:15:16"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1183:1:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1176:6:16"},"nodeType":"YulFunctionCall","src":"1176:9:16"},"nodeType":"YulIf","src":"1173:132:16"},{"nodeType":"YulAssignment","src":"1314:14:16","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1323:1:16"},{"name":"y","nodeType":"YulIdentifier","src":"1326:1:16"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1319:3:16"},"nodeType":"YulFunctionCall","src":"1319:9:16"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1314:1:16"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1148:1:16","type":""},{"name":"y","nodeType":"YulTypedName","src":"1151:1:16","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"1157:1:16","type":""}],"src":"1117:217:16"},{"body":{"nodeType":"YulBlock","src":"1513:173:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1530:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1541:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1523:6:16"},"nodeType":"YulFunctionCall","src":"1523:21:16"},"nodeType":"YulExpressionStatement","src":"1523:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1564:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1575:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1560:3:16"},"nodeType":"YulFunctionCall","src":"1560:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"1580:2:16","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1553:6:16"},"nodeType":"YulFunctionCall","src":"1553:30:16"},"nodeType":"YulExpressionStatement","src":"1553:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1603:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1614:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1599:3:16"},"nodeType":"YulFunctionCall","src":"1599:18:16"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1619:25:16","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1592:6:16"},"nodeType":"YulFunctionCall","src":"1592:53:16"},"nodeType":"YulExpressionStatement","src":"1592:53:16"},{"nodeType":"YulAssignment","src":"1654:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1666:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1677:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1662:3:16"},"nodeType":"YulFunctionCall","src":"1662:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1654:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1490:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1504:4:16","type":""}],"src":"1339:347:16"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x))))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":16,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405260016004553480156200001657600080fd5b50604051620017bc380380620017bc833981016040819052620000399162000281565b818060006001600160a01b038216620000995760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0384811691909117909155811615620000cc57620000cc8162000196565b505050620000f473326c977e6efc84e512bb9c30f76e30c160ed06fb6200024260201b60201c565b600380546001600160a01b03191673aa37473c8d78f0f1c86c9d8aee53e8b896bcb4d51790557f6231643432636435346133613432303062316637323561363865343838383838600a90815562000155670de0b6b3a76400006001620002b9565b620001619190620002e5565b600c55600e80546001600160a81b0319166101006001600160a01b03939093169290920260ff19169190911790555062000308565b336001600160a01b03821603620001f05760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000090565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b03811681146200027c57600080fd5b919050565b600080604083850312156200029557600080fd5b620002a08362000264565b9150620002b06020840162000264565b90509250929050565b8082028115828204841417620002df57634e487b7160e01b600052601160045260246000fd5b92915050565b6000826200030357634e487b7160e01b600052601260045260246000fd5b500490565b6114a480620003186000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c5780639e2f9084116100665780639e2f9084146101b2578063a035b1fe146101d2578063df78abe6146101db578063f2fde38b146101e457600080fd5b80638da5cb5b146101865780638dc654a21461019757806393232d9f1461019f57600080fd5b80634357855e116100c85780634357855e1461014457806343e1ca491461015957806350ed6a951461017657806379ba50971461017e57600080fd5b8063350844ce146100ef57806338af3eed1461010b578063403a77611461013b575b600080fd5b6100f8600b5481565b6040519081526020015b60405180910390f35b600e546101239061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610102565b6100f8600a5481565b6101576101523660046110af565b6101f7565b005b600e546101669060ff1681565b6040519015158152602001610102565b6100f86102d3565b61015761037f565b6006546001600160a01b0316610123565b61015761042d565b6101576101ad3660046110af565b61057c565b6100f86101c03660046110d1565b600d6020526000908152604090205481565b6100f860095481565b6100f860085481565b6101576101f23660046110ea565b610643565b60008281526005602052604090205482906001600160a01b031633146102385760405162461bcd60e51b815260040161022f9061111a565b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0836040516102ad91815260200190565b60405180910390a26102c282620186a0610654565b6008556102cd610669565b50505050565b6000806102ea600a5430634357855e60e01b61082c565b905061032c6040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c81526020016113f4604c9139839190610851565b61036d604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001611440602f9139839190610851565b61037981600c5461086f565b91505090565b6007546001600160a01b031633146103d25760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161022f565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b610435610889565b60006104496002546001600160a01b031690565b600e546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb9261010090049091169083906370a0823190602401602060405180830381865afa1580156104a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c99190611162565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610514573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610538919061117b565b6105795760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161022f565b50565b60008281526005602052604090205482906001600160a01b031633146105b45760405162461bcd60e51b815260040161022f9061111a565b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f2e48c207bbe18ca424eae69ca096badb69cc821f8cb72b42f49599f3390a3b1c8360405161062991815260200190565b60405180910390a2600982905561063e6108de565b505050565b61064b610889565b610579816109a2565b600061066082846111c9565b90505b92915050565b600080610680600b54306393232d9f60e01b61082c565b905060006008546040516020016107a791907f68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f81527f76322f63757272656e636965732f70726963653f706172746e65724170694b6560208201527f793d30363235323566302d383536622d343330322d396434382d38623639306260408201527f623565363334266669617443757272656e63793d5553442663727970746f437560608201527f7272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f60808201527f726b3d657468657265756d267061796d656e744d6574686f643d63726564697460a08201527f5f64656269745f636172642666696174416d6f756e743d00000000000000000060c082015260d781019190915260f70190565b60408051601f19818403018152828201909152600382526219d95d60ea1b602083015291506107d890839083610851565b610819604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001611440602f9139849190610851565b61082582600c5461086f565b9250505090565b610834611074565b61083c611074565b61084881868686610a4c565b95945050505050565b60808301516108609083610a92565b608083015161063e9082610a92565b600354600090610660906001600160a01b03168484610aa9565b6006546001600160a01b031633146108dc5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161022f565b565b60006108f26002546001600160a01b031690565b600854600e546040516370a0823160e01b81526101009091046001600160a01b03908116600483015292935090918316906370a0823190602401602060405180830381865afa158015610949573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096d9190611162565b0361099557600854436000908152600d6020526040902055600e805460ff1916600117905550565b600e805460ff1916905550565b336001600160a01b038216036109fa5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161022f565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b610a54611074565b610a648560800151610100610b3c565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b610a9f8260038351610ba1565b61063e8282610cb0565b600454600090610aba8160016111dd565b600455835160408086015160808701515191516000936320214ca360e11b93610af29386938493923092918a91600191602401611236565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610b3286838684610cd7565b9695505050505050565b604080518082019091526060815260006020820152610b5c60208361129e565b15610b8457610b6c60208361129e565b610b779060206112b2565b610b8190836111dd565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff1611610bc6576102cd8360e0600585901b168317610e35565b60ff8167ffffffffffffffff1611610c0457610bed836018611fe0600586901b1617610e35565b506102cd8367ffffffffffffffff83166001610e5a565b61ffff8167ffffffffffffffff1611610c4357610c2c836019611fe0600586901b1617610e35565b506102cd8367ffffffffffffffff83166002610e5a565b63ffffffff8167ffffffffffffffff1611610c8457610c6d83601a611fe0600586901b1617610e35565b506102cd8367ffffffffffffffff83166004610e5a565b610c9983601b611fe0600586901b1617610e35565b506102cd8367ffffffffffffffff83166008610e5a565b60408051808201909152606081526000602082015261066083846000015151848551610e80565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea090610d9a908890879087906004016112c5565b6020604051808303816000875af1158015610db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddd919061117b565b610a8a5760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161022f565b6040805180820190915260608152600060208201526106608384600001515184610f6a565b604080518082019091526060815260006020820152610a8a848560000151518585610fc5565b6040805180820190915260608152600060208201528251821115610ea357600080fd5b6020850151610eb283866111dd565b1115610ee557610ee585610ed587602001518786610ed091906111dd565b611046565b610ee09060026112ec565b61105d565b600080865180518760208301019350808887011115610f045787860182525b505050602084015b60208410610f445780518252610f236020836111dd565b9150610f306020826111dd565b9050610f3d6020856112b2565b9350610f0c565b51815160001960208690036101000a019081169019919091161790525083949350505050565b60408051808201909152606081526000602082015283602001518310610f9f57610f9f8485602001516002610ee091906112ec565b8351805160208583010184815350808503610fbb576001810182525b5093949350505050565b6040805180820190915260608152600060208201526020850151610fe985846111dd565b1115610ffd57610ffd85610ed586856111dd565b6000600161100d846101006113e7565b61101791906112b2565b905085518386820101858319825116178152508051848701111561103b5783860181525b509495945050505050565b600081831115611057575081610663565b50919050565b81516110698383610b3c565b506102cd8382610cb0565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b600080604083850312156110c257600080fd5b50508035926020909101359150565b6000602082840312156110e357600080fd5b5035919050565b6000602082840312156110fc57600080fd5b81356001600160a01b038116811461111357600080fd5b9392505050565b60208082526028908201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604082015267081c995c5d595cdd60c21b606082015260800190565b60006020828403121561117457600080fd5b5051919050565b60006020828403121561118d57600080fd5b8151801515811461111357600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826111d8576111d861119d565b500490565b80820180821115610663576106636111b3565b6000815180845260005b81811015611216576020818501810151868301820152016111fa565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061128f838201856111f0565b9b9a5050505050505050505050565b6000826112ad576112ad61119d565b500690565b81810381811115610663576106636111b3565b60018060a01b038416815282602082015260606040820152600061084860608301846111f0565b8082028115828204841417610663576106636111b3565b600181815b8085111561133e578160001904821115611324576113246111b3565b8085161561133157918102915b93841c9390800290611308565b509250929050565b60008261135557506001610663565b8161136257506000610663565b816001811461137857600281146113825761139e565b6001915050610663565b60ff841115611393576113936111b3565b50506001821b610663565b5060208310610133831016604e8410600b84101617156113c1575081810a610663565b6113cb8383611303565b80600019048211156113df576113df6111b3565b029392505050565b6000610660838361134656fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a26469706673582212203d5866db489264612bcdb11f0637b4eb550297e7c43fef107e7fddac1ef6992564736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x17BC CODESIZE SUB DUP1 PUSH3 0x17BC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x39 SWAP2 PUSH3 0x281 JUMP JUMPDEST DUP2 DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH3 0xCC JUMPI PUSH3 0xCC DUP2 PUSH3 0x196 JUMP JUMPDEST POP POP POP PUSH3 0xF4 PUSH20 0x326C977E6EFC84E512BB9C30F76E30C160ED06FB PUSH3 0x242 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH20 0xAA37473C8D78F0F1C86C9D8AEE53E8B896BCB4D5 OR SWAP1 SSTORE PUSH32 0x6231643432636435346133613432303062316637323561363865343838383838 PUSH1 0xA SWAP1 DUP2 SSTORE PUSH3 0x155 PUSH8 0xDE0B6B3A7640000 PUSH1 0x1 PUSH3 0x2B9 JUMP JUMPDEST PUSH3 0x161 SWAP2 SWAP1 PUSH3 0x2E5 JUMP JUMPDEST PUSH1 0xC SSTORE PUSH1 0xE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 MUL PUSH1 0xFF NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x308 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH3 0x1F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x90 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x295 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2A0 DUP4 PUSH3 0x264 JUMP JUMPDEST SWAP2 POP PUSH3 0x2B0 PUSH1 0x20 DUP5 ADD PUSH3 0x264 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH3 0x2DF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x303 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH2 0x14A4 DUP1 PUSH3 0x318 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 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x9E2F9084 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x9E2F9084 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0xA035B1FE EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0xDF78ABE6 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x93232D9F EQ PUSH2 0x19F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4357855E GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x4357855E EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x43E1CA49 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x50ED6A95 EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x350844CE EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x38AF3EED EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x403A7761 EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0xE SLOAD PUSH2 0x123 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x10AF JUMP JUMPDEST PUSH2 0x1F7 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x166 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x37F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x123 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x42D JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1AD CALLDATASIZE PUSH1 0x4 PUSH2 0x10AF JUMP JUMPDEST PUSH2 0x57C JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x1C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x10D1 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x10EA JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x111A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x9721E7802F825C56833DB455A0081C7DD8C7DA03ED285E582C2AF90DD7D442C0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2AD SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x2C2 DUP3 PUSH3 0x186A0 PUSH2 0x654 JUMP JUMPDEST PUSH1 0x8 SSTORE PUSH2 0x2CD PUSH2 0x669 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2EA PUSH1 0xA SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x82C JUMP JUMPDEST SWAP1 POP PUSH2 0x32C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x19D95D PUSH1 0xEA SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13F4 PUSH1 0x4C SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x851 JUMP JUMPDEST PUSH2 0x36D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1440 PUSH1 0x2F SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x851 JUMP JUMPDEST PUSH2 0x379 DUP2 PUSH1 0xC SLOAD PUSH2 0x86F JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP3 AND CALLER SWAP1 DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x435 PUSH2 0x889 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x449 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 PUSH2 0x100 SWAP1 DIV SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A5 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 0x4C9 SWAP2 SWAP1 PUSH2 0x1162 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x514 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 0x538 SWAP2 SWAP1 PUSH2 0x117B JUMP JUMPDEST PUSH2 0x579 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x2AB730B13632903A37903A3930B739B332B9 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x111A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x2E48C207BBE18CA424EAE69CA096BADB69CC821F8CB72B42F49599F3390A3B1C DUP4 PUSH1 0x40 MLOAD PUSH2 0x629 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x9 DUP3 SWAP1 SSTORE PUSH2 0x63E PUSH2 0x8DE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x64B PUSH2 0x889 JUMP JUMPDEST PUSH2 0x579 DUP2 PUSH2 0x9A2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x660 DUP3 DUP5 PUSH2 0x11C9 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x680 PUSH1 0xB SLOAD ADDRESS PUSH4 0x93232D9F PUSH1 0xE0 SHL PUSH2 0x82C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7A7 SWAP2 SWAP1 PUSH32 0x68747470733A2F2F6170692D7374672E7472616E73616B2E636F6D2F6170692F DUP2 MSTORE PUSH32 0x76322F63757272656E636965732F70726963653F706172746E65724170694B65 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x793D30363235323566302D383536622D343330322D396434382D386236393062 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x623565363334266669617443757272656E63793D5553442663727970746F4375 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x7272656E63793D4554482669734275794F7253656C6C3D425559266E6574776F PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x726B3D657468657265756D267061796D656E744D6574686F643D637265646974 PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x5F64656269745F636172642666696174416D6F756E743D000000000000000000 PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xD7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xF7 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH3 0x19D95D PUSH1 0xEA SHL PUSH1 0x20 DUP4 ADD MSTORE SWAP2 POP PUSH2 0x7D8 SWAP1 DUP4 SWAP1 DUP4 PUSH2 0x851 JUMP JUMPDEST PUSH2 0x819 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1440 PUSH1 0x2F SWAP2 CODECOPY DUP5 SWAP2 SWAP1 PUSH2 0x851 JUMP JUMPDEST PUSH2 0x825 DUP3 PUSH1 0xC SLOAD PUSH2 0x86F JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x834 PUSH2 0x1074 JUMP JUMPDEST PUSH2 0x83C PUSH2 0x1074 JUMP JUMPDEST PUSH2 0x848 DUP2 DUP7 DUP7 DUP7 PUSH2 0xA4C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x860 SWAP1 DUP4 PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x63E SWAP1 DUP3 PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x660 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8F2 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP1 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x949 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 0x96D SWAP2 SWAP1 PUSH2 0x1162 JUMP JUMPDEST SUB PUSH2 0x995 JUMPI PUSH1 0x8 SLOAD NUMBER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x9FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0xA54 PUSH2 0x1074 JUMP JUMPDEST PUSH2 0xA64 DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0xB3C JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xA9F DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0xBA1 JUMP JUMPDEST PUSH2 0x63E DUP3 DUP3 PUSH2 0xCB0 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xABA DUP2 PUSH1 0x1 PUSH2 0x11DD JUMP JUMPDEST PUSH1 0x4 SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0xAF2 SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x1236 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0xB32 DUP7 DUP4 DUP7 DUP5 PUSH2 0xCD7 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xB5C PUSH1 0x20 DUP4 PUSH2 0x129E JUMP JUMPDEST ISZERO PUSH2 0xB84 JUMPI PUSH2 0xB6C PUSH1 0x20 DUP4 PUSH2 0x129E JUMP JUMPDEST PUSH2 0xB77 SWAP1 PUSH1 0x20 PUSH2 0x12B2 JUMP JUMPDEST PUSH2 0xB81 SWAP1 DUP4 PUSH2 0x11DD JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xBC6 JUMPI PUSH2 0x2CD DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0xE35 JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xC04 JUMPI PUSH2 0xBED DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xE35 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0xE5A JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xC43 JUMPI PUSH2 0xC2C DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xE35 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0xE5A JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xC84 JUMPI PUSH2 0xC6D DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xE35 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0xE5A JUMP JUMPDEST PUSH2 0xC99 DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xE35 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0xE5A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x660 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xE80 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0xD9A SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x12C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB9 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 0xDDD SWAP2 SWAP1 PUSH2 0x117B JUMP JUMPDEST PUSH2 0xA8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x660 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0xF6A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xA8A DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0xFC5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0xEA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0xEB2 DUP4 DUP7 PUSH2 0x11DD JUMP JUMPDEST GT ISZERO PUSH2 0xEE5 JUMPI PUSH2 0xEE5 DUP6 PUSH2 0xED5 DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0xED0 SWAP2 SWAP1 PUSH2 0x11DD JUMP JUMPDEST PUSH2 0x1046 JUMP JUMPDEST PUSH2 0xEE0 SWAP1 PUSH1 0x2 PUSH2 0x12EC JUMP JUMPDEST PUSH2 0x105D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0xF04 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0xF44 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0xF23 PUSH1 0x20 DUP4 PUSH2 0x11DD JUMP JUMPDEST SWAP2 POP PUSH2 0xF30 PUSH1 0x20 DUP3 PUSH2 0x11DD JUMP JUMPDEST SWAP1 POP PUSH2 0xF3D PUSH1 0x20 DUP6 PUSH2 0x12B2 JUMP JUMPDEST SWAP4 POP PUSH2 0xF0C JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0xF9F JUMPI PUSH2 0xF9F DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0xEE0 SWAP2 SWAP1 PUSH2 0x12EC JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 SUB PUSH2 0xFBB JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0xFE9 DUP6 DUP5 PUSH2 0x11DD JUMP JUMPDEST GT ISZERO PUSH2 0xFFD JUMPI PUSH2 0xFFD DUP6 PUSH2 0xED5 DUP7 DUP6 PUSH2 0x11DD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x100D DUP5 PUSH2 0x100 PUSH2 0x13E7 JUMP JUMPDEST PUSH2 0x1017 SWAP2 SWAP1 PUSH2 0x12B2 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0x103B JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x1057 JUMPI POP DUP2 PUSH2 0x663 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x1069 DUP4 DUP4 PUSH2 0xB3C JUMP JUMPDEST POP PUSH2 0x2CD DUP4 DUP3 PUSH2 0xCB0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1113 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x40 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x118D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1113 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x11D8 JUMPI PUSH2 0x11D8 PUSH2 0x119D JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x11B3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1216 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x11FA JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x128F DUP4 DUP3 ADD DUP6 PUSH2 0x11F0 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x12AD JUMPI PUSH2 0x12AD PUSH2 0x119D JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x11B3 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x848 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x11F0 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x11B3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0x133E JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x1324 JUMPI PUSH2 0x1324 PUSH2 0x11B3 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0x1331 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0x1308 JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1355 JUMPI POP PUSH1 0x1 PUSH2 0x663 JUMP JUMPDEST DUP2 PUSH2 0x1362 JUMPI POP PUSH1 0x0 PUSH2 0x663 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1378 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1382 JUMPI PUSH2 0x139E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x663 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1393 JUMPI PUSH2 0x1393 PUSH2 0x11B3 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x663 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x13C1 JUMPI POP DUP2 DUP2 EXP PUSH2 0x663 JUMP JUMPDEST PUSH2 0x13CB DUP4 DUP4 PUSH2 0x1303 JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x13DF JUMPI PUSH2 0x13DF PUSH2 0x11B3 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x660 DUP4 DUP4 PUSH2 0x1346 JUMP INVALID PUSH9 0x747470733A2F2F7465 PUSH20 0x746170692E696F2F6170692F48617964656E2F76 BALANCE 0x2F PUSH2 0x6363 PUSH16 0x756E74732F7075622D39393838373736 CALLDATASIZE CALLDATALOAD CALLDATALOAD CALLVALUE CALLVALUE CALLER CALLER ORIGIN ORIGIN 0x2F PUSH15 0x6574776F726B5265706F7274726F77 0x2C PUSH14 0x657472696356616C7565732C4553 SLOAD 0x49 0x4D COINBASE SLOAD GASLIMIT DIFFICULTY 0x5F GASLIMIT COINBASE MSTORE 0x4E 0x49 0x4E SELFBALANCE MSTORE8 0x2C PUSH14 0x6963726F7356616C7565A2646970 PUSH7 0x73582212203D58 PUSH7 0xDB489264612BCD 0xB1 0x1F MOD CALLDATACOPY 0xB4 0xEB SSTORE MUL SWAP8 0xE7 0xC4 EXTCODEHASH 0xEF LT PUSH31 0x7FDDAC1EF6992564736F6C6343000811003300000000000000000000000000 ","sourceMap":"235:4800:15:-:0;;;1291:1:1;1258:34;;1445:429:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1510:6;;345:1:2;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;696:2:16;544:59:3;;;678:21:16;735:2;715:18;;;708:30;774:26;754:18;;;747:54;818:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;270:81:2;1528:61:15::1;1546:42;1528:17;;;:61;;:::i;:::-;8457:8:1::0;:43;;-1:-1:-1;;;;;;8457:43:1;1618:42:15::1;8457:43:1::0;;;1671:44:15::1;:7;:44:::0;;;1732:21:::1;675:6:1;1732:1:15;:21;:::i;:::-;1731:28;;;;:::i;:::-;1725:3;:34:::0;1813:11:::1;:26:::0;;-1:-1:-1;;;;;;1849:18:15;1813:26:::1;-1:-1:-1::0;;;;;1813:26:15;;;::::1;::::0;;;::::1;-1:-1:-1::0;;1849:18:15;;;;;;;-1:-1:-1;235:4800:15;;1497:188:3;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1541:2:16;1551:52:3;;;1523:21:16;1580:2;1560:18;;;1553:30;1619:25;1599:18;;;1592:53;1662:18;;1551:52:3;1339:347:16;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;1668:7;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;;1641:39:3;1497:188;:::o;8625:108:1:-;8688:6;:40;;-1:-1:-1;;;;;;8688:40:1;-1:-1:-1;;;;;8688:40:1;;;;;;;;;;8625:108::o;14:177:16:-;93:13;;-1:-1:-1;;;;;135:31:16;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;847:265::-;920:9;;;951;;968:15;;;962:22;;948:37;938:168;;1028:10;1023:3;1019:20;1016:1;1009:31;1063:4;1060:1;1053:15;1091:4;1088:1;1081:15;938:168;847:265;;;;:::o;1117:217::-;1157:1;1183;1173:132;;1227:10;1222:3;1218:20;1215:1;1208:31;1262:4;1259:1;1252:15;1290:4;1287:1;1280:15;1173:132;-1:-1:-1;1319:9:16;;1117:217::o;1339:347::-;235:4800:15;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkEligibleEarning_2983":{"entryPoint":2270,"id":2983,"parameterSlots":0,"returnSlots":0},"@_rawRequest_594":{"entryPoint":3287,"id":594,"parameterSlots":4,"returnSlots":1},"@_requestTransakValidation_2895":{"entryPoint":1641,"id":2895,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1021":{"entryPoint":2466,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":2185,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":895,"id":987,"parameterSlots":0,"returnSlots":0},"@add_125":{"entryPoint":2129,"id":125,"parameterSlots":3,"returnSlots":0},"@appendInt_1915":{"entryPoint":3674,"id":1915,"parameterSlots":3,"returnSlots":1},"@appendUint8_1712":{"entryPoint":3637,"id":1712,"parameterSlots":2,"returnSlots":1},"@append_1659":{"entryPoint":3248,"id":1659,"parameterSlots":2,"returnSlots":1},"@beneficiary_2720":{"entryPoint":null,"id":2720,"parameterSlots":0,"returnSlots":0},"@buildChainlinkRequest_373":{"entryPoint":2092,"id":373,"parameterSlots":3,"returnSlots":1},"@chainlinkTokenAddress_694":{"entryPoint":null,"id":694,"parameterSlots":0,"returnSlots":1},"@div_2594":{"entryPoint":1620,"id":2594,"parameterSlots":2,"returnSlots":1},"@earningReports_2715":{"entryPoint":null,"id":2715,"parameterSlots":0,"returnSlots":0},"@earning_2703":{"entryPoint":null,"id":2703,"parameterSlots":0,"returnSlots":0},"@encodeFixedNumeric_2084":{"entryPoint":2977,"id":2084,"parameterSlots":3,"returnSlots":0},"@encodeString_2326":{"entryPoint":2706,"id":2326,"parameterSlots":2,"returnSlots":0},"@fulfillTransakPrice_2918":{"entryPoint":1404,"id":2918,"parameterSlots":2,"returnSlots":0},"@fulfill_2843":{"entryPoint":503,"id":2843,"parameterSlots":2,"returnSlots":0},"@ggJobId_2707":{"entryPoint":null,"id":2707,"parameterSlots":0,"returnSlots":0},"@init_1440":{"entryPoint":2876,"id":1440,"parameterSlots":2,"returnSlots":1},"@initialize_70":{"entryPoint":2636,"id":70,"parameterSlots":4,"returnSlots":1},"@isEligible_2717":{"entryPoint":null,"id":2717,"parameterSlots":0,"returnSlots":0},"@max_1512":{"entryPoint":4166,"id":1512,"parameterSlots":2,"returnSlots":1},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@price_2705":{"entryPoint":null,"id":2705,"parameterSlots":0,"returnSlots":0},"@requestWeekEarning_2815":{"entryPoint":723,"id":2815,"parameterSlots":0,"returnSlots":1},"@resize_1493":{"entryPoint":4189,"id":1493,"parameterSlots":2,"returnSlots":0},"@sendChainlinkRequestTo_477":{"entryPoint":2729,"id":477,"parameterSlots":3,"returnSlots":1},"@sendChainlinkRequest_422":{"entryPoint":2159,"id":422,"parameterSlots":2,"returnSlots":1},"@transakJobId_2709":{"entryPoint":null,"id":2709,"parameterSlots":0,"returnSlots":0},"@transferOwnership_951":{"entryPoint":1603,"id":951,"parameterSlots":1,"returnSlots":0},"@withdrawLink_2948":{"entryPoint":1069,"id":2948,"parameterSlots":0,"returnSlots":0},"@writeInt_1891":{"entryPoint":4037,"id":1891,"parameterSlots":4,"returnSlots":1},"@writeUint8_1691":{"entryPoint":3946,"id":1691,"parameterSlots":3,"returnSlots":1},"@write_1612":{"entryPoint":3712,"id":1612,"parameterSlots":4,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4330,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4475,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":4271,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":4305,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":4450,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":4592,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad_t_uint256__to_t_string_memory_ptr_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4662,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4805,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4378,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":4573,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":4553,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":4867,"id":null,"parameterSlots":2,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":5095,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":4934,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":4844,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":4786,"id":null,"parameterSlots":2,"returnSlots":1},"mod_t_uint256":{"entryPoint":4766,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":4531,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":4509,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:9488:16","statements":[{"nodeType":"YulBlock","src":"6:3:16","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:76:16","statements":[{"nodeType":"YulAssignment","src":"125:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:16"},"nodeType":"YulFunctionCall","src":"133:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:16"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:16"},{"name":"value0","nodeType":"YulIdentifier","src":"178:6:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:16"},"nodeType":"YulFunctionCall","src":"160:25:16"},"nodeType":"YulExpressionStatement","src":"160:25:16"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:16","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:16","type":""}],"src":"14:177:16"},{"body":{"nodeType":"YulBlock","src":"297:102:16","statements":[{"nodeType":"YulAssignment","src":"307:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"319:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"330:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"315:3:16"},"nodeType":"YulFunctionCall","src":"315:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"307:4:16"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:16"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"364:6:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"380:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"385:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"376:3:16"},"nodeType":"YulFunctionCall","src":"376:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"389:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"372:3:16"},"nodeType":"YulFunctionCall","src":"372:19:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"360:3:16"},"nodeType":"YulFunctionCall","src":"360:32:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"342:6:16"},"nodeType":"YulFunctionCall","src":"342:51:16"},"nodeType":"YulExpressionStatement","src":"342:51:16"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"266:9:16","type":""},{"name":"value0","nodeType":"YulTypedName","src":"277:6:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"288:4:16","type":""}],"src":"196:203:16"},{"body":{"nodeType":"YulBlock","src":"491:161:16","statements":[{"body":{"nodeType":"YulBlock","src":"537:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"549:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"539:6:16"},"nodeType":"YulFunctionCall","src":"539:12:16"},"nodeType":"YulExpressionStatement","src":"539:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"512:7:16"},{"name":"headStart","nodeType":"YulIdentifier","src":"521:9:16"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"508:3:16"},"nodeType":"YulFunctionCall","src":"508:23:16"},{"kind":"number","nodeType":"YulLiteral","src":"533:2:16","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"504:3:16"},"nodeType":"YulFunctionCall","src":"504:32:16"},"nodeType":"YulIf","src":"501:52:16"},{"nodeType":"YulAssignment","src":"562:33:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"585:9:16"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"572:12:16"},"nodeType":"YulFunctionCall","src":"572:23:16"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"562:6:16"}]},{"nodeType":"YulAssignment","src":"604:42:16","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"631:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"642:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"627:3:16"},"nodeType":"YulFunctionCall","src":"627:18:16"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"614:12:16"},"nodeType":"YulFunctionCall","src":"614:32:16"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"604:6:16"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"449:9:16","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"460:7:16","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"472:6:16","type":""},{"name":"value1","nodeType":"YulTypedName","src":"480:6:16","type":""}],"src":"404:248:16"},{"body":{"nodeType":"YulBlock","src":"752:92:16","statements":[{"nodeType":"YulAssignment","src":"762:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"774:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"785:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"770:3:16"},"nodeType":"YulFunctionCall","src":"770:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"762:4:16"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"804:9:16"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"829:6:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"822:6:16"},"nodeType":"YulFunctionCall","src":"822:14:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"815:6:16"},"nodeType":"YulFunctionCall","src":"815:22:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"797:6:16"},"nodeType":"YulFunctionCall","src":"797:41:16"},"nodeType":"YulExpressionStatement","src":"797:41:16"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"721:9:16","type":""},{"name":"value0","nodeType":"YulTypedName","src":"732:6:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"743:4:16","type":""}],"src":"657:187:16"},{"body":{"nodeType":"YulBlock","src":"919:110:16","statements":[{"body":{"nodeType":"YulBlock","src":"965:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"974:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"977:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"967:6:16"},"nodeType":"YulFunctionCall","src":"967:12:16"},"nodeType":"YulExpressionStatement","src":"967:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"940:7:16"},{"name":"headStart","nodeType":"YulIdentifier","src":"949:9:16"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"936:3:16"},"nodeType":"YulFunctionCall","src":"936:23:16"},{"kind":"number","nodeType":"YulLiteral","src":"961:2:16","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"932:3:16"},"nodeType":"YulFunctionCall","src":"932:32:16"},"nodeType":"YulIf","src":"929:52:16"},{"nodeType":"YulAssignment","src":"990:33:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1013:9:16"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1000:12:16"},"nodeType":"YulFunctionCall","src":"1000:23:16"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"990:6:16"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"885:9:16","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"896:7:16","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"908:6:16","type":""}],"src":"849:180:16"},{"body":{"nodeType":"YulBlock","src":"1135:76:16","statements":[{"nodeType":"YulAssignment","src":"1145:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1157:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1168:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1153:3:16"},"nodeType":"YulFunctionCall","src":"1153:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1145:4:16"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1187:9:16"},{"name":"value0","nodeType":"YulIdentifier","src":"1198:6:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1180:6:16"},"nodeType":"YulFunctionCall","src":"1180:25:16"},"nodeType":"YulExpressionStatement","src":"1180:25:16"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1104:9:16","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1115:6:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1126:4:16","type":""}],"src":"1034:177:16"},{"body":{"nodeType":"YulBlock","src":"1286:216:16","statements":[{"body":{"nodeType":"YulBlock","src":"1332:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1341:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1344:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1334:6:16"},"nodeType":"YulFunctionCall","src":"1334:12:16"},"nodeType":"YulExpressionStatement","src":"1334:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1307:7:16"},{"name":"headStart","nodeType":"YulIdentifier","src":"1316:9:16"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1303:3:16"},"nodeType":"YulFunctionCall","src":"1303:23:16"},{"kind":"number","nodeType":"YulLiteral","src":"1328:2:16","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1299:3:16"},"nodeType":"YulFunctionCall","src":"1299:32:16"},"nodeType":"YulIf","src":"1296:52:16"},{"nodeType":"YulVariableDeclaration","src":"1357:36:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1383:9:16"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1370:12:16"},"nodeType":"YulFunctionCall","src":"1370:23:16"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1361:5:16","type":""}]},{"body":{"nodeType":"YulBlock","src":"1456:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1465:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1468:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1458:6:16"},"nodeType":"YulFunctionCall","src":"1458:12:16"},"nodeType":"YulExpressionStatement","src":"1458:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1415:5:16"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1426:5:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1441:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1446:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1437:3:16"},"nodeType":"YulFunctionCall","src":"1437:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"1450:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1433:3:16"},"nodeType":"YulFunctionCall","src":"1433:19:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1422:3:16"},"nodeType":"YulFunctionCall","src":"1422:31:16"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1412:2:16"},"nodeType":"YulFunctionCall","src":"1412:42:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1405:6:16"},"nodeType":"YulFunctionCall","src":"1405:50:16"},"nodeType":"YulIf","src":"1402:70:16"},{"nodeType":"YulAssignment","src":"1481:15:16","value":{"name":"value","nodeType":"YulIdentifier","src":"1491:5:16"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1481:6:16"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1252:9:16","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1263:7:16","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1275:6:16","type":""}],"src":"1216:286:16"},{"body":{"nodeType":"YulBlock","src":"1681:230:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1698:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1709:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1691:6:16"},"nodeType":"YulFunctionCall","src":"1691:21:16"},"nodeType":"YulExpressionStatement","src":"1691:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1732:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1743:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1728:3:16"},"nodeType":"YulFunctionCall","src":"1728:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"1748:2:16","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1721:6:16"},"nodeType":"YulFunctionCall","src":"1721:30:16"},"nodeType":"YulExpressionStatement","src":"1721:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1771:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1782:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1767:3:16"},"nodeType":"YulFunctionCall","src":"1767:18:16"},{"hexValue":"536f75726365206d75737420626520746865206f7261636c65206f6620746865","kind":"string","nodeType":"YulLiteral","src":"1787:34:16","type":"","value":"Source must be the oracle of the"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1760:6:16"},"nodeType":"YulFunctionCall","src":"1760:62:16"},"nodeType":"YulExpressionStatement","src":"1760:62:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1842:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1838:3:16"},"nodeType":"YulFunctionCall","src":"1838:18:16"},{"hexValue":"2072657175657374","kind":"string","nodeType":"YulLiteral","src":"1858:10:16","type":"","value":" request"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1831:6:16"},"nodeType":"YulFunctionCall","src":"1831:38:16"},"nodeType":"YulExpressionStatement","src":"1831:38:16"},{"nodeType":"YulAssignment","src":"1878:27:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1890:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"1901:3:16","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1886:3:16"},"nodeType":"YulFunctionCall","src":"1886:19:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1878:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1658:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1672:4:16","type":""}],"src":"1507:404:16"},{"body":{"nodeType":"YulBlock","src":"2090:172:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2107:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"2118:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2100:6:16"},"nodeType":"YulFunctionCall","src":"2100:21:16"},"nodeType":"YulExpressionStatement","src":"2100:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2141:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"2152:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2137:3:16"},"nodeType":"YulFunctionCall","src":"2137:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"2157:2:16","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2130:6:16"},"nodeType":"YulFunctionCall","src":"2130:30:16"},"nodeType":"YulExpressionStatement","src":"2130:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2180:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"2191:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2176:3:16"},"nodeType":"YulFunctionCall","src":"2176:18:16"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"2196:24:16","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2169:6:16"},"nodeType":"YulFunctionCall","src":"2169:52:16"},"nodeType":"YulExpressionStatement","src":"2169:52:16"},{"nodeType":"YulAssignment","src":"2230:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2242:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"2253:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2238:3:16"},"nodeType":"YulFunctionCall","src":"2238:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2230:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2067:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2081:4:16","type":""}],"src":"1916:346:16"},{"body":{"nodeType":"YulBlock","src":"2348:103:16","statements":[{"body":{"nodeType":"YulBlock","src":"2394:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2403:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2406:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2396:6:16"},"nodeType":"YulFunctionCall","src":"2396:12:16"},"nodeType":"YulExpressionStatement","src":"2396:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2369:7:16"},{"name":"headStart","nodeType":"YulIdentifier","src":"2378:9:16"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2365:3:16"},"nodeType":"YulFunctionCall","src":"2365:23:16"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:16","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2361:3:16"},"nodeType":"YulFunctionCall","src":"2361:32:16"},"nodeType":"YulIf","src":"2358:52:16"},{"nodeType":"YulAssignment","src":"2419:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2435:9:16"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2429:5:16"},"nodeType":"YulFunctionCall","src":"2429:16:16"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2419:6:16"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2314:9:16","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2325:7:16","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2337:6:16","type":""}],"src":"2267:184:16"},{"body":{"nodeType":"YulBlock","src":"2585:145:16","statements":[{"nodeType":"YulAssignment","src":"2595:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2607:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"2618:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2603:3:16"},"nodeType":"YulFunctionCall","src":"2603:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2595:4:16"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2637:9:16"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2652:6:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2668:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2673:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2664:3:16"},"nodeType":"YulFunctionCall","src":"2664:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"2677:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2660:3:16"},"nodeType":"YulFunctionCall","src":"2660:19:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2648:3:16"},"nodeType":"YulFunctionCall","src":"2648:32:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2630:6:16"},"nodeType":"YulFunctionCall","src":"2630:51:16"},"nodeType":"YulExpressionStatement","src":"2630:51:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2701:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"2712:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2697:3:16"},"nodeType":"YulFunctionCall","src":"2697:18:16"},{"name":"value1","nodeType":"YulIdentifier","src":"2717:6:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2690:6:16"},"nodeType":"YulFunctionCall","src":"2690:34:16"},"nodeType":"YulExpressionStatement","src":"2690:34:16"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2546:9:16","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2557:6:16","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2565:6:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2576:4:16","type":""}],"src":"2456:274:16"},{"body":{"nodeType":"YulBlock","src":"2813:199:16","statements":[{"body":{"nodeType":"YulBlock","src":"2859:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2868:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2871:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2861:6:16"},"nodeType":"YulFunctionCall","src":"2861:12:16"},"nodeType":"YulExpressionStatement","src":"2861:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2834:7:16"},{"name":"headStart","nodeType":"YulIdentifier","src":"2843:9:16"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2830:3:16"},"nodeType":"YulFunctionCall","src":"2830:23:16"},{"kind":"number","nodeType":"YulLiteral","src":"2855:2:16","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2826:3:16"},"nodeType":"YulFunctionCall","src":"2826:32:16"},"nodeType":"YulIf","src":"2823:52:16"},{"nodeType":"YulVariableDeclaration","src":"2884:29:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2903:9:16"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2897:5:16"},"nodeType":"YulFunctionCall","src":"2897:16:16"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2888:5:16","type":""}]},{"body":{"nodeType":"YulBlock","src":"2966:16:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2975:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2978:1:16","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2968:6:16"},"nodeType":"YulFunctionCall","src":"2968:12:16"},"nodeType":"YulExpressionStatement","src":"2968:12:16"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2935:5:16"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2956:5:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2949:6:16"},"nodeType":"YulFunctionCall","src":"2949:13:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2942:6:16"},"nodeType":"YulFunctionCall","src":"2942:21:16"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2932:2:16"},"nodeType":"YulFunctionCall","src":"2932:32:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2925:6:16"},"nodeType":"YulFunctionCall","src":"2925:40:16"},"nodeType":"YulIf","src":"2922:60:16"},{"nodeType":"YulAssignment","src":"2991:15:16","value":{"name":"value","nodeType":"YulIdentifier","src":"3001:5:16"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2991:6:16"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2779:9:16","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2790:7:16","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2802:6:16","type":""}],"src":"2735:277:16"},{"body":{"nodeType":"YulBlock","src":"3191:168:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3208:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"3219:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3201:6:16"},"nodeType":"YulFunctionCall","src":"3201:21:16"},"nodeType":"YulExpressionStatement","src":"3201:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3242:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"3253:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3238:3:16"},"nodeType":"YulFunctionCall","src":"3238:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"3258:2:16","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3231:6:16"},"nodeType":"YulFunctionCall","src":"3231:30:16"},"nodeType":"YulExpressionStatement","src":"3231:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3281:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"3292:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3277:3:16"},"nodeType":"YulFunctionCall","src":"3277:18:16"},{"hexValue":"556e61626c6520746f207472616e73666572","kind":"string","nodeType":"YulLiteral","src":"3297:20:16","type":"","value":"Unable to transfer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3270:6:16"},"nodeType":"YulFunctionCall","src":"3270:48:16"},"nodeType":"YulExpressionStatement","src":"3270:48:16"},{"nodeType":"YulAssignment","src":"3327:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3339:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"3350:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3335:3:16"},"nodeType":"YulFunctionCall","src":"3335:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3327:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3168:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3182:4:16","type":""}],"src":"3017:342:16"},{"body":{"nodeType":"YulBlock","src":"3396:95:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3413:1:16","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3420:3:16","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3425:10:16","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3416:3:16"},"nodeType":"YulFunctionCall","src":"3416:20:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3406:6:16"},"nodeType":"YulFunctionCall","src":"3406:31:16"},"nodeType":"YulExpressionStatement","src":"3406:31:16"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3453:1:16","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3456:4:16","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3446:6:16"},"nodeType":"YulFunctionCall","src":"3446:15:16"},"nodeType":"YulExpressionStatement","src":"3446:15:16"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3477:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3480:4:16","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3470:6:16"},"nodeType":"YulFunctionCall","src":"3470:15:16"},"nodeType":"YulExpressionStatement","src":"3470:15:16"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"3364:127:16"},{"body":{"nodeType":"YulBlock","src":"3528:95:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3545:1:16","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3552:3:16","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3557:10:16","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3548:3:16"},"nodeType":"YulFunctionCall","src":"3548:20:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3538:6:16"},"nodeType":"YulFunctionCall","src":"3538:31:16"},"nodeType":"YulExpressionStatement","src":"3538:31:16"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3585:1:16","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3588:4:16","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3578:6:16"},"nodeType":"YulFunctionCall","src":"3578:15:16"},"nodeType":"YulExpressionStatement","src":"3578:15:16"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3609:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3612:4:16","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3602:6:16"},"nodeType":"YulFunctionCall","src":"3602:15:16"},"nodeType":"YulExpressionStatement","src":"3602:15:16"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"3496:127:16"},{"body":{"nodeType":"YulBlock","src":"3674:74:16","statements":[{"body":{"nodeType":"YulBlock","src":"3697:22:16","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"3699:16:16"},"nodeType":"YulFunctionCall","src":"3699:18:16"},"nodeType":"YulExpressionStatement","src":"3699:18:16"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"3694:1:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3687:6:16"},"nodeType":"YulFunctionCall","src":"3687:9:16"},"nodeType":"YulIf","src":"3684:35:16"},{"nodeType":"YulAssignment","src":"3728:14:16","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3737:1:16"},{"name":"y","nodeType":"YulIdentifier","src":"3740:1:16"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3733:3:16"},"nodeType":"YulFunctionCall","src":"3733:9:16"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"3728:1:16"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3659:1:16","type":""},{"name":"y","nodeType":"YulTypedName","src":"3662:1:16","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"3668:1:16","type":""}],"src":"3628:120:16"},{"body":{"nodeType":"YulBlock","src":"3973:514:16","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3990:3:16"},{"hexValue":"68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f","kind":"string","nodeType":"YulLiteral","src":"3995:34:16","type":"","value":"https://api-stg.transak.com/api/"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3983:6:16"},"nodeType":"YulFunctionCall","src":"3983:47:16"},"nodeType":"YulExpressionStatement","src":"3983:47:16"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4050:3:16"},{"kind":"number","nodeType":"YulLiteral","src":"4055:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4046:3:16"},"nodeType":"YulFunctionCall","src":"4046:12:16"},{"hexValue":"76322f63757272656e636965732f70726963653f706172746e65724170694b65","kind":"string","nodeType":"YulLiteral","src":"4060:34:16","type":"","value":"v2/currencies/price?partnerApiKe"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4039:6:16"},"nodeType":"YulFunctionCall","src":"4039:56:16"},"nodeType":"YulExpressionStatement","src":"4039:56:16"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4115:3:16"},{"kind":"number","nodeType":"YulLiteral","src":"4120:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4111:3:16"},"nodeType":"YulFunctionCall","src":"4111:12:16"},{"hexValue":"793d30363235323566302d383536622d343330322d396434382d386236393062","kind":"string","nodeType":"YulLiteral","src":"4125:34:16","type":"","value":"y=062525f0-856b-4302-9d48-8b690b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4104:6:16"},"nodeType":"YulFunctionCall","src":"4104:56:16"},"nodeType":"YulExpressionStatement","src":"4104:56:16"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4180:3:16"},{"kind":"number","nodeType":"YulLiteral","src":"4185:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4176:3:16"},"nodeType":"YulFunctionCall","src":"4176:12:16"},{"hexValue":"623565363334266669617443757272656e63793d5553442663727970746f4375","kind":"string","nodeType":"YulLiteral","src":"4190:34:16","type":"","value":"b5e634&fiatCurrency=USD&cryptoCu"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4169:6:16"},"nodeType":"YulFunctionCall","src":"4169:56:16"},"nodeType":"YulExpressionStatement","src":"4169:56:16"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4245:3:16"},{"kind":"number","nodeType":"YulLiteral","src":"4250:3:16","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4241:3:16"},"nodeType":"YulFunctionCall","src":"4241:13:16"},{"hexValue":"7272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f","kind":"string","nodeType":"YulLiteral","src":"4256:34:16","type":"","value":"rrency=ETH&isBuyOrSell=BUY&netwo"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4234:6:16"},"nodeType":"YulFunctionCall","src":"4234:57:16"},"nodeType":"YulExpressionStatement","src":"4234:57:16"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4311:3:16"},{"kind":"number","nodeType":"YulLiteral","src":"4316:3:16","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4307:3:16"},"nodeType":"YulFunctionCall","src":"4307:13:16"},{"hexValue":"726b3d657468657265756d267061796d656e744d6574686f643d637265646974","kind":"string","nodeType":"YulLiteral","src":"4322:34:16","type":"","value":"rk=ethereum&paymentMethod=credit"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4300:6:16"},"nodeType":"YulFunctionCall","src":"4300:57:16"},"nodeType":"YulExpressionStatement","src":"4300:57:16"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4377:3:16"},{"kind":"number","nodeType":"YulLiteral","src":"4382:3:16","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4373:3:16"},"nodeType":"YulFunctionCall","src":"4373:13:16"},{"hexValue":"5f64656269745f636172642666696174416d6f756e743d","kind":"string","nodeType":"YulLiteral","src":"4388:25:16","type":"","value":"_debit_card&fiatAmount="}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4366:6:16"},"nodeType":"YulFunctionCall","src":"4366:48:16"},"nodeType":"YulExpressionStatement","src":"4366:48:16"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4434:3:16"},{"kind":"number","nodeType":"YulLiteral","src":"4439:3:16","type":"","value":"215"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4430:3:16"},"nodeType":"YulFunctionCall","src":"4430:13:16"},{"name":"value0","nodeType":"YulIdentifier","src":"4445:6:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4423:6:16"},"nodeType":"YulFunctionCall","src":"4423:29:16"},"nodeType":"YulExpressionStatement","src":"4423:29:16"},{"nodeType":"YulAssignment","src":"4461:20:16","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4472:3:16"},{"kind":"number","nodeType":"YulLiteral","src":"4477:3:16","type":"","value":"247"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4468:3:16"},"nodeType":"YulFunctionCall","src":"4468:13:16"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4461:3:16"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad_t_uint256__to_t_string_memory_ptr_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3949:3:16","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3954:6:16","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3965:3:16","type":""}],"src":"3753:734:16"},{"body":{"nodeType":"YulBlock","src":"4666:172:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4683:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"4694:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4676:6:16"},"nodeType":"YulFunctionCall","src":"4676:21:16"},"nodeType":"YulExpressionStatement","src":"4676:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4717:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"4728:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4713:3:16"},"nodeType":"YulFunctionCall","src":"4713:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"4733:2:16","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4706:6:16"},"nodeType":"YulFunctionCall","src":"4706:30:16"},"nodeType":"YulExpressionStatement","src":"4706:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4756:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"4767:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4752:3:16"},"nodeType":"YulFunctionCall","src":"4752:18:16"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"4772:24:16","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4745:6:16"},"nodeType":"YulFunctionCall","src":"4745:52:16"},"nodeType":"YulExpressionStatement","src":"4745:52:16"},{"nodeType":"YulAssignment","src":"4806:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4818:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"4829:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4814:3:16"},"nodeType":"YulFunctionCall","src":"4814:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4806:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4643:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4657:4:16","type":""}],"src":"4492:346:16"},{"body":{"nodeType":"YulBlock","src":"5017:173:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5034:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"5045:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5027:6:16"},"nodeType":"YulFunctionCall","src":"5027:21:16"},"nodeType":"YulExpressionStatement","src":"5027:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5068:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"5079:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5064:3:16"},"nodeType":"YulFunctionCall","src":"5064:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"5084:2:16","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5057:6:16"},"nodeType":"YulFunctionCall","src":"5057:30:16"},"nodeType":"YulExpressionStatement","src":"5057:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5107:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"5118:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5103:3:16"},"nodeType":"YulFunctionCall","src":"5103:18:16"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"5123:25:16","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5096:6:16"},"nodeType":"YulFunctionCall","src":"5096:53:16"},"nodeType":"YulExpressionStatement","src":"5096:53:16"},{"nodeType":"YulAssignment","src":"5158:26:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:16"},"nodeType":"YulFunctionCall","src":"5166:18:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4994:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5008:4:16","type":""}],"src":"4843:347:16"},{"body":{"nodeType":"YulBlock","src":"5243:77:16","statements":[{"nodeType":"YulAssignment","src":"5253:16:16","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5264:1:16"},{"name":"y","nodeType":"YulIdentifier","src":"5267:1:16"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5260:3:16"},"nodeType":"YulFunctionCall","src":"5260:9:16"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5253:3:16"}]},{"body":{"nodeType":"YulBlock","src":"5292:22:16","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5294:16:16"},"nodeType":"YulFunctionCall","src":"5294:18:16"},"nodeType":"YulExpressionStatement","src":"5294:18:16"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5284:1:16"},{"name":"sum","nodeType":"YulIdentifier","src":"5287:3:16"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5281:2:16"},"nodeType":"YulFunctionCall","src":"5281:10:16"},"nodeType":"YulIf","src":"5278:36:16"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5226:1:16","type":""},{"name":"y","nodeType":"YulTypedName","src":"5229:1:16","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5235:3:16","type":""}],"src":"5195:125:16"},{"body":{"nodeType":"YulBlock","src":"5374:373:16","statements":[{"nodeType":"YulVariableDeclaration","src":"5384:26:16","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5404:5:16"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5398:5:16"},"nodeType":"YulFunctionCall","src":"5398:12:16"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5388:6:16","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5426:3:16"},{"name":"length","nodeType":"YulIdentifier","src":"5431:6:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5419:6:16"},"nodeType":"YulFunctionCall","src":"5419:19:16"},"nodeType":"YulExpressionStatement","src":"5419:19:16"},{"nodeType":"YulVariableDeclaration","src":"5447:10:16","value":{"kind":"number","nodeType":"YulLiteral","src":"5456:1:16","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5451:1:16","type":""}]},{"body":{"nodeType":"YulBlock","src":"5518:110:16","statements":[{"nodeType":"YulVariableDeclaration","src":"5532:14:16","value":{"kind":"number","nodeType":"YulLiteral","src":"5542:4:16","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5536:2:16","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5574:3:16"},{"name":"i","nodeType":"YulIdentifier","src":"5579:1:16"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5570:3:16"},"nodeType":"YulFunctionCall","src":"5570:11:16"},{"name":"_1","nodeType":"YulIdentifier","src":"5583:2:16"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5566:3:16"},"nodeType":"YulFunctionCall","src":"5566:20:16"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5602:5:16"},{"name":"i","nodeType":"YulIdentifier","src":"5609:1:16"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5598:3:16"},"nodeType":"YulFunctionCall","src":"5598:13:16"},{"name":"_1","nodeType":"YulIdentifier","src":"5613:2:16"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5594:3:16"},"nodeType":"YulFunctionCall","src":"5594:22:16"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5588:5:16"},"nodeType":"YulFunctionCall","src":"5588:29:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5559:6:16"},"nodeType":"YulFunctionCall","src":"5559:59:16"},"nodeType":"YulExpressionStatement","src":"5559:59:16"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5477:1:16"},{"name":"length","nodeType":"YulIdentifier","src":"5480:6:16"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5474:2:16"},"nodeType":"YulFunctionCall","src":"5474:13:16"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5488:21:16","statements":[{"nodeType":"YulAssignment","src":"5490:17:16","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5499:1:16"},{"kind":"number","nodeType":"YulLiteral","src":"5502:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5495:3:16"},"nodeType":"YulFunctionCall","src":"5495:12:16"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5490:1:16"}]}]},"pre":{"nodeType":"YulBlock","src":"5470:3:16","statements":[]},"src":"5466:162:16"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5652:3:16"},{"name":"length","nodeType":"YulIdentifier","src":"5657:6:16"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5648:3:16"},"nodeType":"YulFunctionCall","src":"5648:16:16"},{"kind":"number","nodeType":"YulLiteral","src":"5666:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5644:3:16"},"nodeType":"YulFunctionCall","src":"5644:27:16"},{"kind":"number","nodeType":"YulLiteral","src":"5673:1:16","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5637:6:16"},"nodeType":"YulFunctionCall","src":"5637:38:16"},"nodeType":"YulExpressionStatement","src":"5637:38:16"},{"nodeType":"YulAssignment","src":"5684:57:16","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5699:3:16"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5712:6:16"},{"kind":"number","nodeType":"YulLiteral","src":"5720:2:16","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5708:3:16"},"nodeType":"YulFunctionCall","src":"5708:15:16"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5729:2:16","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5725:3:16"},"nodeType":"YulFunctionCall","src":"5725:7:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5704:3:16"},"nodeType":"YulFunctionCall","src":"5704:29:16"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5695:3:16"},"nodeType":"YulFunctionCall","src":"5695:39:16"},{"kind":"number","nodeType":"YulLiteral","src":"5736:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5691:3:16"},"nodeType":"YulFunctionCall","src":"5691:50:16"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5684:3:16"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5351:5:16","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5358:3:16","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5366:3:16","type":""}],"src":"5325:422:16"},{"body":{"nodeType":"YulBlock","src":"6065:508:16","statements":[{"nodeType":"YulVariableDeclaration","src":"6075:13:16","value":{"kind":"number","nodeType":"YulLiteral","src":"6085:3:16","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6079:2:16","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6097:29:16","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6115:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6120:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6111:3:16"},"nodeType":"YulFunctionCall","src":"6111:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"6124:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6107:3:16"},"nodeType":"YulFunctionCall","src":"6107:19:16"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6101:2:16","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6142:9:16"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6157:6:16"},{"name":"_2","nodeType":"YulIdentifier","src":"6165:2:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6153:3:16"},"nodeType":"YulFunctionCall","src":"6153:15:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6135:6:16"},"nodeType":"YulFunctionCall","src":"6135:34:16"},"nodeType":"YulExpressionStatement","src":"6135:34:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6189:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"6200:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6185:3:16"},"nodeType":"YulFunctionCall","src":"6185:18:16"},{"name":"value1","nodeType":"YulIdentifier","src":"6205:6:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6178:6:16"},"nodeType":"YulFunctionCall","src":"6178:34:16"},"nodeType":"YulExpressionStatement","src":"6178:34:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6232:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"6243:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6228:3:16"},"nodeType":"YulFunctionCall","src":"6228:18:16"},{"name":"value2","nodeType":"YulIdentifier","src":"6248:6:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6221:6:16"},"nodeType":"YulFunctionCall","src":"6221:34:16"},"nodeType":"YulExpressionStatement","src":"6221:34:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6275:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"6286:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6271:3:16"},"nodeType":"YulFunctionCall","src":"6271:18:16"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6295:6:16"},{"name":"_2","nodeType":"YulIdentifier","src":"6303:2:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6291:3:16"},"nodeType":"YulFunctionCall","src":"6291:15:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6264:6:16"},"nodeType":"YulFunctionCall","src":"6264:43:16"},"nodeType":"YulExpressionStatement","src":"6264:43:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6327:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"6338:3:16","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6323:3:16"},"nodeType":"YulFunctionCall","src":"6323:19:16"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6348:6:16"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6360:3:16","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6365:10:16","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6356:3:16"},"nodeType":"YulFunctionCall","src":"6356:20:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6344:3:16"},"nodeType":"YulFunctionCall","src":"6344:33:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6316:6:16"},"nodeType":"YulFunctionCall","src":"6316:62:16"},"nodeType":"YulExpressionStatement","src":"6316:62:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6398:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"6409:3:16","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6394:3:16"},"nodeType":"YulFunctionCall","src":"6394:19:16"},{"name":"value5","nodeType":"YulIdentifier","src":"6415:6:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6387:6:16"},"nodeType":"YulFunctionCall","src":"6387:35:16"},"nodeType":"YulExpressionStatement","src":"6387:35:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6442:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"6453:3:16","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6438:3:16"},"nodeType":"YulFunctionCall","src":"6438:19:16"},{"name":"value6","nodeType":"YulIdentifier","src":"6459:6:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6431:6:16"},"nodeType":"YulFunctionCall","src":"6431:35:16"},"nodeType":"YulExpressionStatement","src":"6431:35:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6486:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"6497:3:16","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6482:3:16"},"nodeType":"YulFunctionCall","src":"6482:19:16"},{"name":"_1","nodeType":"YulIdentifier","src":"6503:2:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6475:6:16"},"nodeType":"YulFunctionCall","src":"6475:31:16"},"nodeType":"YulExpressionStatement","src":"6475:31:16"},{"nodeType":"YulAssignment","src":"6515:52:16","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"6540:6:16"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6552:9:16"},{"name":"_1","nodeType":"YulIdentifier","src":"6563:2:16"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6548:3:16"},"nodeType":"YulFunctionCall","src":"6548:18:16"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6523:16:16"},"nodeType":"YulFunctionCall","src":"6523:44:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6515:4:16"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5978:9:16","type":""},{"name":"value7","nodeType":"YulTypedName","src":"5989:6:16","type":""},{"name":"value6","nodeType":"YulTypedName","src":"5997:6:16","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6005:6:16","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6013:6:16","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6021:6:16","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6029:6:16","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6037:6:16","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6045:6:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6056:4:16","type":""}],"src":"5752:821:16"},{"body":{"nodeType":"YulBlock","src":"6616:74:16","statements":[{"body":{"nodeType":"YulBlock","src":"6639:22:16","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"6641:16:16"},"nodeType":"YulFunctionCall","src":"6641:18:16"},"nodeType":"YulExpressionStatement","src":"6641:18:16"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6636:1:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6629:6:16"},"nodeType":"YulFunctionCall","src":"6629:9:16"},"nodeType":"YulIf","src":"6626:35:16"},{"nodeType":"YulAssignment","src":"6670:14:16","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6679:1:16"},{"name":"y","nodeType":"YulIdentifier","src":"6682:1:16"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"6675:3:16"},"nodeType":"YulFunctionCall","src":"6675:9:16"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6670:1:16"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6601:1:16","type":""},{"name":"y","nodeType":"YulTypedName","src":"6604:1:16","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"6610:1:16","type":""}],"src":"6578:112:16"},{"body":{"nodeType":"YulBlock","src":"6744:79:16","statements":[{"nodeType":"YulAssignment","src":"6754:17:16","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6766:1:16"},{"name":"y","nodeType":"YulIdentifier","src":"6769:1:16"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6762:3:16"},"nodeType":"YulFunctionCall","src":"6762:9:16"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"6754:4:16"}]},{"body":{"nodeType":"YulBlock","src":"6795:22:16","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6797:16:16"},"nodeType":"YulFunctionCall","src":"6797:18:16"},"nodeType":"YulExpressionStatement","src":"6797:18:16"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"6786:4:16"},{"name":"x","nodeType":"YulIdentifier","src":"6792:1:16"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6783:2:16"},"nodeType":"YulFunctionCall","src":"6783:11:16"},"nodeType":"YulIf","src":"6780:37:16"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6726:1:16","type":""},{"name":"y","nodeType":"YulTypedName","src":"6729:1:16","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"6735:4:16","type":""}],"src":"6695:128:16"},{"body":{"nodeType":"YulBlock","src":"6998:147:16","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7015:3:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7028:2:16","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"7032:6:16"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7024:3:16"},"nodeType":"YulFunctionCall","src":"7024:15:16"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7045:26:16","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7041:3:16"},"nodeType":"YulFunctionCall","src":"7041:31:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7020:3:16"},"nodeType":"YulFunctionCall","src":"7020:53:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7008:6:16"},"nodeType":"YulFunctionCall","src":"7008:66:16"},"nodeType":"YulExpressionStatement","src":"7008:66:16"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7094:3:16"},{"kind":"number","nodeType":"YulLiteral","src":"7099:2:16","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7090:3:16"},"nodeType":"YulFunctionCall","src":"7090:12:16"},{"name":"value1","nodeType":"YulIdentifier","src":"7104:6:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7083:6:16"},"nodeType":"YulFunctionCall","src":"7083:28:16"},"nodeType":"YulExpressionStatement","src":"7083:28:16"},{"nodeType":"YulAssignment","src":"7120:19:16","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7131:3:16"},{"kind":"number","nodeType":"YulLiteral","src":"7136:2:16","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7127:3:16"},"nodeType":"YulFunctionCall","src":"7127:12:16"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7120:3:16"}]}]},"name":"abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6966:3:16","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6971:6:16","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6979:6:16","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6990:3:16","type":""}],"src":"6828:317:16"},{"body":{"nodeType":"YulBlock","src":"7325:210:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7342:9:16"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7357:6:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7373:3:16","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7378:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7369:3:16"},"nodeType":"YulFunctionCall","src":"7369:11:16"},{"kind":"number","nodeType":"YulLiteral","src":"7382:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7365:3:16"},"nodeType":"YulFunctionCall","src":"7365:19:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7353:3:16"},"nodeType":"YulFunctionCall","src":"7353:32:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7335:6:16"},"nodeType":"YulFunctionCall","src":"7335:51:16"},"nodeType":"YulExpressionStatement","src":"7335:51:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7406:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"7417:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7402:3:16"},"nodeType":"YulFunctionCall","src":"7402:18:16"},{"name":"value1","nodeType":"YulIdentifier","src":"7422:6:16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7395:6:16"},"nodeType":"YulFunctionCall","src":"7395:34:16"},"nodeType":"YulExpressionStatement","src":"7395:34:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7449:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"7460:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7445:3:16"},"nodeType":"YulFunctionCall","src":"7445:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"7465:2:16","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7438:6:16"},"nodeType":"YulFunctionCall","src":"7438:30:16"},"nodeType":"YulExpressionStatement","src":"7438:30:16"},{"nodeType":"YulAssignment","src":"7477:52:16","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7502:6:16"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7514:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"7525:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7510:3:16"},"nodeType":"YulFunctionCall","src":"7510:18:16"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7485:16:16"},"nodeType":"YulFunctionCall","src":"7485:44:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7477:4:16"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7278:9:16","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7289:6:16","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7297:6:16","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7305:6:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7316:4:16","type":""}],"src":"7150:385:16"},{"body":{"nodeType":"YulBlock","src":"7714:225:16","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7731:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"7742:2:16","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7724:6:16"},"nodeType":"YulFunctionCall","src":"7724:21:16"},"nodeType":"YulExpressionStatement","src":"7724:21:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7765:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"7776:2:16","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7761:3:16"},"nodeType":"YulFunctionCall","src":"7761:18:16"},{"kind":"number","nodeType":"YulLiteral","src":"7781:2:16","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7754:6:16"},"nodeType":"YulFunctionCall","src":"7754:30:16"},"nodeType":"YulExpressionStatement","src":"7754:30:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7804:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"7815:2:16","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7800:3:16"},"nodeType":"YulFunctionCall","src":"7800:18:16"},{"hexValue":"756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261","kind":"string","nodeType":"YulLiteral","src":"7820:34:16","type":"","value":"unable to transferAndCall to ora"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7793:6:16"},"nodeType":"YulFunctionCall","src":"7793:62:16"},"nodeType":"YulExpressionStatement","src":"7793:62:16"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7875:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"7886:2:16","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7871:3:16"},"nodeType":"YulFunctionCall","src":"7871:18:16"},{"hexValue":"636c65","kind":"string","nodeType":"YulLiteral","src":"7891:5:16","type":"","value":"cle"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7864:6:16"},"nodeType":"YulFunctionCall","src":"7864:33:16"},"nodeType":"YulExpressionStatement","src":"7864:33:16"},{"nodeType":"YulAssignment","src":"7906:27:16","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7918:9:16"},{"kind":"number","nodeType":"YulLiteral","src":"7929:3:16","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7914:3:16"},"nodeType":"YulFunctionCall","src":"7914:19:16"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7906:4:16"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7691:9:16","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7705:4:16","type":""}],"src":"7540:399:16"},{"body":{"nodeType":"YulBlock","src":"7996:116:16","statements":[{"nodeType":"YulAssignment","src":"8006:20:16","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8021:1:16"},{"name":"y","nodeType":"YulIdentifier","src":"8024:1:16"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8017:3:16"},"nodeType":"YulFunctionCall","src":"8017:9:16"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"8006:7:16"}]},{"body":{"nodeType":"YulBlock","src":"8084:22:16","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8086:16:16"},"nodeType":"YulFunctionCall","src":"8086:18:16"},"nodeType":"YulExpressionStatement","src":"8086:18:16"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8055:1:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8048:6:16"},"nodeType":"YulFunctionCall","src":"8048:9:16"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8062:1:16"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"8069:7:16"},{"name":"x","nodeType":"YulIdentifier","src":"8078:1:16"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8065:3:16"},"nodeType":"YulFunctionCall","src":"8065:15:16"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8059:2:16"},"nodeType":"YulFunctionCall","src":"8059:22:16"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"8045:2:16"},"nodeType":"YulFunctionCall","src":"8045:37:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8038:6:16"},"nodeType":"YulFunctionCall","src":"8038:45:16"},"nodeType":"YulIf","src":"8035:71:16"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7975:1:16","type":""},{"name":"y","nodeType":"YulTypedName","src":"7978:1:16","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"7984:7:16","type":""}],"src":"7944:168:16"},{"body":{"nodeType":"YulBlock","src":"8181:358:16","statements":[{"nodeType":"YulVariableDeclaration","src":"8191:16:16","value":{"kind":"number","nodeType":"YulLiteral","src":"8206:1:16","type":"","value":"1"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"8195:7:16","type":""}]},{"nodeType":"YulAssignment","src":"8216:16:16","value":{"name":"power_1","nodeType":"YulIdentifier","src":"8225:7:16"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8216:5:16"}]},{"nodeType":"YulAssignment","src":"8241:13:16","value":{"name":"_base","nodeType":"YulIdentifier","src":"8249:5:16"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"8241:4:16"}]},{"body":{"nodeType":"YulBlock","src":"8305:228:16","statements":[{"body":{"nodeType":"YulBlock","src":"8350:22:16","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8352:16:16"},"nodeType":"YulFunctionCall","src":"8352:18:16"},"nodeType":"YulExpressionStatement","src":"8352:18:16"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"8325:4:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8339:1:16","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8335:3:16"},"nodeType":"YulFunctionCall","src":"8335:6:16"},{"name":"base","nodeType":"YulIdentifier","src":"8343:4:16"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8331:3:16"},"nodeType":"YulFunctionCall","src":"8331:17:16"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8322:2:16"},"nodeType":"YulFunctionCall","src":"8322:27:16"},"nodeType":"YulIf","src":"8319:53:16"},{"body":{"nodeType":"YulBlock","src":"8411:29:16","statements":[{"nodeType":"YulAssignment","src":"8413:25:16","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"8426:5:16"},{"name":"base","nodeType":"YulIdentifier","src":"8433:4:16"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8422:3:16"},"nodeType":"YulFunctionCall","src":"8422:16:16"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8413:5:16"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"8392:8:16"},{"name":"power_1","nodeType":"YulIdentifier","src":"8402:7:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8388:3:16"},"nodeType":"YulFunctionCall","src":"8388:22:16"},"nodeType":"YulIf","src":"8385:55:16"},{"nodeType":"YulAssignment","src":"8453:23:16","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"8465:4:16"},{"name":"base","nodeType":"YulIdentifier","src":"8471:4:16"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8461:3:16"},"nodeType":"YulFunctionCall","src":"8461:15:16"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"8453:4:16"}]},{"nodeType":"YulAssignment","src":"8489:34:16","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"8505:7:16"},{"name":"exponent","nodeType":"YulIdentifier","src":"8514:8:16"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8501:3:16"},"nodeType":"YulFunctionCall","src":"8501:22:16"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"8489:8:16"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"8274:8:16"},{"name":"power_1","nodeType":"YulIdentifier","src":"8284:7:16"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8271:2:16"},"nodeType":"YulFunctionCall","src":"8271:21:16"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8293:3:16","statements":[]},"pre":{"nodeType":"YulBlock","src":"8267:3:16","statements":[]},"src":"8263:270:16"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nodeType":"YulTypedName","src":"8145:5:16","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"8152:8:16","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"8165:5:16","type":""},{"name":"base","nodeType":"YulTypedName","src":"8172:4:16","type":""}],"src":"8117:422:16"},{"body":{"nodeType":"YulBlock","src":"8603:747:16","statements":[{"body":{"nodeType":"YulBlock","src":"8641:52:16","statements":[{"nodeType":"YulAssignment","src":"8655:10:16","value":{"kind":"number","nodeType":"YulLiteral","src":"8664:1:16","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8655:5:16"}]},{"nodeType":"YulLeave","src":"8678:5:16"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"8623:8:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8616:6:16"},"nodeType":"YulFunctionCall","src":"8616:16:16"},"nodeType":"YulIf","src":"8613:80:16"},{"body":{"nodeType":"YulBlock","src":"8726:52:16","statements":[{"nodeType":"YulAssignment","src":"8740:10:16","value":{"kind":"number","nodeType":"YulLiteral","src":"8749:1:16","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8740:5:16"}]},{"nodeType":"YulLeave","src":"8763:5:16"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"8712:4:16"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8705:6:16"},"nodeType":"YulFunctionCall","src":"8705:12:16"},"nodeType":"YulIf","src":"8702:76:16"},{"cases":[{"body":{"nodeType":"YulBlock","src":"8814:52:16","statements":[{"nodeType":"YulAssignment","src":"8828:10:16","value":{"kind":"number","nodeType":"YulLiteral","src":"8837:1:16","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8828:5:16"}]},{"nodeType":"YulLeave","src":"8851:5:16"}]},"nodeType":"YulCase","src":"8807:59:16","value":{"kind":"number","nodeType":"YulLiteral","src":"8812:1:16","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"8882:123:16","statements":[{"body":{"nodeType":"YulBlock","src":"8917:22:16","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8919:16:16"},"nodeType":"YulFunctionCall","src":"8919:18:16"},"nodeType":"YulExpressionStatement","src":"8919:18:16"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"8902:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"8912:3:16","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8899:2:16"},"nodeType":"YulFunctionCall","src":"8899:17:16"},"nodeType":"YulIf","src":"8896:43:16"},{"nodeType":"YulAssignment","src":"8952:25:16","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"8965:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"8975:1:16","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8961:3:16"},"nodeType":"YulFunctionCall","src":"8961:16:16"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8952:5:16"}]},{"nodeType":"YulLeave","src":"8990:5:16"}]},"nodeType":"YulCase","src":"8875:130:16","value":{"kind":"number","nodeType":"YulLiteral","src":"8880:1:16","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"8794:4:16"},"nodeType":"YulSwitch","src":"8787:218:16"},{"body":{"nodeType":"YulBlock","src":"9103:70:16","statements":[{"nodeType":"YulAssignment","src":"9117:28:16","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9130:4:16"},{"name":"exponent","nodeType":"YulIdentifier","src":"9136:8:16"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"9126:3:16"},"nodeType":"YulFunctionCall","src":"9126:19:16"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9117:5:16"}]},{"nodeType":"YulLeave","src":"9158:5:16"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9027:4:16"},{"kind":"number","nodeType":"YulLiteral","src":"9033:2:16","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9024:2:16"},"nodeType":"YulFunctionCall","src":"9024:12:16"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9041:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"9051:2:16","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9038:2:16"},"nodeType":"YulFunctionCall","src":"9038:16:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9020:3:16"},"nodeType":"YulFunctionCall","src":"9020:35:16"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9064:4:16"},{"kind":"number","nodeType":"YulLiteral","src":"9070:3:16","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9061:2:16"},"nodeType":"YulFunctionCall","src":"9061:13:16"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9079:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"9089:2:16","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9076:2:16"},"nodeType":"YulFunctionCall","src":"9076:16:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9057:3:16"},"nodeType":"YulFunctionCall","src":"9057:36:16"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9017:2:16"},"nodeType":"YulFunctionCall","src":"9017:77:16"},"nodeType":"YulIf","src":"9014:159:16"},{"nodeType":"YulVariableDeclaration","src":"9182:57:16","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9224:4:16"},{"name":"exponent","nodeType":"YulIdentifier","src":"9230:8:16"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"9205:18:16"},"nodeType":"YulFunctionCall","src":"9205:34:16"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"9186:7:16","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"9195:6:16","type":""}]},{"body":{"nodeType":"YulBlock","src":"9284:22:16","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9286:16:16"},"nodeType":"YulFunctionCall","src":"9286:18:16"},"nodeType":"YulExpressionStatement","src":"9286:18:16"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"9254:7:16"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9271:1:16","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9267:3:16"},"nodeType":"YulFunctionCall","src":"9267:6:16"},{"name":"base_1","nodeType":"YulIdentifier","src":"9275:6:16"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9263:3:16"},"nodeType":"YulFunctionCall","src":"9263:19:16"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9251:2:16"},"nodeType":"YulFunctionCall","src":"9251:32:16"},"nodeType":"YulIf","src":"9248:58:16"},{"nodeType":"YulAssignment","src":"9315:29:16","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"9328:7:16"},{"name":"base_1","nodeType":"YulIdentifier","src":"9337:6:16"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"9324:3:16"},"nodeType":"YulFunctionCall","src":"9324:20:16"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9315:5:16"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"8574:4:16","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"8580:8:16","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"8593:5:16","type":""}],"src":"8544:806:16"},{"body":{"nodeType":"YulBlock","src":"9425:61:16","statements":[{"nodeType":"YulAssignment","src":"9435:45:16","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9465:4:16"},{"name":"exponent","nodeType":"YulIdentifier","src":"9471:8:16"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"9444:20:16"},"nodeType":"YulFunctionCall","src":"9444:36:16"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9435:5:16"}]}]},"name":"checked_exp_t_uint256_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"9396:4:16","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"9402:8:16","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"9415:5:16","type":""}],"src":"9355:131:16"}]},"contents":"{\n { }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"Source must be the oracle of the\")\n mstore(add(headStart, 96), \" request\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Unable to transfer\")\n tail := add(headStart, 96)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function abi_encode_tuple_packed_t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad_t_uint256__to_t_string_memory_ptr_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, \"https://api-stg.transak.com/api/\")\n mstore(add(pos, 32), \"v2/currencies/price?partnerApiKe\")\n mstore(add(pos, 64), \"y=062525f0-856b-4302-9d48-8b690b\")\n mstore(add(pos, 96), \"b5e634&fiatCurrency=USD&cryptoCu\")\n mstore(add(pos, 128), \"rrency=ETH&isBuyOrSell=BUY&netwo\")\n mstore(add(pos, 160), \"rk=ethereum&paymentMethod=credit\")\n mstore(add(pos, 192), \"_debit_card&fiatAmount=\")\n mstore(add(pos, 215), value0)\n end := add(pos, 247)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 256\n let _2 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _2))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, shl(224, 0xffffffff)))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), _1)\n tail := abi_encode_bytes(value7, add(headStart, _1))\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), value1)\n end := add(pos, 52)\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"unable to transferAndCall to ora\")\n mstore(add(headStart, 96), \"cle\")\n tail := add(headStart, 128)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function checked_exp_helper(_base, exponent) -> power, base\n {\n let power_1 := 1\n power := power_1\n base := _base\n for { } gt(exponent, power_1) { }\n {\n if gt(base, div(not(0), base)) { panic_error_0x11() }\n if and(exponent, power_1) { power := mul(power, base) }\n base := mul(base, base)\n exponent := shr(power_1, exponent)\n }\n }\n function checked_exp_unsigned(base, exponent) -> power\n {\n if iszero(exponent)\n {\n power := 1\n leave\n }\n if iszero(base)\n {\n power := 0\n leave\n }\n switch base\n case 1 {\n power := 1\n leave\n }\n case 2 {\n if gt(exponent, 255) { panic_error_0x11() }\n power := shl(exponent, 1)\n leave\n }\n if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n {\n power := exp(base, exponent)\n leave\n }\n let power_1, base_1 := checked_exp_helper(base, exponent)\n if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n power := mul(power_1, base_1)\n }\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power\n {\n power := checked_exp_unsigned(base, exponent)\n }\n}","id":16,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c5780639e2f9084116100665780639e2f9084146101b2578063a035b1fe146101d2578063df78abe6146101db578063f2fde38b146101e457600080fd5b80638da5cb5b146101865780638dc654a21461019757806393232d9f1461019f57600080fd5b80634357855e116100c85780634357855e1461014457806343e1ca491461015957806350ed6a951461017657806379ba50971461017e57600080fd5b8063350844ce146100ef57806338af3eed1461010b578063403a77611461013b575b600080fd5b6100f8600b5481565b6040519081526020015b60405180910390f35b600e546101239061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610102565b6100f8600a5481565b6101576101523660046110af565b6101f7565b005b600e546101669060ff1681565b6040519015158152602001610102565b6100f86102d3565b61015761037f565b6006546001600160a01b0316610123565b61015761042d565b6101576101ad3660046110af565b61057c565b6100f86101c03660046110d1565b600d6020526000908152604090205481565b6100f860095481565b6100f860085481565b6101576101f23660046110ea565b610643565b60008281526005602052604090205482906001600160a01b031633146102385760405162461bcd60e51b815260040161022f9061111a565b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0836040516102ad91815260200190565b60405180910390a26102c282620186a0610654565b6008556102cd610669565b50505050565b6000806102ea600a5430634357855e60e01b61082c565b905061032c6040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c81526020016113f4604c9139839190610851565b61036d604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001611440602f9139839190610851565b61037981600c5461086f565b91505090565b6007546001600160a01b031633146103d25760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161022f565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b610435610889565b60006104496002546001600160a01b031690565b600e546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb9261010090049091169083906370a0823190602401602060405180830381865afa1580156104a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c99190611162565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610514573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610538919061117b565b6105795760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161022f565b50565b60008281526005602052604090205482906001600160a01b031633146105b45760405162461bcd60e51b815260040161022f9061111a565b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f2e48c207bbe18ca424eae69ca096badb69cc821f8cb72b42f49599f3390a3b1c8360405161062991815260200190565b60405180910390a2600982905561063e6108de565b505050565b61064b610889565b610579816109a2565b600061066082846111c9565b90505b92915050565b600080610680600b54306393232d9f60e01b61082c565b905060006008546040516020016107a791907f68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f81527f76322f63757272656e636965732f70726963653f706172746e65724170694b6560208201527f793d30363235323566302d383536622d343330322d396434382d38623639306260408201527f623565363334266669617443757272656e63793d5553442663727970746f437560608201527f7272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f60808201527f726b3d657468657265756d267061796d656e744d6574686f643d63726564697460a08201527f5f64656269745f636172642666696174416d6f756e743d00000000000000000060c082015260d781019190915260f70190565b60408051601f19818403018152828201909152600382526219d95d60ea1b602083015291506107d890839083610851565b610819604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001611440602f9139849190610851565b61082582600c5461086f565b9250505090565b610834611074565b61083c611074565b61084881868686610a4c565b95945050505050565b60808301516108609083610a92565b608083015161063e9082610a92565b600354600090610660906001600160a01b03168484610aa9565b6006546001600160a01b031633146108dc5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161022f565b565b60006108f26002546001600160a01b031690565b600854600e546040516370a0823160e01b81526101009091046001600160a01b03908116600483015292935090918316906370a0823190602401602060405180830381865afa158015610949573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096d9190611162565b0361099557600854436000908152600d6020526040902055600e805460ff1916600117905550565b600e805460ff1916905550565b336001600160a01b038216036109fa5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161022f565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b610a54611074565b610a648560800151610100610b3c565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b610a9f8260038351610ba1565b61063e8282610cb0565b600454600090610aba8160016111dd565b600455835160408086015160808701515191516000936320214ca360e11b93610af29386938493923092918a91600191602401611236565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610b3286838684610cd7565b9695505050505050565b604080518082019091526060815260006020820152610b5c60208361129e565b15610b8457610b6c60208361129e565b610b779060206112b2565b610b8190836111dd565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff1611610bc6576102cd8360e0600585901b168317610e35565b60ff8167ffffffffffffffff1611610c0457610bed836018611fe0600586901b1617610e35565b506102cd8367ffffffffffffffff83166001610e5a565b61ffff8167ffffffffffffffff1611610c4357610c2c836019611fe0600586901b1617610e35565b506102cd8367ffffffffffffffff83166002610e5a565b63ffffffff8167ffffffffffffffff1611610c8457610c6d83601a611fe0600586901b1617610e35565b506102cd8367ffffffffffffffff83166004610e5a565b610c9983601b611fe0600586901b1617610e35565b506102cd8367ffffffffffffffff83166008610e5a565b60408051808201909152606081526000602082015261066083846000015151848551610e80565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea090610d9a908890879087906004016112c5565b6020604051808303816000875af1158015610db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddd919061117b565b610a8a5760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161022f565b6040805180820190915260608152600060208201526106608384600001515184610f6a565b604080518082019091526060815260006020820152610a8a848560000151518585610fc5565b6040805180820190915260608152600060208201528251821115610ea357600080fd5b6020850151610eb283866111dd565b1115610ee557610ee585610ed587602001518786610ed091906111dd565b611046565b610ee09060026112ec565b61105d565b600080865180518760208301019350808887011115610f045787860182525b505050602084015b60208410610f445780518252610f236020836111dd565b9150610f306020826111dd565b9050610f3d6020856112b2565b9350610f0c565b51815160001960208690036101000a019081169019919091161790525083949350505050565b60408051808201909152606081526000602082015283602001518310610f9f57610f9f8485602001516002610ee091906112ec565b8351805160208583010184815350808503610fbb576001810182525b5093949350505050565b6040805180820190915260608152600060208201526020850151610fe985846111dd565b1115610ffd57610ffd85610ed586856111dd565b6000600161100d846101006113e7565b61101791906112b2565b905085518386820101858319825116178152508051848701111561103b5783860181525b509495945050505050565b600081831115611057575081610663565b50919050565b81516110698383610b3c565b506102cd8382610cb0565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b600080604083850312156110c257600080fd5b50508035926020909101359150565b6000602082840312156110e357600080fd5b5035919050565b6000602082840312156110fc57600080fd5b81356001600160a01b038116811461111357600080fd5b9392505050565b60208082526028908201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604082015267081c995c5d595cdd60c21b606082015260800190565b60006020828403121561117457600080fd5b5051919050565b60006020828403121561118d57600080fd5b8151801515811461111357600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826111d8576111d861119d565b500490565b80820180821115610663576106636111b3565b6000815180845260005b81811015611216576020818501810151868301820152016111fa565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061128f838201856111f0565b9b9a5050505050505050505050565b6000826112ad576112ad61119d565b500690565b81810381811115610663576106636111b3565b60018060a01b038416815282602082015260606040820152600061084860608301846111f0565b8082028115828204841417610663576106636111b3565b600181815b8085111561133e578160001904821115611324576113246111b3565b8085161561133157918102915b93841c9390800290611308565b509250929050565b60008261135557506001610663565b8161136257506000610663565b816001811461137857600281146113825761139e565b6001915050610663565b60ff841115611393576113936111b3565b50506001821b610663565b5060208310610133831016604e8410600b84101617156113c1575081810a610663565b6113cb8383611303565b80600019048211156113df576113df6111b3565b029392505050565b6000610660838361134656fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a26469706673582212203d5866db489264612bcdb11f0637b4eb550297e7c43fef107e7fddac1ef6992564736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x9E2F9084 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x9E2F9084 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0xA035B1FE EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0xDF78ABE6 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x93232D9F EQ PUSH2 0x19F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4357855E GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x4357855E EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x43E1CA49 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x50ED6A95 EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x350844CE EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x38AF3EED EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x403A7761 EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0xE SLOAD PUSH2 0x123 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x10AF JUMP JUMPDEST PUSH2 0x1F7 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x166 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x37F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x123 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x42D JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1AD CALLDATASIZE PUSH1 0x4 PUSH2 0x10AF JUMP JUMPDEST PUSH2 0x57C JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x1C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x10D1 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x10EA JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x111A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x9721E7802F825C56833DB455A0081C7DD8C7DA03ED285E582C2AF90DD7D442C0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2AD SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x2C2 DUP3 PUSH3 0x186A0 PUSH2 0x654 JUMP JUMPDEST PUSH1 0x8 SSTORE PUSH2 0x2CD PUSH2 0x669 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2EA PUSH1 0xA SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x82C JUMP JUMPDEST SWAP1 POP PUSH2 0x32C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x19D95D PUSH1 0xEA SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13F4 PUSH1 0x4C SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x851 JUMP JUMPDEST PUSH2 0x36D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1440 PUSH1 0x2F SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x851 JUMP JUMPDEST PUSH2 0x379 DUP2 PUSH1 0xC SLOAD PUSH2 0x86F JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP3 AND CALLER SWAP1 DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x435 PUSH2 0x889 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x449 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 PUSH2 0x100 SWAP1 DIV SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A5 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 0x4C9 SWAP2 SWAP1 PUSH2 0x1162 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x514 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 0x538 SWAP2 SWAP1 PUSH2 0x117B JUMP JUMPDEST PUSH2 0x579 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x2AB730B13632903A37903A3930B739B332B9 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x111A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x2E48C207BBE18CA424EAE69CA096BADB69CC821F8CB72B42F49599F3390A3B1C DUP4 PUSH1 0x40 MLOAD PUSH2 0x629 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x9 DUP3 SWAP1 SSTORE PUSH2 0x63E PUSH2 0x8DE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x64B PUSH2 0x889 JUMP JUMPDEST PUSH2 0x579 DUP2 PUSH2 0x9A2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x660 DUP3 DUP5 PUSH2 0x11C9 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x680 PUSH1 0xB SLOAD ADDRESS PUSH4 0x93232D9F PUSH1 0xE0 SHL PUSH2 0x82C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7A7 SWAP2 SWAP1 PUSH32 0x68747470733A2F2F6170692D7374672E7472616E73616B2E636F6D2F6170692F DUP2 MSTORE PUSH32 0x76322F63757272656E636965732F70726963653F706172746E65724170694B65 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x793D30363235323566302D383536622D343330322D396434382D386236393062 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x623565363334266669617443757272656E63793D5553442663727970746F4375 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x7272656E63793D4554482669734275794F7253656C6C3D425559266E6574776F PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x726B3D657468657265756D267061796D656E744D6574686F643D637265646974 PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x5F64656269745F636172642666696174416D6F756E743D000000000000000000 PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xD7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xF7 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH3 0x19D95D PUSH1 0xEA SHL PUSH1 0x20 DUP4 ADD MSTORE SWAP2 POP PUSH2 0x7D8 SWAP1 DUP4 SWAP1 DUP4 PUSH2 0x851 JUMP JUMPDEST PUSH2 0x819 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1440 PUSH1 0x2F SWAP2 CODECOPY DUP5 SWAP2 SWAP1 PUSH2 0x851 JUMP JUMPDEST PUSH2 0x825 DUP3 PUSH1 0xC SLOAD PUSH2 0x86F JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x834 PUSH2 0x1074 JUMP JUMPDEST PUSH2 0x83C PUSH2 0x1074 JUMP JUMPDEST PUSH2 0x848 DUP2 DUP7 DUP7 DUP7 PUSH2 0xA4C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x860 SWAP1 DUP4 PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x63E SWAP1 DUP3 PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x660 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8F2 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP1 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x949 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 0x96D SWAP2 SWAP1 PUSH2 0x1162 JUMP JUMPDEST SUB PUSH2 0x995 JUMPI PUSH1 0x8 SLOAD NUMBER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x9FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0xA54 PUSH2 0x1074 JUMP JUMPDEST PUSH2 0xA64 DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0xB3C JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xA9F DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0xBA1 JUMP JUMPDEST PUSH2 0x63E DUP3 DUP3 PUSH2 0xCB0 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xABA DUP2 PUSH1 0x1 PUSH2 0x11DD JUMP JUMPDEST PUSH1 0x4 SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0xAF2 SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x1236 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0xB32 DUP7 DUP4 DUP7 DUP5 PUSH2 0xCD7 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xB5C PUSH1 0x20 DUP4 PUSH2 0x129E JUMP JUMPDEST ISZERO PUSH2 0xB84 JUMPI PUSH2 0xB6C PUSH1 0x20 DUP4 PUSH2 0x129E JUMP JUMPDEST PUSH2 0xB77 SWAP1 PUSH1 0x20 PUSH2 0x12B2 JUMP JUMPDEST PUSH2 0xB81 SWAP1 DUP4 PUSH2 0x11DD JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xBC6 JUMPI PUSH2 0x2CD DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0xE35 JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xC04 JUMPI PUSH2 0xBED DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xE35 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0xE5A JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xC43 JUMPI PUSH2 0xC2C DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xE35 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0xE5A JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xC84 JUMPI PUSH2 0xC6D DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xE35 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0xE5A JUMP JUMPDEST PUSH2 0xC99 DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xE35 JUMP JUMPDEST POP PUSH2 0x2CD DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0xE5A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x660 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xE80 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0xD9A SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x12C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB9 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 0xDDD SWAP2 SWAP1 PUSH2 0x117B JUMP JUMPDEST PUSH2 0xA8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x660 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0xF6A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xA8A DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0xFC5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0xEA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0xEB2 DUP4 DUP7 PUSH2 0x11DD JUMP JUMPDEST GT ISZERO PUSH2 0xEE5 JUMPI PUSH2 0xEE5 DUP6 PUSH2 0xED5 DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0xED0 SWAP2 SWAP1 PUSH2 0x11DD JUMP JUMPDEST PUSH2 0x1046 JUMP JUMPDEST PUSH2 0xEE0 SWAP1 PUSH1 0x2 PUSH2 0x12EC JUMP JUMPDEST PUSH2 0x105D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0xF04 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0xF44 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0xF23 PUSH1 0x20 DUP4 PUSH2 0x11DD JUMP JUMPDEST SWAP2 POP PUSH2 0xF30 PUSH1 0x20 DUP3 PUSH2 0x11DD JUMP JUMPDEST SWAP1 POP PUSH2 0xF3D PUSH1 0x20 DUP6 PUSH2 0x12B2 JUMP JUMPDEST SWAP4 POP PUSH2 0xF0C JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0xF9F JUMPI PUSH2 0xF9F DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0xEE0 SWAP2 SWAP1 PUSH2 0x12EC JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 SUB PUSH2 0xFBB JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0xFE9 DUP6 DUP5 PUSH2 0x11DD JUMP JUMPDEST GT ISZERO PUSH2 0xFFD JUMPI PUSH2 0xFFD DUP6 PUSH2 0xED5 DUP7 DUP6 PUSH2 0x11DD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x100D DUP5 PUSH2 0x100 PUSH2 0x13E7 JUMP JUMPDEST PUSH2 0x1017 SWAP2 SWAP1 PUSH2 0x12B2 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0x103B JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x1057 JUMPI POP DUP2 PUSH2 0x663 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x1069 DUP4 DUP4 PUSH2 0xB3C JUMP JUMPDEST POP PUSH2 0x2CD DUP4 DUP3 PUSH2 0xCB0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1113 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x40 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x118D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1113 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x11D8 JUMPI PUSH2 0x11D8 PUSH2 0x119D JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x11B3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1216 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x11FA JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x128F DUP4 DUP3 ADD DUP6 PUSH2 0x11F0 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x12AD JUMPI PUSH2 0x12AD PUSH2 0x119D JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x11B3 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x848 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x11F0 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x663 JUMPI PUSH2 0x663 PUSH2 0x11B3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0x133E JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x1324 JUMPI PUSH2 0x1324 PUSH2 0x11B3 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0x1331 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0x1308 JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1355 JUMPI POP PUSH1 0x1 PUSH2 0x663 JUMP JUMPDEST DUP2 PUSH2 0x1362 JUMPI POP PUSH1 0x0 PUSH2 0x663 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1378 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1382 JUMPI PUSH2 0x139E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x663 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1393 JUMPI PUSH2 0x1393 PUSH2 0x11B3 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x663 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x13C1 JUMPI POP DUP2 DUP2 EXP PUSH2 0x663 JUMP JUMPDEST PUSH2 0x13CB DUP4 DUP4 PUSH2 0x1303 JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x13DF JUMPI PUSH2 0x13DF PUSH2 0x11B3 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x660 DUP4 DUP4 PUSH2 0x1346 JUMP INVALID PUSH9 0x747470733A2F2F7465 PUSH20 0x746170692E696F2F6170692F48617964656E2F76 BALANCE 0x2F PUSH2 0x6363 PUSH16 0x756E74732F7075622D39393838373736 CALLDATASIZE CALLDATALOAD CALLDATALOAD CALLVALUE CALLVALUE CALLER CALLER ORIGIN ORIGIN 0x2F PUSH15 0x6574776F726B5265706F7274726F77 0x2C PUSH14 0x657472696356616C7565732C4553 SLOAD 0x49 0x4D COINBASE SLOAD GASLIMIT DIFFICULTY 0x5F GASLIMIT COINBASE MSTORE 0x4E 0x49 0x4E SELFBALANCE MSTORE8 0x2C PUSH14 0x6963726F7356616C7565A2646970 PUSH7 0x73582212203D58 PUSH7 0xDB489264612BCD 0xB1 0x1F MOD CALLDATACOPY 0xB4 0xEB SSTORE MUL SWAP8 0xE7 0xC4 EXTCODEHASH 0xEF LT PUSH31 0x7FDDAC1EF6992564736F6C6343000811003300000000000000000000000000 ","sourceMap":"235:4800:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;624:27;;;;;;;;;160:25:16;;;148:2;133:18;624:27:15;;;;;;;;979:26;;;;;;;;-1:-1:-1;;;;;979:26:15;;;;;;-1:-1:-1;;;;;360:32:16;;;342:51;;330:2;315:18;979:26:15;196:203:16;596:22:15;;;;;;2715:389;;;;;;:::i;:::-;;:::i;:::-;;738:22;;;;;;;;;;;;822:14:16;;815:22;797:41;;785:2;770:18;738:22:15;657:187:16;2061:573:15;;;:::i;1016:265:3:-;;;:::i;1332:81::-;1401:7;;-1:-1:-1;;;;;1401:7:3;1332:81;;4452:259:15;;;:::i;3928:373::-;;;;;;:::i;:::-;;:::i;683:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;509:20;;;;;;413:22;;;;;;826:98:3;;;;;;:::i;:::-;;:::i;2715:389:15:-;11663:28:1;;;;:17;:28;;;;;;;;-1:-1:-1;;;;;11663:28:1;11649:10;:42;11641:95;;;;-1:-1:-1;;;11641:95:1;;;;;;;:::i;:::-;;;;;;;;;11749:28;;;;:17;:28;;;;;;11742:35;;-1:-1:-1;;;;;;11742:35:1;;;11788:29;11767:9;;11788:29;;;2868:10:15::1;2853:36;2880:8;2853:36;;;;160:25:16::0;;148:2;133:18;;14:177;2853:36:15::1;;;;;;;;3031:29;3044:8;3053:6;3031:12;:29::i;:::-;3021:7;:39:::0;3070:27:::1;:25;:27::i;:::-;;2715:389:::0;;;:::o;2061:573::-;2107:17;2136:28;2167:114;2202:7;;2231:4;2250:21;;;2167;:114::i;:::-;2136:145;;2345:128;;;;;;;;;;;;;;-1:-1:-1;;;2345:128:15;;;;;;;;;;;;;;;;;;;;:3;;:128;:7;:128::i;:::-;2484:66;;;;;;;;;;;;;;-1:-1:-1;;;2484:66:15;;;;;;;;;;;;;;;;;;;;:3;;:66;:7;:66::i;:::-;2597:30;2618:3;2623;;2597:20;:30::i;:::-;2590:37;;;2061:573;:::o;1016:265:3:-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;2118:2:16;1067:63:3;;;2100:21:16;2157:2;2137:18;;;2130:30;-1:-1:-1;;;2176:18:16;;;2169:52;2238:18;;1067:63:3;1916:346:16;1067:63:3;1156:7;;;-1:-1:-1;;;;;;1169:20:3;;;1179:10;1169:20;;;;;;1195:14;:27;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;1156:7;;1234:42;;1137:16;;1234:42;1061:220;1016:265::o;4452:259:15:-;1956:20:3;:18;:20::i;:::-;4503:23:15::1;4548;9184:6:1::0;;-1:-1:-1;;;;;9184:6:1;;9098:98;4548:23:15::1;4617:11;::::0;4630:29:::1;::::0;-1:-1:-1;;;4630:29:15;;4653:4:::1;4630:29;::::0;::::1;342:51:16::0;4503:69:15;;-1:-1:-1;;;;;;4603:13:15;;::::1;::::0;::::1;::::0;4617:11:::1;::::0;::::1;::::0;;::::1;::::0;4603:13;;4630:14:::1;::::0;315:18:16;;4630:29:15::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4603:57;::::0;-1:-1:-1;;;;;;4603:57:15::1;::::0;;;;;;-1:-1:-1;;;;;2648:32:16;;;4603:57:15::1;::::0;::::1;2630:51:16::0;2697:18;;;2690:34;2603:18;;4603:57:15::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4582:122;;;::::0;-1:-1:-1;;;4582:122:15;;3219:2:16;4582:122:15::1;::::0;::::1;3201:21:16::0;3258:2;3238:18;;;3231:30;-1:-1:-1;;;3277:18:16;;;3270:48;3335:18;;4582:122:15::1;3017:342:16::0;4582:122:15::1;4493:218;4452:259::o:0;3928:373::-;11663:28:1;;;;:17;:28;;;;;;;;-1:-1:-1;;;;;11663:28:1;11649:10;:42;11641:95;;;;-1:-1:-1;;;11641:95:1;;;;;;;:::i;:::-;11749:28;;;;:17;:28;;;;;;11742:35;;-1:-1:-1;;;;;;11742:35:1;;;11788:29;11767:9;;11788:29;;;4096:10:15::1;4076:39;4108:6;4076:39;;;;160:25:16::0;;148:2;133:18;;14:177;4076:39:15::1;;;;;;;;4247:5;:14:::0;;;4271:23:::1;:21;:23::i;:::-;3928:373:::0;;;:::o;826:98:3:-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;3850:96:14:-:0;3908:7;3934:5;3938:1;3934;:5;:::i;:::-;3927:12;;3850:96;;;;;:::o;3110:812:15:-;3164:17;3193:28;3224:131;3259:12;;3293:4;3312:33;;;3224:21;:131::i;:::-;3193:162;;3366:20;3632:7;;3396:244;;;;;;;3995:34:16;3983:47;;4060:34;4055:2;4046:12;;4039:56;4125:34;4120:2;4111:12;;4104:56;4190:34;4185:2;4176:12;;4169:56;4256:34;4250:3;4241:13;;4234:57;4322:34;4316:3;4307:13;;4300:57;4388:25;4382:3;4373:13;;4366:48;4439:3;4430:13;;4423:29;;;;4477:3;4468:13;;3753:734;3396:244:15;;;;-1:-1:-1;;3396:244:15;;;;;;3705:56;;;;;;;;;-1:-1:-1;;;3396:244:15;3705:56;;;3396:244;-1:-1:-1;3705:56:15;;:3;;3396:244;3705:7;:56::i;:::-;3772:66;;;;;;;;;;;;;;-1:-1:-1;;;3772:66:15;;;;;;;;;;;;;;;;;;;;:3;;:66;:7;:66::i;:::-;3885:30;3906:3;3911;;3885:20;:30::i;:::-;3878:37;;;;3110:812;:::o;1850:283:1:-;1992:24;;:::i;:::-;2024:28;;:::i;:::-;2065:63;:3;2080:6;2088:12;2102:25;2065:14;:63::i;:::-;2058:70;1850:283;-1:-1:-1;;;;;1850:283:1:o;1951:175:0:-;2061:8;;;;:26;;2083:3;2061:21;:26::i;:::-;2093:8;;;;:28;;2115:5;2093:21;:28::i;2992:177:1:-;3140:8;;3087:7;;3109:55;;-1:-1:-1;;;;;3140:8:1;3151:3;3156:7;3109:22;:55::i;1730:111:3:-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;4694:2:16;1780:56:3;;;4676:21:16;4733:2;4713:18;;;4706:30;-1:-1:-1;;;4752:18:16;;;4745:52;4814:18;;1780:56:3;4492:346:16;1780:56:3;1730:111::o;4717:315:15:-;4768:23;4813;9184:6:1;;-1:-1:-1;;;;;9184:6:1;;9098:98;4813:23:15;4882:7;;4866:11;;4851:27;;-1:-1:-1;;;4851:27:15;;4866:11;;;;-1:-1:-1;;;;;4866:11:15;;;4851:27;;;342:51:16;4768:69:15;;-1:-1:-1;4882:7:15;;4851:14;;;;;315:18:16;;4851:27:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:38;4847:178;;4944:7;;4928:12;4913:28;;;;:14;:28;;;;;:38;4965:10;:17;;-1:-1:-1;;4965:17:15;4978:4;4965:17;;;4493:218:::1;4452:259::o:0;4847:178::-;5007:10;:18;;-1:-1:-1;;5007:18:15;;;4758:274;4717:315::o;1497:188:3:-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;5045:2:16;1551:52:3;;;5027:21:16;5084:2;5064:18;;;5057:30;5123:25;5103:18;;;5096:53;5166:18;;1551:52:3;4843:347:16;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;1668:7;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;;1641:39:3;1497:188;:::o;987:351:0:-;1129:24;;:::i;:::-;1161:49;1182:4;:8;;;361:3;1161:20;:49::i;:::-;-1:-1:-1;;1216:15:0;;;-1:-1:-1;;;;;1237:35:0;;:20;;;:35;-1:-1:-1;;;;;;1278:38:0;;:23;;;:38;1216:4;987:351;;;;;;;:::o;2777:204:12:-;2875:71;2894:3;383:1;2931:5;2925:19;2875:18;:71::i;:::-;2952:24;:3;2969:5;2952:10;:24::i;3687:756:1:-;3864:14;;3823:17;;3901:9;3864:14;3909:1;3901:9;:::i;:::-;3884:14;:26;4245:6;;4280:22;;;;;4350:7;;;;:11;3946:421;;3916:27;;-1:-1:-1;;;3976:48:1;3946:421;;3916:27;;;;4245:6;4267:4;;4280:22;4310:5;;837:1;;3946:421;;;:::i;:::-;;;;-1:-1:-1;;3946:421:1;;;;;;;;;;;;;;-1:-1:-1;;;;;3946:421:1;-1:-1:-1;;;;;;3946:421:1;;;;;;;;;;;-1:-1:-1;4380:58:1;4392:13;4407:5;4414:7;3946:421;4380:11;:58::i;:::-;4373:65;3687:756;-1:-1:-1;;;;;;3687:756:1:o;1001:399:11:-;-1:-1:-1;;;;;;;;;;;;;;;;;1100:13:11;1111:2;1100:8;:13;:::i;:::-;:18;1096:71;;1146:13;1157:2;1146:8;:13;:::i;:::-;1140:20;;:2;:20;:::i;:::-;1128:32;;;;:::i;:::-;;;1096:71;-1:-1:-1;1214:12:11;;;;:23;;;1277:4;1271:11;;1289:16;;;-1:-1:-1;1312:14:11;;1354:18;;;1346:27;1333:41;;1214:12;1001:399::o;682:625:12:-;803:2;794:5;:11;;;791:512;;815:44;:3;837:20;847:1;838:10;;;837:20;;;815:15;:44::i;791:512::-;885:4;876:5;:13;;;872:431;;899:41;:3;936:2;922:10;931:1;922:10;;;;921:17;899:15;:41::i;:::-;-1:-1:-1;948:23:12;:3;:23;;;969:1;948:13;:23::i;872:431::-;997:6;988:5;:15;;;984:319;;1013:41;:3;1050:2;1036:10;1045:1;1036:10;;;;1035:17;1013:15;:41::i;:::-;-1:-1:-1;1062:23:12;:3;:23;;;1083:1;1062:13;:23::i;984:319::-;1111:10;1102:5;:19;;;1098:205;;1131:41;:3;1168:2;1154:10;1163:1;1154:10;;;;1153:17;1131:15;:41::i;:::-;-1:-1:-1;1180:23:12;:3;:23;;;1201:1;1180:13;:23::i;1098:205::-;1224:41;:3;1261:2;1247:10;1256:1;1247:10;;;;1246:17;1224:15;:41::i;:::-;-1:-1:-1;1273:23:12;:3;:23;;;1294:1;1273:13;:23::i;4692:155:11:-;-1:-1:-1;;;;;;;;;;;;;;;;;4797:45:11;4803:3;4808;:7;;;:14;4824:4;4830;:11;4797:5;:45::i;6629:430:1:-;6818:29;;-1:-1:-1;;6835:4:1;7028:2:16;7024:15;7020:53;6818:29:1;;;7008:66:16;7090:12;;;7083:28;;;6771:17:1;;7127:12:16;;6818:29:1;;;;;;-1:-1:-1;;6818:29:1;;;;;;6808:40;;6818:29;6808:40;;;;6854:28;;;;:17;:28;;;;;;:44;;-1:-1:-1;;;;;;6854:44:1;-1:-1:-1;;;;;6854:44:1;;;;;6808:40;;-1:-1:-1;6808:40:1;;6909:29;;6854:28;6909:29;6952:6;;:62;;-1:-1:-1;;;6952:62:1;;-1:-1:-1;;;;;6952:6:1;;;;:22;;:62;;6975:13;;6990:7;;6999:14;;6952:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6944:110;;;;-1:-1:-1;;;6944:110:1;;7742:2:16;6944:110:1;;;7724:21:16;7781:2;7761:18;;;7754:30;7820:34;7800:18;;;7793:62;-1:-1:-1;;;7871:18:16;;;7864:33;7914:19;;6944:110:1;7540:399:16;6040:145:11;-1:-1:-1;;;;;;;;;;;;;;;;;6143:37:11;6154:3;6159;:7;;;:14;6175:4;6143:10;:37::i;9894:177::-;-1:-1:-1;;;;;;;;;;;;;;;;;10026:40:11;10035:3;10040;:7;;;:14;10056:4;10062:3;10026:8;:40::i;2745:1210::-;-1:-1:-1;;;;;;;;;;;;;;;;;2903:4:11;:11;2896:3;:18;;2888:27;;;;;;2938:12;;;;2926:9;2932:3;2926;:9;:::i;:::-;:24;2922:90;;;2960:45;2967:3;2972:28;2976:3;:12;;;2996:3;2990;:9;;;;:::i;:::-;2972:3;:28::i;:::-;:32;;3003:1;2972:32;:::i;:::-;2960:6;:45::i;:::-;3018:12;3036:11;3133:3;3127:10;3204:6;3198:13;3320:3;3315:2;3307:6;3303:15;3299:25;3291:33;;3404:6;3398:3;3393;3389:13;3386:25;3383:76;;;3446:3;3441;3437:13;3429:6;3422:29;3383:76;-1:-1:-1;;;3483:2:11;3473:13;;3544:129;3558:2;3551:3;:9;3544:129;;3613:10;;3600:24;;3639:10;3647:2;3607:4;3639:10;:::i;:::-;;-1:-1:-1;3657:9:11;3664:2;3657:9;;:::i;:::-;;-1:-1:-1;3562:9:11;3569:2;3562:9;;:::i;:::-;;;3544:129;;;3807:10;3858:11;;-1:-1:-1;;3747:2:11;:8;;;3741:3;:15;3740:21;3854:22;;;3819:9;;3803:26;;;;3898:21;3885:35;;-1:-1:-1;3947:3:11;2745:1210;;;;;;:::o;5148:639::-;-1:-1:-1;;;;;;;;;;;;;;;;;5283:3:11;:12;;;5276:3;:19;5272:69;;5305:29;5312:3;5317;:12;;;5332:1;5317:16;;;;:::i;5305:29::-;5427:3;5421:10;5498:6;5492:13;5610:2;5604:3;5596:6;5592:16;5588:25;5634:4;5628;5620:19;;5705:6;5700:3;5697:15;5694:67;;5750:1;5742:6;5738:14;5730:6;5723:30;5694:67;-1:-1:-1;5779:3:11;;5148:639;-1:-1:-1;;;;5148:639:11:o;8974:675::-;-1:-1:-1;;;;;;;;;;;;;;;;;9130:12:11;;;;9118:9;9124:3;9118;:9;:::i;:::-;:24;9114:73;;;9152:28;9159:3;9165:9;9171:3;9165;:9;:::i;9152:28::-;9193:12;9221:1;9209:8;9214:3;9209;:8;:::i;:::-;9208:14;;;;:::i;:::-;9193:29;;9308:3;9302:10;9423:3;9417;9409:6;9405:16;9401:26;9479:4;9471;9467:9;9460:4;9454:11;9450:27;9447:37;9441:4;9434:51;;9567:6;9561:13;9555:3;9550;9546:13;9543:32;9540:83;;;9610:3;9605;9601:13;9593:6;9586:29;9540:83;-1:-1:-1;9641:3:11;;8974:675;-1:-1:-1;;;;;8974:675:11:o;1961:124::-;2018:7;2041:1;2037;:5;2033:34;;;-1:-1:-1;2059:1:11;2052:8;;2033:34;-1:-1:-1;2079:1:11;1961:124;-1:-1:-1;1961:124:11:o;1801:156::-;1895:7;;1908:19;1895:3;1918:8;1908:4;:19::i;:::-;;1933;1940:3;1945:6;1933;:19::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;404:248:16:-;472:6;480;533:2;521:9;512:7;508:23;504:32;501:52;;;549:1;546;539:12;501:52;-1:-1:-1;;572:23:16;;;642:2;627:18;;;614:32;;-1:-1:-1;404:248:16:o;849:180::-;908:6;961:2;949:9;940:7;936:23;932:32;929:52;;;977:1;974;967:12;929:52;-1:-1:-1;1000:23:16;;849:180;-1:-1:-1;849:180:16:o;1216:286::-;1275:6;1328:2;1316:9;1307:7;1303:23;1299:32;1296:52;;;1344:1;1341;1334:12;1296:52;1370:23;;-1:-1:-1;;;;;1422:31:16;;1412:42;;1402:70;;1468:1;1465;1458:12;1402:70;1491:5;1216:286;-1:-1:-1;;;1216:286:16:o;1507:404::-;1709:2;1691:21;;;1748:2;1728:18;;;1721:30;1787:34;1782:2;1767:18;;1760:62;-1:-1:-1;;;1853:2:16;1838:18;;1831:38;1901:3;1886:19;;1507:404::o;2267:184::-;2337:6;2390:2;2378:9;2369:7;2365:23;2361:32;2358:52;;;2406:1;2403;2396:12;2358:52;-1:-1:-1;2429:16:16;;2267:184;-1:-1:-1;2267:184:16:o;2735:277::-;2802:6;2855:2;2843:9;2834:7;2830:23;2826:32;2823:52;;;2871:1;2868;2861:12;2823:52;2903:9;2897:16;2956:5;2949:13;2942:21;2935:5;2932:32;2922:60;;2978:1;2975;2968:12;3364:127;3425:10;3420:3;3416:20;3413:1;3406:31;3456:4;3453:1;3446:15;3480:4;3477:1;3470:15;3496:127;3557:10;3552:3;3548:20;3545:1;3538:31;3588:4;3585:1;3578:15;3612:4;3609:1;3602:15;3628:120;3668:1;3694;3684:35;;3699:18;;:::i;:::-;-1:-1:-1;3733:9:16;;3628:120::o;5195:125::-;5260:9;;;5281:10;;;5278:36;;;5294:18;;:::i;5325:422::-;5366:3;5404:5;5398:12;5431:6;5426:3;5419:19;5456:1;5466:162;5480:6;5477:1;5474:13;5466:162;;;5542:4;5598:13;;;5594:22;;5588:29;5570:11;;;5566:20;;5559:59;5495:12;5466:162;;;5470:3;5673:1;5666:4;5657:6;5652:3;5648:16;5644:27;5637:38;5736:4;5729:2;5725:7;5720:2;5712:6;5708:15;5704:29;5699:3;5695:39;5691:50;5684:57;;;5325:422;;;;:::o;5752:821::-;-1:-1:-1;;;;;6153:15:16;;;6135:34;;6200:2;6185:18;;6178:34;;;6243:2;6228:18;;6221:34;;;6291:15;;6286:2;6271:18;;6264:43;-1:-1:-1;;;;;;6344:33:16;;6338:3;6323:19;;6316:62;6115:3;6394:19;;6387:35;;;6453:3;6438:19;;6431:35;;;6085:3;6360;6482:19;;6475:31;;;6056:4;;6523:44;6548:18;;;6540:6;6523:44;:::i;:::-;6515:52;5752:821;-1:-1:-1;;;;;;;;;;;5752:821:16:o;6578:112::-;6610:1;6636;6626:35;;6641:18;;:::i;:::-;-1:-1:-1;6675:9:16;;6578:112::o;6695:128::-;6762:9;;;6783:11;;;6780:37;;;6797:18;;:::i;7150:385::-;7382:1;7378;7373:3;7369:11;7365:19;7357:6;7353:32;7342:9;7335:51;7422:6;7417:2;7406:9;7402:18;7395:34;7465:2;7460;7449:9;7445:18;7438:30;7316:4;7485:44;7525:2;7514:9;7510:18;7502:6;7485:44;:::i;7944:168::-;8017:9;;;8048;;8065:15;;;8059:22;;8045:37;8035:71;;8086:18;;:::i;8117:422::-;8206:1;8249:5;8206:1;8263:270;8284:7;8274:8;8271:21;8263:270;;;8343:4;8339:1;8335:6;8331:17;8325:4;8322:27;8319:53;;;8352:18;;:::i;:::-;8402:7;8392:8;8388:22;8385:55;;;8422:16;;;;8385:55;8501:22;;;;8461:15;;;;8263:270;;;8267:3;8117:422;;;;;:::o;8544:806::-;8593:5;8623:8;8613:80;;-1:-1:-1;8664:1:16;8678:5;;8613:80;8712:4;8702:76;;-1:-1:-1;8749:1:16;8763:5;;8702:76;8794:4;8812:1;8807:59;;;;8880:1;8875:130;;;;8787:218;;8807:59;8837:1;8828:10;;8851:5;;;8875:130;8912:3;8902:8;8899:17;8896:43;;;8919:18;;:::i;:::-;-1:-1:-1;;8975:1:16;8961:16;;8990:5;;8787:218;;9089:2;9079:8;9076:16;9070:3;9064:4;9061:13;9057:36;9051:2;9041:8;9038:16;9033:2;9027:4;9024:12;9020:35;9017:77;9014:159;;;-1:-1:-1;9126:19:16;;;9158:5;;9014:159;9205:34;9230:8;9224:4;9205:34;:::i;:::-;9275:6;9271:1;9267:6;9263:19;9254:7;9251:32;9248:58;;;9286:18;;:::i;:::-;9324:20;;8544:806;-1:-1:-1;;;8544:806:16:o;9355:131::-;9415:5;9444:36;9471:8;9465:4;9444:36;:::i"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","beneficiary()":"38af3eed","earning()":"df78abe6","earningReports(uint256)":"9e2f9084","fulfill(bytes32,uint256)":"4357855e","fulfillTransakPrice(bytes32,uint256)":"93232d9f","ggJobId()":"403a7761","isEligible()":"43e1ca49","owner()":"8da5cb5b","price()":"a035b1fe","requestWeekEarning()":"50ed6a95","transakJobId()":"350844ce","transferOwnership(address)":"f2fde38b","withdrawLink()":"8dc654a2"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"RequestBoughtAmount\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"earning\",\"type\":\"uint256\"}],\"name\":\"RequestEarning\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beneficiary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"earning\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"earningReports\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_earning\",\"type\":\"uint256\"}],\"name\":\"fulfill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"fulfillTransakPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ggJobId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isEligible\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestWeekEarning\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transakJobId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawLink\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"beneficiary()\":{\"notice\":\"@beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it In this 0xSplits contract will contain the list of charity organizations' addresses\"},\"constructor\":{\"notice\":\"Initialize the link token and target oracle Mumbai Testnet details: Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 jobId: b1d42cd54a3a4200b1f725a68e488888\"},\"fulfill(bytes32,uint256)\":{\"notice\":\"Receive the response in the form of uint256\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"requestWeekEarning()\":{\"notice\":\"Create a Chainlink request to retrieve API response, find the target data, then multiply by 1000000000000000000 (to remove decimal places from data).\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"},\"withdrawLink()\":{\"notice\":\"Allow withdraw of Link tokens from the contract LINK will always be sent to beneficiary 0xSplits contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/AdmodConsumer.sol\":\"AdmodConsumer\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":{\"keccak256\":\"0x99d0b0786fe368970009c703f2249bfbc56340ddf1a28b60d2915bb58c34cd72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0371c1af45db651823b9a3d5af761b08243c78f105166342eee28de356c8dd\",\"dweb:/ipfs/QmPnC9qNDKwJFd5unwLb9pxjrutoe8MWjm5EXHTxq2kJ4x\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x58b21219689909c4f8339af00813760337f7e2e7f169a97fe49e2896dcfb3b9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8e012e946dec20e59f2d4446f4b44bb098f3fa8bac103b1b5112fff777447b\",\"dweb:/ipfs/QmVTooKWcLkJ9W68yNX4MgdrbAKiAXwuRN9A7f4NkdcdtQ\"]},\"contracts/AdmodConsumer.sol\":{\"keccak256\":\"0x23daf48eff81d8d58d2ce641350da00369c502da47cbe62e6ab657eab00b7afa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65802aea379ca4f045f233e5ddcae2384df6553bef21e055af6de00b6135b406\",\"dweb:/ipfs/QmfHAoLQWhrVvZo5tw6iS7BiFDZnSz8NDS5N6AJXNDPPcX\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/build-info/f2eb4e173b43c52d2ccd8f62dc3118c6.json b/artifacts/build-info/f2eb4e173b43c52d2ccd8f62dc3118c6.json new file mode 100644 index 0000000..c2d6714 --- /dev/null +++ b/artifacts/build-info/f2eb4e173b43c52d2ccd8f62dc3118c6.json @@ -0,0 +1 @@ +{"id":"f2eb4e173b43c52d2ccd8f62dc3118c6","_format":"hh-sol-build-info-1","solcVersion":"0.8.17","solcLongVersion":"0.8.17+commit.8df45f5f","input":{"language":"Solidity","sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {CBORChainlink} from \"./vendor/CBORChainlink.sol\";\nimport {BufferChainlink} from \"./vendor/BufferChainlink.sol\";\n\n/**\n * @title Library for common Chainlink functions\n * @dev Uses imported CBOR library for encoding to buffer\n */\nlibrary Chainlink {\n uint256 internal constant defaultBufferSize = 256; // solhint-disable-line const-name-snakecase\n\n using CBORChainlink for BufferChainlink.buffer;\n\n struct Request {\n bytes32 id;\n address callbackAddress;\n bytes4 callbackFunctionId;\n uint256 nonce;\n BufferChainlink.buffer buf;\n }\n\n /**\n * @notice Initializes a Chainlink request\n * @dev Sets the ID, callback address, and callback function signature on the request\n * @param self The uninitialized request\n * @param jobId The Job Specification ID\n * @param callbackAddr The callback address\n * @param callbackFunc The callback function signature\n * @return The initialized request\n */\n function initialize(\n Request memory self,\n bytes32 jobId,\n address callbackAddr,\n bytes4 callbackFunc\n ) internal pure returns (Chainlink.Request memory) {\n BufferChainlink.init(self.buf, defaultBufferSize);\n self.id = jobId;\n self.callbackAddress = callbackAddr;\n self.callbackFunctionId = callbackFunc;\n return self;\n }\n\n /**\n * @notice Sets the data for the buffer without encoding CBOR on-chain\n * @dev CBOR can be closed with curly-brackets {} or they can be left off\n * @param self The initialized request\n * @param data The CBOR data\n */\n function setBuffer(Request memory self, bytes memory data) internal pure {\n BufferChainlink.init(self.buf, data.length);\n BufferChainlink.append(self.buf, data);\n }\n\n /**\n * @notice Adds a string value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The string value to add\n */\n function add(\n Request memory self,\n string memory key,\n string memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeString(value);\n }\n\n /**\n * @notice Adds a bytes value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The bytes value to add\n */\n function addBytes(\n Request memory self,\n string memory key,\n bytes memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeBytes(value);\n }\n\n /**\n * @notice Adds a int256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The int256 value to add\n */\n function addInt(\n Request memory self,\n string memory key,\n int256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeInt(value);\n }\n\n /**\n * @notice Adds a uint256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The uint256 value to add\n */\n function addUint(\n Request memory self,\n string memory key,\n uint256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeUInt(value);\n }\n\n /**\n * @notice Adds an array of strings to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param values The array of string values to add\n */\n function addStringArray(\n Request memory self,\n string memory key,\n string[] memory values\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.startArray();\n for (uint256 i = 0; i < values.length; i++) {\n self.buf.encodeString(values[i]);\n }\n self.buf.endSequence();\n }\n}\n"},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./Chainlink.sol\";\nimport \"./interfaces/ENSInterface.sol\";\nimport \"./interfaces/LinkTokenInterface.sol\";\nimport \"./interfaces/ChainlinkRequestInterface.sol\";\nimport \"./interfaces/OperatorInterface.sol\";\nimport \"./interfaces/PointerInterface.sol\";\nimport {ENSResolver as ENSResolver_Chainlink} from \"./vendor/ENSResolver.sol\";\n\n/**\n * @title The ChainlinkClient contract\n * @notice Contract writers can inherit this contract in order to create requests for the\n * Chainlink network\n */\nabstract contract ChainlinkClient {\n using Chainlink for Chainlink.Request;\n\n uint256 internal constant LINK_DIVISIBILITY = 10**18;\n uint256 private constant AMOUNT_OVERRIDE = 0;\n address private constant SENDER_OVERRIDE = address(0);\n uint256 private constant ORACLE_ARGS_VERSION = 1;\n uint256 private constant OPERATOR_ARGS_VERSION = 2;\n bytes32 private constant ENS_TOKEN_SUBNAME = keccak256(\"link\");\n bytes32 private constant ENS_ORACLE_SUBNAME = keccak256(\"oracle\");\n address private constant LINK_TOKEN_POINTER = 0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571;\n\n ENSInterface private s_ens;\n bytes32 private s_ensNode;\n LinkTokenInterface private s_link;\n OperatorInterface private s_oracle;\n uint256 private s_requestCount = 1;\n mapping(bytes32 => address) private s_pendingRequests;\n\n event ChainlinkRequested(bytes32 indexed id);\n event ChainlinkFulfilled(bytes32 indexed id);\n event ChainlinkCancelled(bytes32 indexed id);\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackAddr address to operate the callback on\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildChainlinkRequest(\n bytes32 specId,\n address callbackAddr,\n bytes4 callbackFunctionSignature\n ) internal pure returns (Chainlink.Request memory) {\n Chainlink.Request memory req;\n return req.initialize(specId, callbackAddr, callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildOperatorRequest(bytes32 specId, bytes4 callbackFunctionSignature)\n internal\n view\n returns (Chainlink.Request memory)\n {\n Chainlink.Request memory req;\n return req.initialize(specId, address(this), callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev Calls `chainlinkRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendChainlinkRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n ChainlinkRequestInterface.oracleRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n address(this),\n req.callbackFunctionId,\n nonce,\n ORACLE_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev This function supports multi-word response\n * @dev Calls `sendOperatorRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendOperatorRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev This function supports multi-word response\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n OperatorInterface.operatorRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n req.callbackFunctionId,\n nonce,\n OPERATOR_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Make a request to an oracle\n * @param oracleAddress The address of the oracle for the request\n * @param nonce used to generate the request ID\n * @param payment The amount of LINK to send for the request\n * @param encodedRequest data encoded for request type specific format\n * @return requestId The request ID\n */\n function _rawRequest(\n address oracleAddress,\n uint256 nonce,\n uint256 payment,\n bytes memory encodedRequest\n ) private returns (bytes32 requestId) {\n requestId = keccak256(abi.encodePacked(this, nonce));\n s_pendingRequests[requestId] = oracleAddress;\n emit ChainlinkRequested(requestId);\n require(s_link.transferAndCall(oracleAddress, payment, encodedRequest), \"unable to transferAndCall to oracle\");\n }\n\n /**\n * @notice Allows a request to be cancelled if it has not been fulfilled\n * @dev Requires keeping track of the expiration value emitted from the oracle contract.\n * Deletes the request from the `pendingRequests` mapping.\n * Emits ChainlinkCancelled event.\n * @param requestId The request ID\n * @param payment The amount of LINK sent for the request\n * @param callbackFunc The callback function specified for the request\n * @param expiration The time of the expiration for the request\n */\n function cancelChainlinkRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunc,\n uint256 expiration\n ) internal {\n OperatorInterface requested = OperatorInterface(s_pendingRequests[requestId]);\n delete s_pendingRequests[requestId];\n emit ChainlinkCancelled(requestId);\n requested.cancelOracleRequest(requestId, payment, callbackFunc, expiration);\n }\n\n /**\n * @notice the next request count to be used in generating a nonce\n * @dev starts at 1 in order to ensure consistent gas cost\n * @return returns the next request count to be used in a nonce\n */\n function getNextRequestCount() internal view returns (uint256) {\n return s_requestCount;\n }\n\n /**\n * @notice Sets the stored oracle address\n * @param oracleAddress The address of the oracle contract\n */\n function setChainlinkOracle(address oracleAddress) internal {\n s_oracle = OperatorInterface(oracleAddress);\n }\n\n /**\n * @notice Sets the LINK token address\n * @param linkAddress The address of the LINK token contract\n */\n function setChainlinkToken(address linkAddress) internal {\n s_link = LinkTokenInterface(linkAddress);\n }\n\n /**\n * @notice Sets the Chainlink token address for the public\n * network as given by the Pointer contract\n */\n function setPublicChainlinkToken() internal {\n setChainlinkToken(PointerInterface(LINK_TOKEN_POINTER).getAddress());\n }\n\n /**\n * @notice Retrieves the stored address of the LINK token\n * @return The address of the LINK token\n */\n function chainlinkTokenAddress() internal view returns (address) {\n return address(s_link);\n }\n\n /**\n * @notice Retrieves the stored address of the oracle contract\n * @return The address of the oracle contract\n */\n function chainlinkOracleAddress() internal view returns (address) {\n return address(s_oracle);\n }\n\n /**\n * @notice Allows for a request which was created on another contract to be fulfilled\n * on this contract\n * @param oracleAddress The address of the oracle contract that will fulfill the request\n * @param requestId The request ID used for the response\n */\n function addChainlinkExternalRequest(address oracleAddress, bytes32 requestId) internal notPendingRequest(requestId) {\n s_pendingRequests[requestId] = oracleAddress;\n }\n\n /**\n * @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n * @dev Accounts for subnodes having different resolvers\n * @param ensAddress The address of the ENS contract\n * @param node The ENS node hash\n */\n function useChainlinkWithENS(address ensAddress, bytes32 node) internal {\n s_ens = ENSInterface(ensAddress);\n s_ensNode = node;\n bytes32 linkSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_TOKEN_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(linkSubnode));\n setChainlinkToken(resolver.addr(linkSubnode));\n updateChainlinkOracleWithENS();\n }\n\n /**\n * @notice Sets the stored oracle contract with the address resolved by ENS\n * @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously\n */\n function updateChainlinkOracleWithENS() internal {\n bytes32 oracleSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_ORACLE_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(oracleSubnode));\n setChainlinkOracle(resolver.addr(oracleSubnode));\n }\n\n /**\n * @notice Ensures that the fulfillment is valid for this contract\n * @dev Use if the contract developer prefers methods instead of modifiers for validation\n * @param requestId The request ID for fulfillment\n */\n function validateChainlinkCallback(bytes32 requestId)\n internal\n recordChainlinkFulfillment(requestId)\n // solhint-disable-next-line no-empty-blocks\n {\n\n }\n\n /**\n * @dev Reverts if the sender is not the oracle of the request.\n * Emits ChainlinkFulfilled event.\n * @param requestId The request ID for fulfillment\n */\n modifier recordChainlinkFulfillment(bytes32 requestId) {\n require(msg.sender == s_pendingRequests[requestId], \"Source must be the oracle of the request\");\n delete s_pendingRequests[requestId];\n emit ChainlinkFulfilled(requestId);\n _;\n }\n\n /**\n * @dev Reverts if the request is already pending\n * @param requestId The request ID for fulfillment\n */\n modifier notPendingRequest(bytes32 requestId) {\n require(s_pendingRequests[requestId] == address(0), \"Request is already pending\");\n _;\n }\n}\n"},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./ConfirmedOwnerWithProposal.sol\";\n\n/**\n * @title The ConfirmedOwner contract\n * @notice A contract with helpers for basic contract ownership.\n */\ncontract ConfirmedOwner is ConfirmedOwnerWithProposal {\n constructor(address newOwner) ConfirmedOwnerWithProposal(newOwner, address(0)) {}\n}\n"},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./interfaces/OwnableInterface.sol\";\n\n/**\n * @title The ConfirmedOwner contract\n * @notice A contract with helpers for basic contract ownership.\n */\ncontract ConfirmedOwnerWithProposal is OwnableInterface {\n address private s_owner;\n address private s_pendingOwner;\n\n event OwnershipTransferRequested(address indexed from, address indexed to);\n event OwnershipTransferred(address indexed from, address indexed to);\n\n constructor(address newOwner, address pendingOwner) {\n require(newOwner != address(0), \"Cannot set owner to zero\");\n\n s_owner = newOwner;\n if (pendingOwner != address(0)) {\n _transferOwnership(pendingOwner);\n }\n }\n\n /**\n * @notice Allows an owner to begin transferring ownership to a new address,\n * pending.\n */\n function transferOwnership(address to) public override onlyOwner {\n _transferOwnership(to);\n }\n\n /**\n * @notice Allows an ownership transfer to be completed by the recipient.\n */\n function acceptOwnership() external override {\n require(msg.sender == s_pendingOwner, \"Must be proposed owner\");\n\n address oldOwner = s_owner;\n s_owner = msg.sender;\n s_pendingOwner = address(0);\n\n emit OwnershipTransferred(oldOwner, msg.sender);\n }\n\n /**\n * @notice Get the current owner\n */\n function owner() public view override returns (address) {\n return s_owner;\n }\n\n /**\n * @notice validate, transfer ownership, and emit relevant events\n */\n function _transferOwnership(address to) private {\n require(to != msg.sender, \"Cannot transfer to self\");\n\n s_pendingOwner = to;\n\n emit OwnershipTransferRequested(s_owner, to);\n }\n\n /**\n * @notice validate access\n */\n function _validateOwnership() internal view {\n require(msg.sender == s_owner, \"Only callable by owner\");\n }\n\n /**\n * @notice Reverts if called by anyone other than the contract owner.\n */\n modifier onlyOwner() {\n _validateOwnership();\n _;\n }\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ChainlinkRequestInterface {\n function oracleRequest(\n address sender,\n uint256 requestPrice,\n bytes32 serviceAgreementID,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function cancelOracleRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunctionId,\n uint256 expiration\n ) external;\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ENSInterface {\n // Logged when the owner of a node assigns a new owner to a subnode.\n event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);\n\n // Logged when the owner of a node transfers ownership to a new account.\n event Transfer(bytes32 indexed node, address owner);\n\n // Logged when the resolver for a node changes.\n event NewResolver(bytes32 indexed node, address resolver);\n\n // Logged when the TTL of a node changes\n event NewTTL(bytes32 indexed node, uint64 ttl);\n\n function setSubnodeOwner(\n bytes32 node,\n bytes32 label,\n address owner\n ) external;\n\n function setResolver(bytes32 node, address resolver) external;\n\n function setOwner(bytes32 node, address owner) external;\n\n function setTTL(bytes32 node, uint64 ttl) external;\n\n function owner(bytes32 node) external view returns (address);\n\n function resolver(bytes32 node) external view returns (address);\n\n function ttl(bytes32 node) external view returns (uint64);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface LinkTokenInterface {\n function allowance(address owner, address spender) external view returns (uint256 remaining);\n\n function approve(address spender, uint256 value) external returns (bool success);\n\n function balanceOf(address owner) external view returns (uint256 balance);\n\n function decimals() external view returns (uint8 decimalPlaces);\n\n function decreaseApproval(address spender, uint256 addedValue) external returns (bool success);\n\n function increaseApproval(address spender, uint256 subtractedValue) external;\n\n function name() external view returns (string memory tokenName);\n\n function symbol() external view returns (string memory tokenSymbol);\n\n function totalSupply() external view returns (uint256 totalTokensIssued);\n\n function transfer(address to, uint256 value) external returns (bool success);\n\n function transferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool success);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./OracleInterface.sol\";\nimport \"./ChainlinkRequestInterface.sol\";\n\ninterface OperatorInterface is OracleInterface, ChainlinkRequestInterface {\n function operatorRequest(\n address sender,\n uint256 payment,\n bytes32 specId,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function fulfillOracleRequest2(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes calldata data\n ) external returns (bool);\n\n function ownerTransferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function distributeFunds(address payable[] calldata receivers, uint256[] calldata amounts) external payable;\n\n function getAuthorizedSenders() external returns (address[] memory);\n\n function setAuthorizedSenders(address[] calldata senders) external;\n\n function getForwarder() external returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface OracleInterface {\n function fulfillOracleRequest(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes32 data\n ) external returns (bool);\n\n function isAuthorizedSender(address node) external view returns (bool);\n\n function withdraw(address recipient, uint256 amount) external;\n\n function withdrawable() external view returns (uint256);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface OwnableInterface {\n function owner() external returns (address);\n\n function transferOwnership(address recipient) external;\n\n function acceptOwnership() external;\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface PointerInterface {\n function getAddress() external view returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/**\n * @dev A library for working with mutable byte buffers in Solidity.\n *\n * Byte buffers are mutable and expandable, and provide a variety of primitives\n * for writing to them. At any time you can fetch a bytes object containing the\n * current contents of the buffer. The bytes object should not be stored between\n * operations, as it may change due to resizing of the buffer.\n */\nlibrary BufferChainlink {\n /**\n * @dev Represents a mutable buffer. Buffers have a current value (buf) and\n * a capacity. The capacity may be longer than the current value, in\n * which case it can be extended without the need to allocate more memory.\n */\n struct buffer {\n bytes buf;\n uint256 capacity;\n }\n\n /**\n * @dev Initializes a buffer with an initial capacity.\n * @param buf The buffer to initialize.\n * @param capacity The number of bytes of space to allocate the buffer.\n * @return The buffer, for chaining.\n */\n function init(buffer memory buf, uint256 capacity) internal pure returns (buffer memory) {\n if (capacity % 32 != 0) {\n capacity += 32 - (capacity % 32);\n }\n // Allocate space for the buffer data\n buf.capacity = capacity;\n assembly {\n let ptr := mload(0x40)\n mstore(buf, ptr)\n mstore(ptr, 0)\n mstore(0x40, add(32, add(ptr, capacity)))\n }\n return buf;\n }\n\n /**\n * @dev Initializes a new buffer from an existing bytes object.\n * Changes to the buffer may mutate the original value.\n * @param b The bytes object to initialize the buffer with.\n * @return A new buffer.\n */\n function fromBytes(bytes memory b) internal pure returns (buffer memory) {\n buffer memory buf;\n buf.buf = b;\n buf.capacity = b.length;\n return buf;\n }\n\n function resize(buffer memory buf, uint256 capacity) private pure {\n bytes memory oldbuf = buf.buf;\n init(buf, capacity);\n append(buf, oldbuf);\n }\n\n function max(uint256 a, uint256 b) private pure returns (uint256) {\n if (a > b) {\n return a;\n }\n return b;\n }\n\n /**\n * @dev Sets buffer length to 0.\n * @param buf The buffer to truncate.\n * @return The original buffer, for chaining..\n */\n function truncate(buffer memory buf) internal pure returns (buffer memory) {\n assembly {\n let bufptr := mload(buf)\n mstore(bufptr, 0)\n }\n return buf;\n }\n\n /**\n * @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The start offset to write to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n require(len <= data.length);\n\n if (off + len > buf.capacity) {\n resize(buf, max(buf.capacity, len + off) * 2);\n }\n\n uint256 dest;\n uint256 src;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Start address = buffer address + offset + sizeof(buffer length)\n dest := add(add(bufptr, 32), off)\n // Update buffer length if we're extending it\n if gt(add(len, off), buflen) {\n mstore(bufptr, add(len, off))\n }\n src := add(data, 32)\n }\n\n // Copy word-length chunks while possible\n for (; len >= 32; len -= 32) {\n assembly {\n mstore(dest, mload(src))\n }\n dest += 32;\n src += 32;\n }\n\n // Copy remaining bytes\n unchecked {\n uint256 mask = (256**(32 - len)) - 1;\n assembly {\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n }\n }\n\n return buf;\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function append(\n buffer memory buf,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, len);\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function append(buffer memory buf, bytes memory data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, data.length);\n }\n\n /**\n * @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write the byte at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeUint8(\n buffer memory buf,\n uint256 off,\n uint8 data\n ) internal pure returns (buffer memory) {\n if (off >= buf.capacity) {\n resize(buf, buf.capacity * 2);\n }\n\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Address = buffer address + sizeof(buffer length) + off\n let dest := add(add(bufptr, off), 32)\n mstore8(dest, data)\n // Update buffer length if we extended it\n if eq(off, buflen) {\n mstore(bufptr, add(buflen, 1))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendUint8(buffer memory buf, uint8 data) internal pure returns (buffer memory) {\n return writeUint8(buf, buf.buf.length, data);\n }\n\n /**\n * @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (left-aligned).\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes32 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n unchecked {\n uint256 mask = (256**len) - 1;\n // Right-align data\n data = data >> (8 * (32 - len));\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + sizeof(buffer length) + off + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n }\n return buf;\n }\n\n /**\n * @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeBytes20(\n buffer memory buf,\n uint256 off,\n bytes20 data\n ) internal pure returns (buffer memory) {\n return write(buf, off, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chhaining.\n */\n function appendBytes20(buffer memory buf, bytes20 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendBytes32(buffer memory buf, bytes32 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, 32);\n }\n\n /**\n * @dev Writes an integer to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (right-aligned).\n * @return The original buffer, for chaining.\n */\n function writeInt(\n buffer memory buf,\n uint256 off,\n uint256 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n uint256 mask = (256**len) - 1;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + off + sizeof(buffer length) + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the end of the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer.\n */\n function appendInt(\n buffer memory buf,\n uint256 data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return writeInt(buf, buf.buf.length, data, len);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.4.19;\n\nimport {BufferChainlink} from \"./BufferChainlink.sol\";\n\nlibrary CBORChainlink {\n using BufferChainlink for BufferChainlink.buffer;\n\n uint8 private constant MAJOR_TYPE_INT = 0;\n uint8 private constant MAJOR_TYPE_NEGATIVE_INT = 1;\n uint8 private constant MAJOR_TYPE_BYTES = 2;\n uint8 private constant MAJOR_TYPE_STRING = 3;\n uint8 private constant MAJOR_TYPE_ARRAY = 4;\n uint8 private constant MAJOR_TYPE_MAP = 5;\n uint8 private constant MAJOR_TYPE_TAG = 6;\n uint8 private constant MAJOR_TYPE_CONTENT_FREE = 7;\n\n uint8 private constant TAG_TYPE_BIGNUM = 2;\n uint8 private constant TAG_TYPE_NEGATIVE_BIGNUM = 3;\n\n function encodeFixedNumeric(BufferChainlink.buffer memory buf, uint8 major, uint64 value) private pure {\n if(value <= 23) {\n buf.appendUint8(uint8((major << 5) | value));\n } else if (value <= 0xFF) {\n buf.appendUint8(uint8((major << 5) | 24));\n buf.appendInt(value, 1);\n } else if (value <= 0xFFFF) {\n buf.appendUint8(uint8((major << 5) | 25));\n buf.appendInt(value, 2);\n } else if (value <= 0xFFFFFFFF) {\n buf.appendUint8(uint8((major << 5) | 26));\n buf.appendInt(value, 4);\n } else {\n buf.appendUint8(uint8((major << 5) | 27));\n buf.appendInt(value, 8);\n }\n }\n\n function encodeIndefiniteLengthType(BufferChainlink.buffer memory buf, uint8 major) private pure {\n buf.appendUint8(uint8((major << 5) | 31));\n }\n\n function encodeUInt(BufferChainlink.buffer memory buf, uint value) internal pure {\n if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, value);\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(value));\n }\n }\n\n function encodeInt(BufferChainlink.buffer memory buf, int value) internal pure {\n if(value < -0x10000000000000000) {\n encodeSignedBigNum(buf, value);\n } else if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, uint(value));\n } else if(value >= 0) {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(uint256(value)));\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_NEGATIVE_INT, uint64(uint256(-1 - value)));\n }\n }\n\n function encodeBytes(BufferChainlink.buffer memory buf, bytes memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_BYTES, uint64(value.length));\n buf.append(value);\n }\n\n function encodeBigNum(BufferChainlink.buffer memory buf, uint value) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_BIGNUM));\n encodeBytes(buf, abi.encode(value));\n }\n\n function encodeSignedBigNum(BufferChainlink.buffer memory buf, int input) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_NEGATIVE_BIGNUM));\n encodeBytes(buf, abi.encode(uint256(-1 - input)));\n }\n\n function encodeString(BufferChainlink.buffer memory buf, string memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_STRING, uint64(bytes(value).length));\n buf.append(bytes(value));\n }\n\n function startArray(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_ARRAY);\n }\n\n function startMap(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_MAP);\n }\n\n function endSequence(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_CONTENT_FREE);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nabstract contract ENSResolver {\n function addr(bytes32 node) public view virtual returns (address);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n enum Rounding {\n Down, // Toward negative infinity\n Up, // Toward infinity\n Zero // Toward zero\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds up instead\n * of rounding down.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n * with further edits by Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod0 := mul(x, y)\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n require(denominator > prod1, \"Math: mulDiv overflow\");\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\n // See https://cs.stackexchange.com/q/138556/92363.\n\n // Does not overflow because the denominator cannot be zero at this stage in the function.\n uint256 twos = denominator & (~denominator + 1);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\n // in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2, rounded down, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10, rounded down, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256, rounded down, of a positive value.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol)\n\npragma solidity ^0.8.0;\n\n// CAUTION\n// This version of SafeMath should only be used with Solidity 0.8 or later,\n// because it relies on the compiler's built in overflow checks.\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations.\n *\n * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler\n * now has built in overflow checking.\n */\nlibrary SafeMath {\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 unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction 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 unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\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 unchecked {\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 /**\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 unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\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 unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\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 return a + b;\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 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 return a * b;\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.\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\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 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 unchecked {\n require(b <= a, errorMessage);\n return a - b;\n }\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 * 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 unchecked {\n require(b > 0, errorMessage);\n return a / b;\n }\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 unchecked {\n require(b > 0, errorMessage);\n return a % b;\n }\n }\n}\n"},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\nimport \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n uint8 private constant _ADDRESS_LENGTH = 20;\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toString(int256 value) internal pure returns (string memory) {\n return string(abi.encodePacked(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value))));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = _SYMBOLS[value & 0xf];\n value >>= 4;\n }\n require(value == 0, \"Strings: hex length insufficient\");\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n"},"contracts/AdmodConsumer.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.17;\n\nimport \"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\";\nimport \"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\";\nimport \"@openzeppelin/contracts/utils/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\"; \n\ncontract AdmodConsumer is ChainlinkClient, ConfirmedOwner {\n using Chainlink for Chainlink.Request;\n\n using SafeMath for uint;\n\n\n // the earning amount of this week\n uint256 public earning;\n\n // the amount of LINK bought from Transak with $earning amount\n uint256 public linkAmount;\n \n // 2 separate jobId for google AdmodAPI and TransakAPI\n bytes32 public ggJobId;\n bytes32 public transakJobId;\n\n uint256 private fee;\n mapping(uint256 => uint256) public earningReports;\n bool public isEligible;\n\n /** \n * @notice\n * @beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it\n * In this 0xSplits contract will contain the list of charity organizations' addresses\n */\n address public beneficiary;\n\n event RequestEarning(bytes32 indexed requestId, uint256 earning);\n event RequestBoughtAmount(bytes32 indexed requestId, uint256 linkAmount);\n\n\n /**\n * @notice Initialize the link token and target oracle\n *\n * Mumbai Testnet details:\n * Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB\n * Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 \n * ggJobId: b1d42cd54a3a4200b1f725a68e488888\n * transakJobId: b1d42cd54a3a4200b1f725a68e488999\n */\n constructor(address _owner, address _beneficiary) ConfirmedOwner(_owner) {\n setChainlinkToken(0x326C977E6efc84E512bB9C30f76E30c160eD06FB);\n setChainlinkOracle(0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5);\n ggJobId = \"b1d42cd54a3a4200b1f725a68e488888\";\n transakJobId = \"b1d42cd54a3a4200b1f725a68e488999\";\n fee = (1 * LINK_DIVISIBILITY) / 10; // 0,1 * 10**18 (Varies by network and job)\n beneficiary = _beneficiary;\n isEligible = false;\n }\n\n /**\n * Create a Chainlink request to retrieve API response, find the target\n * data, then multiply by 1000000000000000000 (to remove decimal places from data).\n */\n function requestWeekEarning() public returns (bytes32 requestId) {\n Chainlink.Request memory req = buildChainlinkRequest(\n ggJobId,\n address(this),\n this.fulfill.selector\n );\n\n // Set the URL to perform the GET request on\n req.add(\n \"get\",\n \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\"\n );\n\n req.add(\"path\", \"row,metricValues,ESTIMATED_EARNINGS,microsValue\");\n\n // Sends the request\n return sendChainlinkRequest(req, fee);\n }\n\n /** @notice\n * Receive the response in the form of uint256\n */\n function fulfill(\n bytes32 _requestId,\n uint256 _earning\n ) public recordChainlinkFulfillment(_requestId) {\n emit RequestEarning(_requestId, _earning);\n /** \n @notice earning will be a total of earning this week subtract for Transak transaction fee\n */\n earning = _earning;\n _requestTransakValidation();\n }\n\n function _requestTransakValidation() private returns (bytes32 requestId) {\n Chainlink.Request memory req = buildChainlinkRequest(\n transakJobId,\n address(this),\n this.fulfillTransakPrice.selector\n );\n\n uint256 headEarning = SafeMath.div(earning,1000000);\n uint256 tailEarning = SafeMath.mod(earning,1000000);\n\n string memory apiUrl = string(abi.encodePacked(\"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount=\",\n Strings.toString(headEarning),\".\",Strings.toString(tailEarning)));\n\n // Set the URL to perform the GET request on\n req.add(\n \"get\",\n apiUrl\n );\n\n req.add(\"path\", \"response,cryptoAmount\");\n req.addUint(\"times\", LINK_DIVISIBILITY);\n\n // Sends the request\n return sendChainlinkRequest(req, fee);\n }\n\n function fulfillTransakPrice(\n bytes32 _requestId,\n uint256 _linkAmount\n ) public recordChainlinkFulfillment(_requestId) {\n emit RequestBoughtAmount(_requestId, _linkAmount);\n /** \n @notice earning will be a total of earning this week subtract for Transak transaction fee\n */\n linkAmount = _linkAmount;\n _checkEligibleEarning();\n }\n\n /** @notice\n * Allow withdraw of Link tokens from the contract\n * LINK will always be sent to beneficiary 0xSplits contract\n */\n\n function withdrawLink() public onlyOwner {\n LinkTokenInterface link = LinkTokenInterface(chainlinkTokenAddress());\n require(\n link.transfer(beneficiary, link.balanceOf(address(this))),\n \"Unable to transfer\"\n );\n }\n\n function _checkEligibleEarning() private {\n LinkTokenInterface link = LinkTokenInterface(chainlinkTokenAddress());\n if (link.balanceOf(beneficiary) == linkAmount)\n {\n earningReports[block.number] = earning;\n isEligible = true;\n }\n else isEligible = false;\n }\n\n}"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268]},"id":269,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:0"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","file":"./vendor/CBORChainlink.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":2364,"src":"57:57:0","symbolAliases":[{"foreign":{"id":2,"name":"CBORChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2363,"src":"65:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./vendor/BufferChainlink.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":1917,"src":"115:61:0","symbolAliases":[{"foreign":{"id":4,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"123:15:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Chainlink","contractDependencies":[],"contractKind":"library","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"178:114:0","text":" @title Library for common Chainlink functions\n @dev Uses imported CBOR library for encoding to buffer"},"fullyImplemented":true,"id":268,"linearizedBaseContracts":[268],"name":"Chainlink","nameLocation":"301:9:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":9,"mutability":"constant","name":"defaultBufferSize","nameLocation":"341:17:0","nodeType":"VariableDeclaration","scope":268,"src":"315:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"323536","id":8,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"361:3:0","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"internal"},{"global":false,"id":13,"libraryName":{"id":10,"name":"CBORChainlink","nameLocations":["420:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":2363,"src":"420:13:0"},"nodeType":"UsingForDirective","src":"414:47:0","typeName":{"id":12,"nodeType":"UserDefinedTypeName","pathNode":{"id":11,"name":"BufferChainlink.buffer","nameLocations":["438:15:0","454:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"438:22:0"},"referencedDeclaration":1402,"src":"438:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"canonicalName":"Chainlink.Request","id":25,"members":[{"constant":false,"id":15,"mutability":"mutable","name":"id","nameLocation":"494:2:0","nodeType":"VariableDeclaration","scope":25,"src":"486:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14,"name":"bytes32","nodeType":"ElementaryTypeName","src":"486:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"callbackAddress","nameLocation":"510:15:0","nodeType":"VariableDeclaration","scope":25,"src":"502:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"502:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"538:18:0","nodeType":"VariableDeclaration","scope":25,"src":"531:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18,"name":"bytes4","nodeType":"ElementaryTypeName","src":"531:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"nonce","nameLocation":"570:5:0","nodeType":"VariableDeclaration","scope":25,"src":"562:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24,"mutability":"mutable","name":"buf","nameLocation":"604:3:0","nodeType":"VariableDeclaration","scope":25,"src":"581:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":23,"nodeType":"UserDefinedTypeName","pathNode":{"id":22,"name":"BufferChainlink.buffer","nameLocations":["581:15:0","597:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"581:22:0"},"referencedDeclaration":1402,"src":"581:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"name":"Request","nameLocation":"472:7:0","nodeType":"StructDefinition","scope":268,"src":"465:147:0","visibility":"public"},{"body":{"id":69,"nodeType":"Block","src":"1155:183:0","statements":[{"expression":{"arguments":[{"expression":{"id":44,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1182:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":45,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1187:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1182:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":46,"name":"defaultBufferSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9,"src":"1192:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1161:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":43,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1177:4:0","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"1161:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":48,"nodeType":"ExpressionStatement","src":"1161:49:0"},{"expression":{"id":53,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1216:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":51,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1221:2:0","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"1216:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"1226:5:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1216:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54,"nodeType":"ExpressionStatement","src":"1216:15:0"},{"expression":{"id":59,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1237:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":57,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1242:15:0","memberName":"callbackAddress","nodeType":"MemberAccess","referencedDeclaration":17,"src":"1237:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"1260:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1237:35:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":60,"nodeType":"ExpressionStatement","src":"1237:35:0"},{"expression":{"id":65,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":61,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1278:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":63,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1283:18:0","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"1278:23:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":64,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"1304:12:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1278:38:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":66,"nodeType":"ExpressionStatement","src":"1278:38:0"},{"expression":{"id":67,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1329:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":40,"id":68,"nodeType":"Return","src":"1322:11:0"}]},"documentation":{"id":26,"nodeType":"StructuredDocumentation","src":"616:368:0","text":" @notice Initializes a Chainlink request\n @dev Sets the ID, callback address, and callback function signature on the request\n @param self The uninitialized request\n @param jobId The Job Specification ID\n @param callbackAddr The callback address\n @param callbackFunc The callback function signature\n @return The initialized request"},"id":70,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"996:10:0","nodeType":"FunctionDefinition","parameters":{"id":36,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29,"mutability":"mutable","name":"self","nameLocation":"1027:4:0","nodeType":"VariableDeclaration","scope":70,"src":"1012:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":28,"nodeType":"UserDefinedTypeName","pathNode":{"id":27,"name":"Request","nameLocations":["1012:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1012:7:0"},"referencedDeclaration":25,"src":"1012:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":31,"mutability":"mutable","name":"jobId","nameLocation":"1045:5:0","nodeType":"VariableDeclaration","scope":70,"src":"1037:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":30,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1037:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33,"mutability":"mutable","name":"callbackAddr","nameLocation":"1064:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1056:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35,"mutability":"mutable","name":"callbackFunc","nameLocation":"1089:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1082:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":34,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1082:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1006:99:0"},"returnParameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70,"src":"1129:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":38,"nodeType":"UserDefinedTypeName","pathNode":{"id":37,"name":"Chainlink.Request","nameLocations":["1129:9:0","1139:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1129:17:0"},"referencedDeclaration":25,"src":"1129:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1128:26:0"},"scope":268,"src":"987:351:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":96,"nodeType":"Block","src":"1648:98:0","statements":[{"expression":{"arguments":[{"expression":{"id":82,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1675:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":83,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1680:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1675:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"id":84,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1685:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1690:6:0","memberName":"length","nodeType":"MemberAccess","src":"1685:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1654:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":81,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1670:4:0","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"1654:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":86,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":87,"nodeType":"ExpressionStatement","src":"1654:43:0"},{"expression":{"arguments":[{"expression":{"id":91,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1726:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":92,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1731:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1726:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":93,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1736:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":88,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1703:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:6:0","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"1703:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1703:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":95,"nodeType":"ExpressionStatement","src":"1703:38:0"}]},"documentation":{"id":71,"nodeType":"StructuredDocumentation","src":"1342:230:0","text":" @notice Sets the data for the buffer without encoding CBOR on-chain\n @dev CBOR can be closed with curly-brackets {} or they can be left off\n @param self The initialized request\n @param data The CBOR data"},"id":97,"implemented":true,"kind":"function","modifiers":[],"name":"setBuffer","nameLocation":"1584:9:0","nodeType":"FunctionDefinition","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"self","nameLocation":"1609:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1594:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":73,"nodeType":"UserDefinedTypeName","pathNode":{"id":72,"name":"Request","nameLocations":["1594:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1594:7:0"},"referencedDeclaration":25,"src":"1594:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":76,"mutability":"mutable","name":"data","nameLocation":"1628:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1615:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75,"name":"bytes","nodeType":"ElementaryTypeName","src":"1615:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1593:40:0"},"returnParameters":{"id":78,"nodeType":"ParameterList","parameters":[],"src":"1648:0:0"},"scope":268,"src":"1575:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":124,"nodeType":"Block","src":"2055:71:0","statements":[{"expression":{"arguments":[{"id":113,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2083:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":108,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2061:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2066:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2061:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2070:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2061:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2061:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":115,"nodeType":"ExpressionStatement","src":"2061:26:0"},{"expression":{"arguments":[{"id":121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"2115:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2093:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2098:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2093:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2102:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2093:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2093:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":123,"nodeType":"ExpressionStatement","src":"2093:28:0"}]},"documentation":{"id":98,"nodeType":"StructuredDocumentation","src":"1750:198:0","text":" @notice Adds a string value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The string value to add"},"id":125,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"1960:3:0","nodeType":"FunctionDefinition","parameters":{"id":106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"self","nameLocation":"1984:4:0","nodeType":"VariableDeclaration","scope":125,"src":"1969:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":100,"nodeType":"UserDefinedTypeName","pathNode":{"id":99,"name":"Request","nameLocations":["1969:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1969:7:0"},"referencedDeclaration":25,"src":"1969:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":103,"mutability":"mutable","name":"key","nameLocation":"2008:3:0","nodeType":"VariableDeclaration","scope":125,"src":"1994:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":102,"name":"string","nodeType":"ElementaryTypeName","src":"1994:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":105,"mutability":"mutable","name":"value","nameLocation":"2031:5:0","nodeType":"VariableDeclaration","scope":125,"src":"2017:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":104,"name":"string","nodeType":"ElementaryTypeName","src":"2017:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1963:77:0"},"returnParameters":{"id":107,"nodeType":"ParameterList","parameters":[],"src":"2055:0:0"},"scope":268,"src":"1951:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":152,"nodeType":"Block","src":"2437:70:0","statements":[{"expression":{"arguments":[{"id":141,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"2465:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":136,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2443:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2448:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2443:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2452:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2443:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":143,"nodeType":"ExpressionStatement","src":"2443:26:0"},{"expression":{"arguments":[{"id":149,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"2496:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":144,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2475:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2480:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2475:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2484:11:0","memberName":"encodeBytes","nodeType":"MemberAccess","referencedDeclaration":2227,"src":"2475:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2475:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":151,"nodeType":"ExpressionStatement","src":"2475:27:0"}]},"documentation":{"id":126,"nodeType":"StructuredDocumentation","src":"2130:196:0","text":" @notice Adds a bytes value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The bytes value to add"},"id":153,"implemented":true,"kind":"function","modifiers":[],"name":"addBytes","nameLocation":"2338:8:0","nodeType":"FunctionDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"self","nameLocation":"2367:4:0","nodeType":"VariableDeclaration","scope":153,"src":"2352:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":128,"nodeType":"UserDefinedTypeName","pathNode":{"id":127,"name":"Request","nameLocations":["2352:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2352:7:0"},"referencedDeclaration":25,"src":"2352:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":131,"mutability":"mutable","name":"key","nameLocation":"2391:3:0","nodeType":"VariableDeclaration","scope":153,"src":"2377:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":130,"name":"string","nodeType":"ElementaryTypeName","src":"2377:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"value","nameLocation":"2413:5:0","nodeType":"VariableDeclaration","scope":153,"src":"2400:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":132,"name":"bytes","nodeType":"ElementaryTypeName","src":"2400:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2346:76:0"},"returnParameters":{"id":135,"nodeType":"ParameterList","parameters":[],"src":"2437:0:0"},"scope":268,"src":"2329:178:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":180,"nodeType":"Block","src":"2812:68:0","statements":[{"expression":{"arguments":[{"id":169,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":159,"src":"2840:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":164,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2818:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2823:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2818:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2827:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2818:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":171,"nodeType":"ExpressionStatement","src":"2818:26:0"},{"expression":{"arguments":[{"id":177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"2869:5:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"expression":{"id":172,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2850:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2855:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2850:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2859:9:0","memberName":"encodeInt","nodeType":"MemberAccess","referencedDeclaration":2202,"src":"2850:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_int256_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":179,"nodeType":"ExpressionStatement","src":"2850:25:0"}]},"documentation":{"id":154,"nodeType":"StructuredDocumentation","src":"2511:198:0","text":" @notice Adds a int256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The int256 value to add"},"id":181,"implemented":true,"kind":"function","modifiers":[],"name":"addInt","nameLocation":"2721:6:0","nodeType":"FunctionDefinition","parameters":{"id":162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":157,"mutability":"mutable","name":"self","nameLocation":"2748:4:0","nodeType":"VariableDeclaration","scope":181,"src":"2733:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":156,"nodeType":"UserDefinedTypeName","pathNode":{"id":155,"name":"Request","nameLocations":["2733:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2733:7:0"},"referencedDeclaration":25,"src":"2733:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":159,"mutability":"mutable","name":"key","nameLocation":"2772:3:0","nodeType":"VariableDeclaration","scope":181,"src":"2758:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":158,"name":"string","nodeType":"ElementaryTypeName","src":"2758:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":161,"mutability":"mutable","name":"value","nameLocation":"2788:5:0","nodeType":"VariableDeclaration","scope":181,"src":"2781:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":160,"name":"int256","nodeType":"ElementaryTypeName","src":"2781:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2727:70:0"},"returnParameters":{"id":163,"nodeType":"ParameterList","parameters":[],"src":"2812:0:0"},"scope":268,"src":"2712:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":208,"nodeType":"Block","src":"3189:69:0","statements":[{"expression":{"arguments":[{"id":197,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":187,"src":"3217:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":192,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3195:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3200:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3195:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3204:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3195:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3195:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":199,"nodeType":"ExpressionStatement","src":"3195:26:0"},{"expression":{"arguments":[{"id":205,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"3247:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3227:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3232:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3227:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3236:10:0","memberName":"encodeUInt","nodeType":"MemberAccess","referencedDeclaration":2136,"src":"3227:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3227:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":207,"nodeType":"ExpressionStatement","src":"3227:26:0"}]},"documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"2884:200:0","text":" @notice Adds a uint256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The uint256 value to add"},"id":209,"implemented":true,"kind":"function","modifiers":[],"name":"addUint","nameLocation":"3096:7:0","nodeType":"FunctionDefinition","parameters":{"id":190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"self","nameLocation":"3124:4:0","nodeType":"VariableDeclaration","scope":209,"src":"3109:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":184,"nodeType":"UserDefinedTypeName","pathNode":{"id":183,"name":"Request","nameLocations":["3109:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3109:7:0"},"referencedDeclaration":25,"src":"3109:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":187,"mutability":"mutable","name":"key","nameLocation":"3148:3:0","nodeType":"VariableDeclaration","scope":209,"src":"3134:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":186,"name":"string","nodeType":"ElementaryTypeName","src":"3134:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":189,"mutability":"mutable","name":"value","nameLocation":"3165:5:0","nodeType":"VariableDeclaration","scope":209,"src":"3157:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":188,"name":"uint256","nodeType":"ElementaryTypeName","src":"3157:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3103:71:0"},"returnParameters":{"id":191,"nodeType":"ParameterList","parameters":[],"src":"3189:0:0"},"scope":268,"src":"3087:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":266,"nodeType":"Block","src":"3597:188:0","statements":[{"expression":{"arguments":[{"id":226,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":215,"src":"3625:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":221,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3603:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3608:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3603:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3612:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3603:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3603:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":228,"nodeType":"ExpressionStatement","src":"3603:26:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3635:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3640:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3635:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3644:10:0","memberName":"startArray","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"3635:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":235,"nodeType":"ExpressionStatement","src":"3635:21:0"},{"body":{"id":257,"nodeType":"Block","src":"3706:47:0","statements":[{"expression":{"arguments":[{"baseExpression":{"id":252,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3736:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":254,"indexExpression":{"id":253,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3743:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3736:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3714:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3719:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3714:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3723:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3714:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3714:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":256,"nodeType":"ExpressionStatement","src":"3714:32:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3682:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":241,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3686:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3693:6:0","memberName":"length","nodeType":"MemberAccess","src":"3686:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3682:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":258,"initializationExpression":{"assignments":[237],"declarations":[{"constant":false,"id":237,"mutability":"mutable","name":"i","nameLocation":"3675:1:0","nodeType":"VariableDeclaration","scope":258,"src":"3667:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":236,"name":"uint256","nodeType":"ElementaryTypeName","src":"3667:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":239,"initialValue":{"hexValue":"30","id":238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3679:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3667:13:0"},"loopExpression":{"expression":{"id":245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3701:3:0","subExpression":{"id":244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3701:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":246,"nodeType":"ExpressionStatement","src":"3701:3:0"},"nodeType":"ForStatement","src":"3662:91:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":259,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3758:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3763:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3758:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3767:11:0","memberName":"endSequence","nodeType":"MemberAccess","referencedDeclaration":2362,"src":"3758:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3758:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":265,"nodeType":"ExpressionStatement","src":"3758:22:0"}]},"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"3262:214:0","text":" @notice Adds an array of strings to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param values The array of string values to add"},"id":267,"implemented":true,"kind":"function","modifiers":[],"name":"addStringArray","nameLocation":"3488:14:0","nodeType":"FunctionDefinition","parameters":{"id":219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":213,"mutability":"mutable","name":"self","nameLocation":"3523:4:0","nodeType":"VariableDeclaration","scope":267,"src":"3508:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":212,"nodeType":"UserDefinedTypeName","pathNode":{"id":211,"name":"Request","nameLocations":["3508:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3508:7:0"},"referencedDeclaration":25,"src":"3508:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":215,"mutability":"mutable","name":"key","nameLocation":"3547:3:0","nodeType":"VariableDeclaration","scope":267,"src":"3533:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":214,"name":"string","nodeType":"ElementaryTypeName","src":"3533:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":218,"mutability":"mutable","name":"values","nameLocation":"3572:6:0","nodeType":"VariableDeclaration","scope":267,"src":"3556:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":216,"name":"string","nodeType":"ElementaryTypeName","src":"3556:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":217,"nodeType":"ArrayTypeName","src":"3556:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"3502:80:0"},"returnParameters":{"id":220,"nodeType":"ParameterList","parameters":[],"src":"3597:0:0"},"scope":268,"src":"3479:306:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":269,"src":"293:3494:0","usedErrors":[]}],"src":"32:3756:0"},"id":0},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[1076],"ENSInterface":[1156],"ENSResolver_Chainlink":[2373],"LinkTokenInterface":[1251],"OperatorInterface":[1331],"OracleInterface":[1370],"PointerInterface":[1394]},"id":862,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":270,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:1"},{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","file":"./Chainlink.sol","id":271,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":269,"src":"57:25:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","file":"./interfaces/ENSInterface.sol","id":272,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1157,"src":"83:39:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","file":"./interfaces/LinkTokenInterface.sol","id":273,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1252,"src":"123:45:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./interfaces/ChainlinkRequestInterface.sol","id":274,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1077,"src":"169:52:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","file":"./interfaces/OperatorInterface.sol","id":275,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1332,"src":"222:44:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","file":"./interfaces/PointerInterface.sol","id":276,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1395,"src":"267:43:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","file":"./vendor/ENSResolver.sol","id":278,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":2374,"src":"311:78:1","symbolAliases":[{"foreign":{"id":277,"name":"ENSResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"319:11:1","typeDescriptions":{}},"local":"ENSResolver_Chainlink","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"ChainlinkClient","contractDependencies":[],"contractKind":"contract","documentation":{"id":279,"nodeType":"StructuredDocumentation","src":"391:157:1","text":" @title The ChainlinkClient contract\n @notice Contract writers can inherit this contract in order to create requests for the\n Chainlink network"},"fullyImplemented":true,"id":861,"linearizedBaseContracts":[861],"name":"ChainlinkClient","nameLocation":"567:15:1","nodeType":"ContractDefinition","nodes":[{"global":false,"id":283,"libraryName":{"id":280,"name":"Chainlink","nameLocations":["593:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":268,"src":"593:9:1"},"nodeType":"UsingForDirective","src":"587:38:1","typeName":{"id":282,"nodeType":"UserDefinedTypeName","pathNode":{"id":281,"name":"Chainlink.Request","nameLocations":["607:9:1","617:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"607:17:1"},"referencedDeclaration":25,"src":"607:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"constant":true,"id":288,"mutability":"constant","name":"LINK_DIVISIBILITY","nameLocation":"655:17:1","nodeType":"VariableDeclaration","scope":861,"src":"629:52:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":284,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"675:2:1","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"679:2:1","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"675:6:1","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"internal"},{"constant":true,"id":291,"mutability":"constant","name":"AMOUNT_OVERRIDE","nameLocation":"710:15:1","nodeType":"VariableDeclaration","scope":861,"src":"685:44:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":289,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"728:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":297,"mutability":"constant","name":"SENDER_OVERRIDE","nameLocation":"758:15:1","nodeType":"VariableDeclaration","scope":861,"src":"733:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":292,"name":"address","nodeType":"ElementaryTypeName","src":"733:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"30","id":295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"784:1:1","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":294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"776:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":293,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:1","typeDescriptions":{}}},"id":296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"776:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":true,"id":300,"mutability":"constant","name":"ORACLE_ARGS_VERSION","nameLocation":"815:19:1","nodeType":"VariableDeclaration","scope":861,"src":"790:48:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":298,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":303,"mutability":"constant","name":"OPERATOR_ARGS_VERSION","nameLocation":"867:21:1","nodeType":"VariableDeclaration","scope":861,"src":"842:50:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint256","nodeType":"ElementaryTypeName","src":"842:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":308,"mutability":"constant","name":"ENS_TOKEN_SUBNAME","nameLocation":"921:17:1","nodeType":"VariableDeclaration","scope":861,"src":"896:62:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"896:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6c696e6b","id":306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"951:6:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""},"value":"link"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""}],"id":305,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"941:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"941:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":313,"mutability":"constant","name":"ENS_ORACLE_SUBNAME","nameLocation":"987:18:1","nodeType":"VariableDeclaration","scope":861,"src":"962:65:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"962:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6f7261636c65","id":311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1018:8:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""},"value":"oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""}],"id":310,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1008:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1008:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":316,"mutability":"constant","name":"LINK_TOKEN_POINTER","nameLocation":"1056:18:1","nodeType":"VariableDeclaration","scope":861,"src":"1031:88:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":314,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307843383962443445313633324433413433434230334141416435323632636265343033384263353731","id":315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571"},"visibility":"private"},{"constant":false,"id":319,"mutability":"mutable","name":"s_ens","nameLocation":"1145:5:1","nodeType":"VariableDeclaration","scope":861,"src":"1124:26:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"},"typeName":{"id":318,"nodeType":"UserDefinedTypeName","pathNode":{"id":317,"name":"ENSInterface","nameLocations":["1124:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":1156,"src":"1124:12:1"},"referencedDeclaration":1156,"src":"1124:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"visibility":"private"},{"constant":false,"id":321,"mutability":"mutable","name":"s_ensNode","nameLocation":"1170:9:1","nodeType":"VariableDeclaration","scope":861,"src":"1154:25:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1154:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":324,"mutability":"mutable","name":"s_link","nameLocation":"1210:6:1","nodeType":"VariableDeclaration","scope":861,"src":"1183:33:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"},"typeName":{"id":323,"nodeType":"UserDefinedTypeName","pathNode":{"id":322,"name":"LinkTokenInterface","nameLocations":["1183:18:1"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"1183:18:1"},"referencedDeclaration":1251,"src":"1183:18:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"visibility":"private"},{"constant":false,"id":327,"mutability":"mutable","name":"s_oracle","nameLocation":"1246:8:1","nodeType":"VariableDeclaration","scope":861,"src":"1220:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"},"typeName":{"id":326,"nodeType":"UserDefinedTypeName","pathNode":{"id":325,"name":"OperatorInterface","nameLocations":["1220:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":1331,"src":"1220:17:1"},"referencedDeclaration":1331,"src":"1220:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"visibility":"private"},{"constant":false,"id":330,"mutability":"mutable","name":"s_requestCount","nameLocation":"1274:14:1","nodeType":"VariableDeclaration","scope":861,"src":"1258:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":328,"name":"uint256","nodeType":"ElementaryTypeName","src":"1258:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1291:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":false,"id":334,"mutability":"mutable","name":"s_pendingRequests","nameLocation":"1332:17:1","nodeType":"VariableDeclaration","scope":861,"src":"1296:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":333,"keyType":{"id":331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1304:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1296:27:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":332,"name":"address","nodeType":"ElementaryTypeName","src":"1315:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"anonymous":false,"eventSelector":"b5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af9","id":338,"name":"ChainlinkRequested","nameLocation":"1360:18:1","nodeType":"EventDefinition","parameters":{"id":337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":336,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1395:2:1","nodeType":"VariableDeclaration","scope":338,"src":"1379:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1379:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1378:20:1"},"src":"1354:45:1"},{"anonymous":false,"eventSelector":"7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a","id":342,"name":"ChainlinkFulfilled","nameLocation":"1408:18:1","nodeType":"EventDefinition","parameters":{"id":341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":340,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1443:2:1","nodeType":"VariableDeclaration","scope":342,"src":"1427:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1427:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1426:20:1"},"src":"1402:45:1"},{"anonymous":false,"eventSelector":"e1fe3afa0f7f761ff0a8b89086790efd5140d2907ebd5b7ff6bfcb5e075fd4c5","id":346,"name":"ChainlinkCancelled","nameLocation":"1456:18:1","nodeType":"EventDefinition","parameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":344,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1491:2:1","nodeType":"VariableDeclaration","scope":346,"src":"1475:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1475:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1474:20:1"},"src":"1450:45:1"},{"body":{"id":372,"nodeType":"Block","src":"2018:115:1","statements":[{"assignments":[363],"declarations":[{"constant":false,"id":363,"mutability":"mutable","name":"req","nameLocation":"2049:3:1","nodeType":"VariableDeclaration","scope":372,"src":"2024:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":362,"nodeType":"UserDefinedTypeName","pathNode":{"id":361,"name":"Chainlink.Request","nameLocations":["2024:9:1","2034:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2024:17:1"},"referencedDeclaration":25,"src":"2024:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":364,"nodeType":"VariableDeclarationStatement","src":"2024:28:1"},{"expression":{"arguments":[{"id":367,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"2080:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":368,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"2088:12:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":369,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":353,"src":"2102:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":365,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"2065:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2069:10:1","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2065:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2065:63:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":358,"id":371,"nodeType":"Return","src":"2058:70:1"}]},"documentation":{"id":347,"nodeType":"StructuredDocumentation","src":"1499:348:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackAddr address to operate the callback on\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":373,"implemented":true,"kind":"function","modifiers":[],"name":"buildChainlinkRequest","nameLocation":"1859:21:1","nodeType":"FunctionDefinition","parameters":{"id":354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":349,"mutability":"mutable","name":"specId","nameLocation":"1894:6:1","nodeType":"VariableDeclaration","scope":373,"src":"1886:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1886:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":351,"mutability":"mutable","name":"callbackAddr","nameLocation":"1914:12:1","nodeType":"VariableDeclaration","scope":373,"src":"1906:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":350,"name":"address","nodeType":"ElementaryTypeName","src":"1906:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":353,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"1939:25:1","nodeType":"VariableDeclaration","scope":373,"src":"1932:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":352,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1932:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1880:88:1"},"returnParameters":{"id":358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":373,"src":"1992:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":356,"nodeType":"UserDefinedTypeName","pathNode":{"id":355,"name":"Chainlink.Request","nameLocations":["1992:9:1","2002:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1992:17:1"},"referencedDeclaration":25,"src":"1992:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1991:26:1"},"scope":861,"src":"1850:283:1","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":400,"nodeType":"Block","src":"2571:116:1","statements":[{"assignments":[388],"declarations":[{"constant":false,"id":388,"mutability":"mutable","name":"req","nameLocation":"2602:3:1","nodeType":"VariableDeclaration","scope":400,"src":"2577:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":387,"nodeType":"UserDefinedTypeName","pathNode":{"id":386,"name":"Chainlink.Request","nameLocations":["2577:9:1","2587:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2577:17:1"},"referencedDeclaration":25,"src":"2577:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":389,"nodeType":"VariableDeclarationStatement","src":"2577:28:1"},{"expression":{"arguments":[{"id":392,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"2633:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":395,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2649:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2641:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":393,"name":"address","nodeType":"ElementaryTypeName","src":"2641:7:1","typeDescriptions":{}}},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":397,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"2656:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":390,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"2618:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:10:1","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2618:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2618:64:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":383,"id":399,"nodeType":"Return","src":"2611:71:1"}]},"documentation":{"id":374,"nodeType":"StructuredDocumentation","src":"2137:288:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":401,"implemented":true,"kind":"function","modifiers":[],"name":"buildOperatorRequest","nameLocation":"2437:20:1","nodeType":"FunctionDefinition","parameters":{"id":379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":376,"mutability":"mutable","name":"specId","nameLocation":"2466:6:1","nodeType":"VariableDeclaration","scope":401,"src":"2458:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2458:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":378,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"2481:25:1","nodeType":"VariableDeclaration","scope":401,"src":"2474:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":377,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2474:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2457:50:1"},"returnParameters":{"id":383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":401,"src":"2543:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":381,"nodeType":"UserDefinedTypeName","pathNode":{"id":380,"name":"Chainlink.Request","nameLocations":["2543:9:1","2553:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2543:17:1"},"referencedDeclaration":25,"src":"2543:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"2542:26:1"},"scope":861,"src":"2428:259:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":421,"nodeType":"Block","src":"3096:73:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":415,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"3140:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3132:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":413,"name":"address","nodeType":"ElementaryTypeName","src":"3132:7:1","typeDescriptions":{}}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3132:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":417,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":405,"src":"3151:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":418,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":407,"src":"3156:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":412,"name":"sendChainlinkRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"3109:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3109:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":411,"id":420,"nodeType":"Return","src":"3102:62:1"}]},"documentation":{"id":402,"nodeType":"StructuredDocumentation","src":"2691:298:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev Calls `chainlinkRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":422,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequest","nameLocation":"3001:20:1","nodeType":"FunctionDefinition","parameters":{"id":408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":405,"mutability":"mutable","name":"req","nameLocation":"3047:3:1","nodeType":"VariableDeclaration","scope":422,"src":"3022:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":404,"nodeType":"UserDefinedTypeName","pathNode":{"id":403,"name":"Chainlink.Request","nameLocations":["3022:9:1","3032:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3022:17:1"},"referencedDeclaration":25,"src":"3022:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":407,"mutability":"mutable","name":"payment","nameLocation":"3060:7:1","nodeType":"VariableDeclaration","scope":422,"src":"3052:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":406,"name":"uint256","nodeType":"ElementaryTypeName","src":"3052:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:47:1"},"returnParameters":{"id":411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":422,"src":"3087:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3087:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3086:9:1"},"scope":861,"src":"2992:177:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":476,"nodeType":"Block","src":"3842:601:1","statements":[{"assignments":[436],"declarations":[{"constant":false,"id":436,"mutability":"mutable","name":"nonce","nameLocation":"3856:5:1","nodeType":"VariableDeclaration","scope":476,"src":"3848:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3848:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":438,"initialValue":{"id":437,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3864:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3848:30:1"},{"expression":{"id":443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":439,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3884:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":440,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"3901:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3909:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3901:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3884:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":444,"nodeType":"ExpressionStatement","src":"3884:26:1"},{"assignments":[446],"declarations":[{"constant":false,"id":446,"mutability":"mutable","name":"encodedRequest","nameLocation":"3929:14:1","nodeType":"VariableDeclaration","scope":476,"src":"3916:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":445,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":468,"initialValue":{"arguments":[{"expression":{"expression":{"id":449,"name":"ChainlinkRequestInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"3976:25:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ChainlinkRequestInterface_$1076_$","typeString":"type(contract ChainlinkRequestInterface)"}},"id":450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4002:13:1","memberName":"oracleRequest","nodeType":"MemberAccess","referencedDeclaration":1064,"src":"3976:39:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ChainlinkRequestInterface.oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes calldata)"}},"id":451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4016:8:1","memberName":"selector","nodeType":"MemberAccess","src":"3976:48:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":452,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"4032:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":453,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"4140:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":454,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4245:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4249:2:1","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"4245:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":458,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4267:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4259:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":456,"name":"address","nodeType":"ElementaryTypeName","src":"4259:7:1","typeDescriptions":{}}},"id":459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4259:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":460,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4280:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4284:18:1","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"4280:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":462,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4310:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":463,"name":"ORACLE_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":300,"src":"4323:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":464,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4350:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4354:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"4350:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4358:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4350:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3946:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3950:18:1","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3946:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3946:421:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3916:451:1"},{"expression":{"arguments":[{"id":470,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"4392:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":471,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4407:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":472,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"4414:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":473,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4423:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":469,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"4380:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":434,"id":475,"nodeType":"Return","src":"4373:65:1"}]},"documentation":{"id":423,"nodeType":"StructuredDocumentation","src":"3173:511:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":477,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequestTo","nameLocation":"3696:22:1","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":425,"mutability":"mutable","name":"oracleAddress","nameLocation":"3732:13:1","nodeType":"VariableDeclaration","scope":477,"src":"3724:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":424,"name":"address","nodeType":"ElementaryTypeName","src":"3724:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":428,"mutability":"mutable","name":"req","nameLocation":"3776:3:1","nodeType":"VariableDeclaration","scope":477,"src":"3751:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":427,"nodeType":"UserDefinedTypeName","pathNode":{"id":426,"name":"Chainlink.Request","nameLocations":["3751:9:1","3761:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3751:17:1"},"referencedDeclaration":25,"src":"3751:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"payment","nameLocation":"3793:7:1","nodeType":"VariableDeclaration","scope":477,"src":"3785:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":429,"name":"uint256","nodeType":"ElementaryTypeName","src":"3785:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3718:86:1"},"returnParameters":{"id":434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":433,"mutability":"mutable","name":"requestId","nameLocation":"3831:9:1","nodeType":"VariableDeclaration","scope":477,"src":"3823:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3823:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3822:19:1"},"scope":861,"src":"3687:756:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":497,"nodeType":"Block","src":"4907:72:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":491,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"4950:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4942:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":489,"name":"address","nodeType":"ElementaryTypeName","src":"4942:7:1","typeDescriptions":{}}},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4942:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":493,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"4961:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":494,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"4966:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":488,"name":"sendOperatorRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":549,"src":"4920:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4920:54:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":487,"id":496,"nodeType":"Return","src":"4913:61:1"}]},"documentation":{"id":478,"nodeType":"StructuredDocumentation","src":"4447:354:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev This function supports multi-word response\n @dev Calls `sendOperatorRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":498,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequest","nameLocation":"4813:19:1","nodeType":"FunctionDefinition","parameters":{"id":484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"req","nameLocation":"4858:3:1","nodeType":"VariableDeclaration","scope":498,"src":"4833:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":480,"nodeType":"UserDefinedTypeName","pathNode":{"id":479,"name":"Chainlink.Request","nameLocations":["4833:9:1","4843:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"4833:17:1"},"referencedDeclaration":25,"src":"4833:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":483,"mutability":"mutable","name":"payment","nameLocation":"4871:7:1","nodeType":"VariableDeclaration","scope":498,"src":"4863:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":482,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4832:47:1"},"returnParameters":{"id":487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":498,"src":"4898:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4898:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4897:9:1"},"scope":861,"src":"4804:175:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":548,"nodeType":"Block","src":"5704:576:1","statements":[{"assignments":[512],"declarations":[{"constant":false,"id":512,"mutability":"mutable","name":"nonce","nameLocation":"5718:5:1","nodeType":"VariableDeclaration","scope":548,"src":"5710:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":511,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":514,"initialValue":{"id":513,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5726:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5710:30:1"},{"expression":{"id":519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":515,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5746:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":516,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"5763:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5771:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5763:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5746:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":520,"nodeType":"ExpressionStatement","src":"5746:26:1"},{"assignments":[522],"declarations":[{"constant":false,"id":522,"mutability":"mutable","name":"encodedRequest","nameLocation":"5791:14:1","nodeType":"VariableDeclaration","scope":548,"src":"5778:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":521,"name":"bytes","nodeType":"ElementaryTypeName","src":"5778:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":540,"initialValue":{"arguments":[{"expression":{"expression":{"id":525,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"5838:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5856:15:1","memberName":"operatorRequest","nodeType":"MemberAccess","referencedDeclaration":1276,"src":"5838:33:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function OperatorInterface.operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes calldata)"}},"id":527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5872:8:1","memberName":"selector","nodeType":"MemberAccess","src":"5838:42:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":528,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"5888:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":529,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"5996:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":530,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6101:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6105:2:1","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"6101:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":532,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6115:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6119:18:1","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"6115:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":534,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6145:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":535,"name":"OPERATOR_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"6158:21:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":536,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6187:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6191:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"6187:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6195:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"6187:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":523,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5808:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5812:18:1","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"5808:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5808:396:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5778:426:1"},{"expression":{"arguments":[{"id":542,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"6229:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":543,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6244:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":544,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"6251:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":545,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"6260:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":541,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"6217:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6217:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":510,"id":547,"nodeType":"Return","src":"6210:65:1"}]},"documentation":{"id":499,"nodeType":"StructuredDocumentation","src":"4983:564:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev This function supports multi-word response\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":549,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequestTo","nameLocation":"5559:21:1","nodeType":"FunctionDefinition","parameters":{"id":507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":501,"mutability":"mutable","name":"oracleAddress","nameLocation":"5594:13:1","nodeType":"VariableDeclaration","scope":549,"src":"5586:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":500,"name":"address","nodeType":"ElementaryTypeName","src":"5586:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":504,"mutability":"mutable","name":"req","nameLocation":"5638:3:1","nodeType":"VariableDeclaration","scope":549,"src":"5613:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":503,"nodeType":"UserDefinedTypeName","pathNode":{"id":502,"name":"Chainlink.Request","nameLocations":["5613:9:1","5623:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"5613:17:1"},"referencedDeclaration":25,"src":"5613:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":506,"mutability":"mutable","name":"payment","nameLocation":"5655:7:1","nodeType":"VariableDeclaration","scope":549,"src":"5647:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":505,"name":"uint256","nodeType":"ElementaryTypeName","src":"5647:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5580:86:1"},"returnParameters":{"id":510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":509,"mutability":"mutable","name":"requestId","nameLocation":"5693:9:1","nodeType":"VariableDeclaration","scope":549,"src":"5685:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5685:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5684:19:1"},"scope":861,"src":"5550:730:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":593,"nodeType":"Block","src":"6790:269:1","statements":[{"expression":{"id":571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":563,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6796:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":567,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6835:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}},{"id":568,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"6841:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":565,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6818:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6822:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"6818:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":564,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6808:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6808:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6796:52:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":572,"nodeType":"ExpressionStatement","src":"6796:52:1"},{"expression":{"id":577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":573,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"6854:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":575,"indexExpression":{"id":574,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6872:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6854:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":576,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6885:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6854:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":578,"nodeType":"ExpressionStatement","src":"6854:44:1"},{"eventCall":{"arguments":[{"id":580,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6928:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":579,"name":"ChainlinkRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"6909:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6909:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":582,"nodeType":"EmitStatement","src":"6904:34:1"},{"expression":{"arguments":[{"arguments":[{"id":586,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6975:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":587,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"6990:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":588,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":558,"src":"6999:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":584,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"6952:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6959:15:1","memberName":"transferAndCall","nodeType":"MemberAccess","referencedDeclaration":1239,"src":"6952:22:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory) external returns (bool)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6952:62:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65","id":590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7016:37:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""},"value":"unable to transferAndCall to oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""}],"id":583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6944:7:1","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,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6944:110:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":592,"nodeType":"ExpressionStatement","src":"6944:110:1"}]},"documentation":{"id":550,"nodeType":"StructuredDocumentation","src":"6284:342:1","text":" @notice Make a request to an oracle\n @param oracleAddress The address of the oracle for the request\n @param nonce used to generate the request ID\n @param payment The amount of LINK to send for the request\n @param encodedRequest data encoded for request type specific format\n @return requestId The request ID"},"id":594,"implemented":true,"kind":"function","modifiers":[],"name":"_rawRequest","nameLocation":"6638:11:1","nodeType":"FunctionDefinition","parameters":{"id":559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":552,"mutability":"mutable","name":"oracleAddress","nameLocation":"6663:13:1","nodeType":"VariableDeclaration","scope":594,"src":"6655:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"6655:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":554,"mutability":"mutable","name":"nonce","nameLocation":"6690:5:1","nodeType":"VariableDeclaration","scope":594,"src":"6682:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":553,"name":"uint256","nodeType":"ElementaryTypeName","src":"6682:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":556,"mutability":"mutable","name":"payment","nameLocation":"6709:7:1","nodeType":"VariableDeclaration","scope":594,"src":"6701:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":555,"name":"uint256","nodeType":"ElementaryTypeName","src":"6701:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":558,"mutability":"mutable","name":"encodedRequest","nameLocation":"6735:14:1","nodeType":"VariableDeclaration","scope":594,"src":"6722:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":557,"name":"bytes","nodeType":"ElementaryTypeName","src":"6722:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6649:104:1"},"returnParameters":{"id":562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":561,"mutability":"mutable","name":"requestId","nameLocation":"6779:9:1","nodeType":"VariableDeclaration","scope":594,"src":"6771:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6771:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6770:19:1"},"scope":861,"src":"6629:430:1","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":633,"nodeType":"Block","src":"7713:250:1","statements":[{"assignments":[608],"declarations":[{"constant":false,"id":608,"mutability":"mutable","name":"requested","nameLocation":"7737:9:1","nodeType":"VariableDeclaration","scope":633,"src":"7719:27:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"},"typeName":{"id":607,"nodeType":"UserDefinedTypeName","pathNode":{"id":606,"name":"OperatorInterface","nameLocations":["7719:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":1331,"src":"7719:17:1"},"referencedDeclaration":1331,"src":"7719:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"visibility":"internal"}],"id":614,"initialValue":{"arguments":[{"baseExpression":{"id":610,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7767:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":612,"indexExpression":{"id":611,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7785:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7767:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":609,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"7749:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7749:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"nodeType":"VariableDeclarationStatement","src":"7719:77:1"},{"expression":{"id":618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7802:35:1","subExpression":{"baseExpression":{"id":615,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7809:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":617,"indexExpression":{"id":616,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7827:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7809:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":619,"nodeType":"ExpressionStatement","src":"7802:35:1"},{"eventCall":{"arguments":[{"id":621,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7867:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":620,"name":"ChainlinkCancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"7848:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7848:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":623,"nodeType":"EmitStatement","src":"7843:34:1"},{"expression":{"arguments":[{"id":627,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7913:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":628,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"7924:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":629,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":601,"src":"7933:12:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":630,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":603,"src":"7947:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":624,"name":"requested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"7883:9:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"id":626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7893:19:1","memberName":"cancelOracleRequest","nodeType":"MemberAccess","referencedDeclaration":1075,"src":"7883:29:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes4_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,bytes4,uint256) external"}},"id":631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7883:75:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":632,"nodeType":"ExpressionStatement","src":"7883:75:1"}]},"documentation":{"id":595,"nodeType":"StructuredDocumentation","src":"7063:509:1","text":" @notice Allows a request to be cancelled if it has not been fulfilled\n @dev Requires keeping track of the expiration value emitted from the oracle contract.\n Deletes the request from the `pendingRequests` mapping.\n Emits ChainlinkCancelled event.\n @param requestId The request ID\n @param payment The amount of LINK sent for the request\n @param callbackFunc The callback function specified for the request\n @param expiration The time of the expiration for the request"},"id":634,"implemented":true,"kind":"function","modifiers":[],"name":"cancelChainlinkRequest","nameLocation":"7584:22:1","nodeType":"FunctionDefinition","parameters":{"id":604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":597,"mutability":"mutable","name":"requestId","nameLocation":"7620:9:1","nodeType":"VariableDeclaration","scope":634,"src":"7612:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7612:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":599,"mutability":"mutable","name":"payment","nameLocation":"7643:7:1","nodeType":"VariableDeclaration","scope":634,"src":"7635:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7635:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":601,"mutability":"mutable","name":"callbackFunc","nameLocation":"7663:12:1","nodeType":"VariableDeclaration","scope":634,"src":"7656:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":600,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7656:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":603,"mutability":"mutable","name":"expiration","nameLocation":"7689:10:1","nodeType":"VariableDeclaration","scope":634,"src":"7681:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":602,"name":"uint256","nodeType":"ElementaryTypeName","src":"7681:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7606:97:1"},"returnParameters":{"id":605,"nodeType":"ParameterList","parameters":[],"src":"7713:0:1"},"scope":861,"src":"7575:388:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":642,"nodeType":"Block","src":"8238:32:1","statements":[{"expression":{"id":640,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"8251:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":639,"id":641,"nodeType":"Return","src":"8244:21:1"}]},"documentation":{"id":635,"nodeType":"StructuredDocumentation","src":"7967:205:1","text":" @notice the next request count to be used in generating a nonce\n @dev starts at 1 in order to ensure consistent gas cost\n @return returns the next request count to be used in a nonce"},"id":643,"implemented":true,"kind":"function","modifiers":[],"name":"getNextRequestCount","nameLocation":"8184:19:1","nodeType":"FunctionDefinition","parameters":{"id":636,"nodeType":"ParameterList","parameters":[],"src":"8203:2:1"},"returnParameters":{"id":639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":643,"src":"8229:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":637,"name":"uint256","nodeType":"ElementaryTypeName","src":"8229:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8228:9:1"},"scope":861,"src":"8175:95:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":655,"nodeType":"Block","src":"8451:54:1","statements":[{"expression":{"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":649,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"8457:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":651,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"8486:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":650,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"8468:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8468:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"src":"8457:43:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"id":654,"nodeType":"ExpressionStatement","src":"8457:43:1"}]},"documentation":{"id":644,"nodeType":"StructuredDocumentation","src":"8274:114:1","text":" @notice Sets the stored oracle address\n @param oracleAddress The address of the oracle contract"},"id":656,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkOracle","nameLocation":"8400:18:1","nodeType":"FunctionDefinition","parameters":{"id":647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":646,"mutability":"mutable","name":"oracleAddress","nameLocation":"8427:13:1","nodeType":"VariableDeclaration","scope":656,"src":"8419:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":645,"name":"address","nodeType":"ElementaryTypeName","src":"8419:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8418:23:1"},"returnParameters":{"id":648,"nodeType":"ParameterList","parameters":[],"src":"8451:0:1"},"scope":861,"src":"8391:114:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":668,"nodeType":"Block","src":"8682:51:1","statements":[{"expression":{"id":666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":662,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"8688:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":664,"name":"linkAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"8716:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":663,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"8697:18:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1251_$","typeString":"type(contract LinkTokenInterface)"}},"id":665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8697:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"src":"8688:40:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":667,"nodeType":"ExpressionStatement","src":"8688:40:1"}]},"documentation":{"id":657,"nodeType":"StructuredDocumentation","src":"8509:113:1","text":" @notice Sets the LINK token address\n @param linkAddress The address of the LINK token contract"},"id":669,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkToken","nameLocation":"8634:17:1","nodeType":"FunctionDefinition","parameters":{"id":660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":659,"mutability":"mutable","name":"linkAddress","nameLocation":"8660:11:1","nodeType":"VariableDeclaration","scope":669,"src":"8652:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":658,"name":"address","nodeType":"ElementaryTypeName","src":"8652:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8651:21:1"},"returnParameters":{"id":661,"nodeType":"ParameterList","parameters":[],"src":"8682:0:1"},"scope":861,"src":"8625:108:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":681,"nodeType":"Block","src":"8900:79:1","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":675,"name":"LINK_TOKEN_POINTER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"8941:18:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":674,"name":"PointerInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"8924:16:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PointerInterface_$1394_$","typeString":"type(contract PointerInterface)"}},"id":676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8924:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PointerInterface_$1394","typeString":"contract PointerInterface"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8961:10:1","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":1393,"src":"8924:47:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8924:49:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":673,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"8906:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8906:68:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":680,"nodeType":"ExpressionStatement","src":"8906:68:1"}]},"documentation":{"id":670,"nodeType":"StructuredDocumentation","src":"8737:116:1","text":" @notice Sets the Chainlink token address for the public\n network as given by the Pointer contract"},"id":682,"implemented":true,"kind":"function","modifiers":[],"name":"setPublicChainlinkToken","nameLocation":"8865:23:1","nodeType":"FunctionDefinition","parameters":{"id":671,"nodeType":"ParameterList","parameters":[],"src":"8888:2:1"},"returnParameters":{"id":672,"nodeType":"ParameterList","parameters":[],"src":"8900:0:1"},"scope":861,"src":"8856:123:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":693,"nodeType":"Block","src":"9163:33:1","statements":[{"expression":{"arguments":[{"id":690,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"9184:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}],"id":689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9176:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":688,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:1","typeDescriptions":{}}},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9176:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":687,"id":692,"nodeType":"Return","src":"9169:22:1"}]},"documentation":{"id":683,"nodeType":"StructuredDocumentation","src":"8983:112:1","text":" @notice Retrieves the stored address of the LINK token\n @return The address of the LINK token"},"id":694,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkTokenAddress","nameLocation":"9107:21:1","nodeType":"FunctionDefinition","parameters":{"id":684,"nodeType":"ParameterList","parameters":[],"src":"9128:2:1"},"returnParameters":{"id":687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":694,"src":"9154:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":685,"name":"address","nodeType":"ElementaryTypeName","src":"9154:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9153:9:1"},"scope":861,"src":"9098:98:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":705,"nodeType":"Block","src":"9391:35:1","statements":[{"expression":{"arguments":[{"id":702,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"9412:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9404:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"9404:7:1","typeDescriptions":{}}},"id":703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9404:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":699,"id":704,"nodeType":"Return","src":"9397:24:1"}]},"documentation":{"id":695,"nodeType":"StructuredDocumentation","src":"9200:122:1","text":" @notice Retrieves the stored address of the oracle contract\n @return The address of the oracle contract"},"id":706,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkOracleAddress","nameLocation":"9334:22:1","nodeType":"FunctionDefinition","parameters":{"id":696,"nodeType":"ParameterList","parameters":[],"src":"9356:2:1"},"returnParameters":{"id":699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":706,"src":"9382:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":697,"name":"address","nodeType":"ElementaryTypeName","src":"9382:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9381:9:1"},"scope":861,"src":"9325:101:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":723,"nodeType":"Block","src":"9819:55:1","statements":[{"expression":{"id":721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":717,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"9825:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":719,"indexExpression":{"id":718,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9843:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9825:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":720,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":709,"src":"9856:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9825:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":722,"nodeType":"ExpressionStatement","src":"9825:44:1"}]},"documentation":{"id":707,"nodeType":"StructuredDocumentation","src":"9430:269:1","text":" @notice Allows for a request which was created on another contract to be fulfilled\n on this contract\n @param oracleAddress The address of the oracle contract that will fulfill the request\n @param requestId The request ID used for the response"},"id":724,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":714,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9808:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":715,"kind":"modifierInvocation","modifierName":{"id":713,"name":"notPendingRequest","nameLocations":["9790:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":860,"src":"9790:17:1"},"nodeType":"ModifierInvocation","src":"9790:28:1"}],"name":"addChainlinkExternalRequest","nameLocation":"9711:27:1","nodeType":"FunctionDefinition","parameters":{"id":712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":709,"mutability":"mutable","name":"oracleAddress","nameLocation":"9747:13:1","nodeType":"VariableDeclaration","scope":724,"src":"9739:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":708,"name":"address","nodeType":"ElementaryTypeName","src":"9739:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":711,"mutability":"mutable","name":"requestId","nameLocation":"9770:9:1","nodeType":"VariableDeclaration","scope":724,"src":"9762:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9762:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9738:42:1"},"returnParameters":{"id":716,"nodeType":"ParameterList","parameters":[],"src":"9819:0:1"},"scope":861,"src":"9702:172:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":772,"nodeType":"Block","src":"10207:326:1","statements":[{"expression":{"id":736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":732,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10213:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":734,"name":"ensAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"10234:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":733,"name":"ENSInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"10221:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSInterface_$1156_$","typeString":"type(contract ENSInterface)"}},"id":735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10221:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"src":"10213:32:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":737,"nodeType":"ExpressionStatement","src":"10213:32:1"},{"expression":{"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":738,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10251:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":739,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":729,"src":"10263:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10251:16:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":741,"nodeType":"ExpressionStatement","src":"10251:16:1"},{"assignments":[743],"declarations":[{"constant":false,"id":743,"mutability":"mutable","name":"linkSubnode","nameLocation":"10281:11:1","nodeType":"VariableDeclaration","scope":772,"src":"10273:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10273:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":751,"initialValue":{"arguments":[{"arguments":[{"id":747,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10322:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":748,"name":"ENS_TOKEN_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":308,"src":"10333:17:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":745,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10305:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10309:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"10305:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10305:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":744,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10295:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10295:57:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10273:79:1"},{"assignments":[754],"declarations":[{"constant":false,"id":754,"mutability":"mutable","name":"resolver","nameLocation":"10380:8:1","nodeType":"VariableDeclaration","scope":772,"src":"10358:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"},"typeName":{"id":753,"nodeType":"UserDefinedTypeName","pathNode":{"id":752,"name":"ENSResolver_Chainlink","nameLocations":["10358:21:1"],"nodeType":"IdentifierPath","referencedDeclaration":2373,"src":"10358:21:1"},"referencedDeclaration":2373,"src":"10358:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":761,"initialValue":{"arguments":[{"arguments":[{"id":758,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10428:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":756,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10413:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10419:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":1148,"src":"10413:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10413:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":755,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"10391:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2373_$","typeString":"type(contract ENSResolver)"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10391:50:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10358:83:1"},{"expression":{"arguments":[{"arguments":[{"id":765,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10479:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":763,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":754,"src":"10465:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10474:4:1","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2372,"src":"10465:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10465:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":762,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"10447:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10447:45:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":768,"nodeType":"ExpressionStatement","src":"10447:45:1"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":769,"name":"updateChainlinkOracleWithENS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"10498:28:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10498:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":771,"nodeType":"ExpressionStatement","src":"10498:30:1"}]},"documentation":{"id":725,"nodeType":"StructuredDocumentation","src":"9878:254:1","text":" @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n @dev Accounts for subnodes having different resolvers\n @param ensAddress The address of the ENS contract\n @param node The ENS node hash"},"id":773,"implemented":true,"kind":"function","modifiers":[],"name":"useChainlinkWithENS","nameLocation":"10144:19:1","nodeType":"FunctionDefinition","parameters":{"id":730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":727,"mutability":"mutable","name":"ensAddress","nameLocation":"10172:10:1","nodeType":"VariableDeclaration","scope":773,"src":"10164:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":726,"name":"address","nodeType":"ElementaryTypeName","src":"10164:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":729,"mutability":"mutable","name":"node","nameLocation":"10192:4:1","nodeType":"VariableDeclaration","scope":773,"src":"10184:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10184:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10163:34:1"},"returnParameters":{"id":731,"nodeType":"ParameterList","parameters":[],"src":"10207:0:1"},"scope":861,"src":"10135:398:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":804,"nodeType":"Block","src":"10776:238:1","statements":[{"assignments":[778],"declarations":[{"constant":false,"id":778,"mutability":"mutable","name":"oracleSubnode","nameLocation":"10790:13:1","nodeType":"VariableDeclaration","scope":804,"src":"10782:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10782:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":786,"initialValue":{"arguments":[{"arguments":[{"id":782,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10833:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":783,"name":"ENS_ORACLE_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":313,"src":"10844:18:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10816:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10820:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"10816:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10816:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":779,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10806:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10806:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10782:82:1"},{"assignments":[789],"declarations":[{"constant":false,"id":789,"mutability":"mutable","name":"resolver","nameLocation":"10892:8:1","nodeType":"VariableDeclaration","scope":804,"src":"10870:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"},"typeName":{"id":788,"nodeType":"UserDefinedTypeName","pathNode":{"id":787,"name":"ENSResolver_Chainlink","nameLocations":["10870:21:1"],"nodeType":"IdentifierPath","referencedDeclaration":2373,"src":"10870:21:1"},"referencedDeclaration":2373,"src":"10870:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":796,"initialValue":{"arguments":[{"arguments":[{"id":793,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10940:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":791,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10925:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10931:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":1148,"src":"10925:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10925:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":790,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"10903:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2373_$","typeString":"type(contract ENSResolver)"}},"id":795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10903:52:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10870:85:1"},{"expression":{"arguments":[{"arguments":[{"id":800,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10994:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":798,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"10980:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"id":799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10989:4:1","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2372,"src":"10980:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10980:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":797,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"10961:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10961:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":803,"nodeType":"ExpressionStatement","src":"10961:48:1"}]},"documentation":{"id":774,"nodeType":"StructuredDocumentation","src":"10537:187:1","text":" @notice Sets the stored oracle contract with the address resolved by ENS\n @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously"},"id":805,"implemented":true,"kind":"function","modifiers":[],"name":"updateChainlinkOracleWithENS","nameLocation":"10736:28:1","nodeType":"FunctionDefinition","parameters":{"id":775,"nodeType":"ParameterList","parameters":[],"src":"10764:2:1"},"returnParameters":{"id":776,"nodeType":"ParameterList","parameters":[],"src":"10776:0:1"},"scope":861,"src":"10727:287:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":814,"nodeType":"Block","src":"11402:6:1","statements":[]},"documentation":{"id":806,"nodeType":"StructuredDocumentation","src":"11018:223:1","text":" @notice Ensures that the fulfillment is valid for this contract\n @dev Use if the contract developer prefers methods instead of modifiers for validation\n @param requestId The request ID for fulfillment"},"id":815,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":811,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":808,"src":"11342:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":812,"kind":"modifierInvocation","modifierName":{"id":810,"name":"recordChainlinkFulfillment","nameLocations":["11315:26:1"],"nodeType":"IdentifierPath","referencedDeclaration":841,"src":"11315:26:1"},"nodeType":"ModifierInvocation","src":"11315:37:1"}],"name":"validateChainlinkCallback","nameLocation":"11253:25:1","nodeType":"FunctionDefinition","parameters":{"id":809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":808,"mutability":"mutable","name":"requestId","nameLocation":"11287:9:1","nodeType":"VariableDeclaration","scope":815,"src":"11279:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11279:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11278:19:1"},"returnParameters":{"id":813,"nodeType":"ParameterList","parameters":[],"src":"11402:0:1"},"scope":861,"src":"11244:164:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":840,"nodeType":"Block","src":"11635:194:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":821,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11649:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11653:6:1","memberName":"sender","nodeType":"MemberAccess","src":"11649:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":823,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11663:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":825,"indexExpression":{"id":824,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11681:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11663:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11649:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374","id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11693:42:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""},"value":"Source must be the oracle of the request"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""}],"id":820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11641:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11641:95:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":829,"nodeType":"ExpressionStatement","src":"11641:95:1"},{"expression":{"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11742:35:1","subExpression":{"baseExpression":{"id":830,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11749:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":832,"indexExpression":{"id":831,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11767:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11749:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":834,"nodeType":"ExpressionStatement","src":"11742:35:1"},{"eventCall":{"arguments":[{"id":836,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11807:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":835,"name":"ChainlinkFulfilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"11788:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11788:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":838,"nodeType":"EmitStatement","src":"11783:34:1"},{"id":839,"nodeType":"PlaceholderStatement","src":"11823:1:1"}]},"documentation":{"id":816,"nodeType":"StructuredDocumentation","src":"11412:165:1","text":" @dev Reverts if the sender is not the oracle of the request.\n Emits ChainlinkFulfilled event.\n @param requestId The request ID for fulfillment"},"id":841,"name":"recordChainlinkFulfillment","nameLocation":"11589:26:1","nodeType":"ModifierDefinition","parameters":{"id":819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":818,"mutability":"mutable","name":"requestId","nameLocation":"11624:9:1","nodeType":"VariableDeclaration","scope":841,"src":"11616:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11616:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11615:19:1"},"src":"11580:249:1","virtual":false,"visibility":"internal"},{"body":{"id":859,"nodeType":"Block","src":"11996:99:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":847,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"12010:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":849,"indexExpression":{"id":848,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":844,"src":"12028:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12010:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12050:1:1","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":851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12042:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":850,"name":"address","nodeType":"ElementaryTypeName","src":"12042:7:1","typeDescriptions":{}}},"id":853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12042:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12010:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265717565737420697320616c72656164792070656e64696e67","id":855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12054:28:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""},"value":"Request is already pending"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""}],"id":846,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12002:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12002:81:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":857,"nodeType":"ExpressionStatement","src":"12002:81:1"},{"id":858,"nodeType":"PlaceholderStatement","src":"12089:1:1"}]},"documentation":{"id":842,"nodeType":"StructuredDocumentation","src":"11833:114:1","text":" @dev Reverts if the request is already pending\n @param requestId The request ID for fulfillment"},"id":860,"name":"notPendingRequest","nameLocation":"11959:17:1","nodeType":"ModifierDefinition","parameters":{"id":845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":844,"mutability":"mutable","name":"requestId","nameLocation":"11985:9:1","nodeType":"VariableDeclaration","scope":860,"src":"11977:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11977:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11976:19:1"},"src":"11950:145:1","virtual":false,"visibility":"internal"}],"scope":862,"src":"549:11548:1","usedErrors":[]}],"src":"32:12066:1"},"id":1},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","exportedSymbols":{"ConfirmedOwner":[881],"ConfirmedOwnerWithProposal":[1043],"OwnableInterface":[1386]},"id":882,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":863,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:2"},{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol","file":"./ConfirmedOwnerWithProposal.sol","id":864,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":882,"sourceUnit":1044,"src":"57:42:2","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":866,"name":"ConfirmedOwnerWithProposal","nameLocations":["239:26:2"],"nodeType":"IdentifierPath","referencedDeclaration":1043,"src":"239:26:2"},"id":867,"nodeType":"InheritanceSpecifier","src":"239:26:2"}],"canonicalName":"ConfirmedOwner","contractDependencies":[],"contractKind":"contract","documentation":{"id":865,"nodeType":"StructuredDocumentation","src":"101:110:2","text":" @title The ConfirmedOwner contract\n @notice A contract with helpers for basic contract ownership."},"fullyImplemented":true,"id":881,"linearizedBaseContracts":[881,1043,1386],"name":"ConfirmedOwner","nameLocation":"221:14:2","nodeType":"ContractDefinition","nodes":[{"body":{"id":879,"nodeType":"Block","src":"349:2:2","statements":[]},"id":880,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":872,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":869,"src":"327:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"345:1:2","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":874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"337:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":873,"name":"address","nodeType":"ElementaryTypeName","src":"337:7:2","typeDescriptions":{}}},"id":876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"337:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":877,"kind":"baseConstructorSpecifier","modifierName":{"id":871,"name":"ConfirmedOwnerWithProposal","nameLocations":["300:26:2"],"nodeType":"IdentifierPath","referencedDeclaration":1043,"src":"300:26:2"},"nodeType":"ModifierInvocation","src":"300:48:2"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":869,"mutability":"mutable","name":"newOwner","nameLocation":"290:8:2","nodeType":"VariableDeclaration","scope":880,"src":"282:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":868,"name":"address","nodeType":"ElementaryTypeName","src":"282:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"281:18:2"},"returnParameters":{"id":878,"nodeType":"ParameterList","parameters":[],"src":"349:0:2"},"scope":881,"src":"270:81:2","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":882,"src":"212:141:2","usedErrors":[]}],"src":"32:322:2"},"id":2},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol","exportedSymbols":{"ConfirmedOwnerWithProposal":[1043],"OwnableInterface":[1386]},"id":1044,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":883,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:3"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol","file":"./interfaces/OwnableInterface.sol","id":884,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1044,"sourceUnit":1387,"src":"57:43:3","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":886,"name":"OwnableInterface","nameLocations":["252:16:3"],"nodeType":"IdentifierPath","referencedDeclaration":1386,"src":"252:16:3"},"id":887,"nodeType":"InheritanceSpecifier","src":"252:16:3"}],"canonicalName":"ConfirmedOwnerWithProposal","contractDependencies":[],"contractKind":"contract","documentation":{"id":885,"nodeType":"StructuredDocumentation","src":"102:110:3","text":" @title The ConfirmedOwner contract\n @notice A contract with helpers for basic contract ownership."},"fullyImplemented":true,"id":1043,"linearizedBaseContracts":[1043,1386],"name":"ConfirmedOwnerWithProposal","nameLocation":"222:26:3","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":889,"mutability":"mutable","name":"s_owner","nameLocation":"289:7:3","nodeType":"VariableDeclaration","scope":1043,"src":"273:23:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":888,"name":"address","nodeType":"ElementaryTypeName","src":"273:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":891,"mutability":"mutable","name":"s_pendingOwner","nameLocation":"316:14:3","nodeType":"VariableDeclaration","scope":1043,"src":"300:30:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":890,"name":"address","nodeType":"ElementaryTypeName","src":"300:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278","id":897,"name":"OwnershipTransferRequested","nameLocation":"341:26:3","nodeType":"EventDefinition","parameters":{"id":896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":893,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"384:4:3","nodeType":"VariableDeclaration","scope":897,"src":"368:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":892,"name":"address","nodeType":"ElementaryTypeName","src":"368:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":895,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"406:2:3","nodeType":"VariableDeclaration","scope":897,"src":"390:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":894,"name":"address","nodeType":"ElementaryTypeName","src":"390:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"367:42:3"},"src":"335:75:3"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":903,"name":"OwnershipTransferred","nameLocation":"419:20:3","nodeType":"EventDefinition","parameters":{"id":902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":899,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"456:4:3","nodeType":"VariableDeclaration","scope":903,"src":"440:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":898,"name":"address","nodeType":"ElementaryTypeName","src":"440:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":901,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"478:2:3","nodeType":"VariableDeclaration","scope":903,"src":"462:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":900,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"439:42:3"},"src":"413:69:3"},{"body":{"id":936,"nodeType":"Block","src":"538:179:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":911,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"552:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"572:1:3","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":913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"564:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":912,"name":"address","nodeType":"ElementaryTypeName","src":"564:7:3","typeDescriptions":{}}},"id":915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"564:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"552:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","id":917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"576:26:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2","typeString":"literal_string \"Cannot set owner to zero\""},"value":"Cannot set owner to zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2","typeString":"literal_string \"Cannot set owner to zero\""}],"id":910,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"544:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"544:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":919,"nodeType":"ExpressionStatement","src":"544:59:3"},{"expression":{"id":922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":920,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"610:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":921,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"620:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"610:18:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":923,"nodeType":"ExpressionStatement","src":"610:18:3"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":924,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"638:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"662:1:3","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":926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"654:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":925,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:3","typeDescriptions":{}}},"id":928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"654:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"638:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":935,"nodeType":"IfStatement","src":"634:79:3","trueBody":{"id":934,"nodeType":"Block","src":"666:47:3","statements":[{"expression":{"arguments":[{"id":931,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"693:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":930,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"674:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"674:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":933,"nodeType":"ExpressionStatement","src":"674:32:3"}]}}]},"id":937,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":905,"mutability":"mutable","name":"newOwner","nameLocation":"506:8:3","nodeType":"VariableDeclaration","scope":937,"src":"498:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":904,"name":"address","nodeType":"ElementaryTypeName","src":"498:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":907,"mutability":"mutable","name":"pendingOwner","nameLocation":"524:12:3","nodeType":"VariableDeclaration","scope":937,"src":"516:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":906,"name":"address","nodeType":"ElementaryTypeName","src":"516:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"497:40:3"},"returnParameters":{"id":909,"nodeType":"ParameterList","parameters":[],"src":"538:0:3"},"scope":1043,"src":"486:231:3","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1382],"body":{"id":950,"nodeType":"Block","src":"891:33:3","statements":[{"expression":{"arguments":[{"id":947,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":940,"src":"916:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":946,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"897:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"897:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":949,"nodeType":"ExpressionStatement","src":"897:22:3"}]},"documentation":{"id":938,"nodeType":"StructuredDocumentation","src":"721:102:3","text":" @notice Allows an owner to begin transferring ownership to a new address,\n pending."},"functionSelector":"f2fde38b","id":951,"implemented":true,"kind":"function","modifiers":[{"id":944,"kind":"modifierInvocation","modifierName":{"id":943,"name":"onlyOwner","nameLocations":["881:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":1042,"src":"881:9:3"},"nodeType":"ModifierInvocation","src":"881:9:3"}],"name":"transferOwnership","nameLocation":"835:17:3","nodeType":"FunctionDefinition","overrides":{"id":942,"nodeType":"OverrideSpecifier","overrides":[],"src":"872:8:3"},"parameters":{"id":941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":940,"mutability":"mutable","name":"to","nameLocation":"861:2:3","nodeType":"VariableDeclaration","scope":951,"src":"853:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":939,"name":"address","nodeType":"ElementaryTypeName","src":"853:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"852:12:3"},"returnParameters":{"id":945,"nodeType":"ParameterList","parameters":[],"src":"891:0:3"},"scope":1043,"src":"826:98:3","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1385],"body":{"id":986,"nodeType":"Block","src":"1061:220:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":957,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1075:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1075:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":959,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1089:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1075:28:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","id":961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1105:24:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c","typeString":"literal_string \"Must be proposed owner\""},"value":"Must be proposed owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c","typeString":"literal_string \"Must be proposed owner\""}],"id":956,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1067:7:3","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,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:63:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":963,"nodeType":"ExpressionStatement","src":"1067:63:3"},{"assignments":[965],"declarations":[{"constant":false,"id":965,"mutability":"mutable","name":"oldOwner","nameLocation":"1145:8:3","nodeType":"VariableDeclaration","scope":986,"src":"1137:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":964,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":967,"initialValue":{"id":966,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1156:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1137:26:3"},{"expression":{"id":971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":968,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1169:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":969,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1179:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1183:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1179:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1169:20:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":972,"nodeType":"ExpressionStatement","src":"1169:20:3"},{"expression":{"id":978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":973,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1195:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1220:1:3","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":975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1212:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":974,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:3","typeDescriptions":{}}},"id":977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1195:27:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":979,"nodeType":"ExpressionStatement","src":"1195:27:3"},{"eventCall":{"arguments":[{"id":981,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":965,"src":"1255:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":982,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1265:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1269:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1265:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":980,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":903,"src":"1234:20:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1234:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":985,"nodeType":"EmitStatement","src":"1229:47:3"}]},"documentation":{"id":952,"nodeType":"StructuredDocumentation","src":"928:85:3","text":" @notice Allows an ownership transfer to be completed by the recipient."},"functionSelector":"79ba5097","id":987,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"1025:15:3","nodeType":"FunctionDefinition","overrides":{"id":954,"nodeType":"OverrideSpecifier","overrides":[],"src":"1052:8:3"},"parameters":{"id":953,"nodeType":"ParameterList","parameters":[],"src":"1040:2:3"},"returnParameters":{"id":955,"nodeType":"ParameterList","parameters":[],"src":"1061:0:3"},"scope":1043,"src":"1016:265:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1377],"body":{"id":996,"nodeType":"Block","src":"1388:25:3","statements":[{"expression":{"id":994,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1401:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":993,"id":995,"nodeType":"Return","src":"1394:14:3"}]},"documentation":{"id":988,"nodeType":"StructuredDocumentation","src":"1285:44:3","text":" @notice Get the current owner"},"functionSelector":"8da5cb5b","id":997,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1341:5:3","nodeType":"FunctionDefinition","overrides":{"id":990,"nodeType":"OverrideSpecifier","overrides":[],"src":"1361:8:3"},"parameters":{"id":989,"nodeType":"ParameterList","parameters":[],"src":"1346:2:3"},"returnParameters":{"id":993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":997,"src":"1379:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":991,"name":"address","nodeType":"ElementaryTypeName","src":"1379:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1378:9:3"},"scope":1043,"src":"1332:81:3","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":1020,"nodeType":"Block","src":"1545:140:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1004,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1559:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1005,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1565:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1569:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1565:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1559:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","id":1008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1577:25:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2","typeString":"literal_string \"Cannot transfer to self\""},"value":"Cannot transfer to self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2","typeString":"literal_string \"Cannot transfer to self\""}],"id":1003,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1551:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1551:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1010,"nodeType":"ExpressionStatement","src":"1551:52:3"},{"expression":{"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1011,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1610:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1012,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1627:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1610:19:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1014,"nodeType":"ExpressionStatement","src":"1610:19:3"},{"eventCall":{"arguments":[{"id":1016,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1668:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1017,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1677:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1015,"name":"OwnershipTransferRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"1641:26:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1641:39:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1019,"nodeType":"EmitStatement","src":"1636:44:3"}]},"documentation":{"id":998,"nodeType":"StructuredDocumentation","src":"1417:77:3","text":" @notice validate, transfer ownership, and emit relevant events"},"id":1021,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"1506:18:3","nodeType":"FunctionDefinition","parameters":{"id":1001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1000,"mutability":"mutable","name":"to","nameLocation":"1533:2:3","nodeType":"VariableDeclaration","scope":1021,"src":"1525:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":999,"name":"address","nodeType":"ElementaryTypeName","src":"1525:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1524:12:3"},"returnParameters":{"id":1002,"nodeType":"ParameterList","parameters":[],"src":"1545:0:3"},"scope":1043,"src":"1497:188:3","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1033,"nodeType":"Block","src":"1774:67:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1026,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1788:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1792:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1788:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1028,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1802:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1788:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1811:24:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3","typeString":"literal_string \"Only callable by owner\""},"value":"Only callable by owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3","typeString":"literal_string \"Only callable by owner\""}],"id":1025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1780:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1032,"nodeType":"ExpressionStatement","src":"1780:56:3"}]},"documentation":{"id":1022,"nodeType":"StructuredDocumentation","src":"1689:38:3","text":" @notice validate access"},"id":1034,"implemented":true,"kind":"function","modifiers":[],"name":"_validateOwnership","nameLocation":"1739:18:3","nodeType":"FunctionDefinition","parameters":{"id":1023,"nodeType":"ParameterList","parameters":[],"src":"1757:2:3"},"returnParameters":{"id":1024,"nodeType":"ParameterList","parameters":[],"src":"1774:0:3"},"scope":1043,"src":"1730:111:3","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1041,"nodeType":"Block","src":"1950:38:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1037,"name":"_validateOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"1956:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1956:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1039,"nodeType":"ExpressionStatement","src":"1956:20:3"},{"id":1040,"nodeType":"PlaceholderStatement","src":"1982:1:3"}]},"documentation":{"id":1035,"nodeType":"StructuredDocumentation","src":"1845:81:3","text":" @notice Reverts if called by anyone other than the contract owner."},"id":1042,"name":"onlyOwner","nameLocation":"1938:9:3","nodeType":"ModifierDefinition","parameters":{"id":1036,"nodeType":"ParameterList","parameters":[],"src":"1947:2:3"},"src":"1929:59:3","virtual":false,"visibility":"internal"}],"scope":1044,"src":"213:1777:3","usedErrors":[]}],"src":"32:1959:3"},"id":3},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[1076]},"id":1077,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1045,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:4"},{"abstract":false,"baseContracts":[],"canonicalName":"ChainlinkRequestInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1076,"linearizedBaseContracts":[1076],"name":"ChainlinkRequestInterface","nameLocation":"67:25:4","nodeType":"ContractDefinition","nodes":[{"functionSelector":"40429946","id":1064,"implemented":false,"kind":"function","modifiers":[],"name":"oracleRequest","nameLocation":"106:13:4","nodeType":"FunctionDefinition","parameters":{"id":1062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1047,"mutability":"mutable","name":"sender","nameLocation":"133:6:4","nodeType":"VariableDeclaration","scope":1064,"src":"125:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1046,"name":"address","nodeType":"ElementaryTypeName","src":"125:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1049,"mutability":"mutable","name":"requestPrice","nameLocation":"153:12:4","nodeType":"VariableDeclaration","scope":1064,"src":"145:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1048,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1051,"mutability":"mutable","name":"serviceAgreementID","nameLocation":"179:18:4","nodeType":"VariableDeclaration","scope":1064,"src":"171:26:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1053,"mutability":"mutable","name":"callbackAddress","nameLocation":"211:15:4","nodeType":"VariableDeclaration","scope":1064,"src":"203:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1052,"name":"address","nodeType":"ElementaryTypeName","src":"203:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1055,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"239:18:4","nodeType":"VariableDeclaration","scope":1064,"src":"232:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1054,"name":"bytes4","nodeType":"ElementaryTypeName","src":"232:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1057,"mutability":"mutable","name":"nonce","nameLocation":"271:5:4","nodeType":"VariableDeclaration","scope":1064,"src":"263:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1056,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1059,"mutability":"mutable","name":"dataVersion","nameLocation":"290:11:4","nodeType":"VariableDeclaration","scope":1064,"src":"282:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1058,"name":"uint256","nodeType":"ElementaryTypeName","src":"282:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1061,"mutability":"mutable","name":"data","nameLocation":"322:4:4","nodeType":"VariableDeclaration","scope":1064,"src":"307:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1060,"name":"bytes","nodeType":"ElementaryTypeName","src":"307:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"119:211:4"},"returnParameters":{"id":1063,"nodeType":"ParameterList","parameters":[],"src":"339:0:4"},"scope":1076,"src":"97:243:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ee4d553","id":1075,"implemented":false,"kind":"function","modifiers":[],"name":"cancelOracleRequest","nameLocation":"353:19:4","nodeType":"FunctionDefinition","parameters":{"id":1073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1066,"mutability":"mutable","name":"requestId","nameLocation":"386:9:4","nodeType":"VariableDeclaration","scope":1075,"src":"378:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1068,"mutability":"mutable","name":"payment","nameLocation":"409:7:4","nodeType":"VariableDeclaration","scope":1075,"src":"401:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1067,"name":"uint256","nodeType":"ElementaryTypeName","src":"401:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1070,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"429:18:4","nodeType":"VariableDeclaration","scope":1075,"src":"422:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1069,"name":"bytes4","nodeType":"ElementaryTypeName","src":"422:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1072,"mutability":"mutable","name":"expiration","nameLocation":"461:10:4","nodeType":"VariableDeclaration","scope":1075,"src":"453:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1071,"name":"uint256","nodeType":"ElementaryTypeName","src":"453:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"372:103:4"},"returnParameters":{"id":1074,"nodeType":"ParameterList","parameters":[],"src":"484:0:4"},"scope":1076,"src":"344:141:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1077,"src":"57:430:4","usedErrors":[]}],"src":"32:456:4"},"id":4},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","exportedSymbols":{"ENSInterface":[1156]},"id":1157,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1078,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:5"},{"abstract":false,"baseContracts":[],"canonicalName":"ENSInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1156,"linearizedBaseContracts":[1156],"name":"ENSInterface","nameLocation":"67:12:5","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"ce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82","id":1086,"name":"NewOwner","nameLocation":"161:8:5","nodeType":"EventDefinition","parameters":{"id":1085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1080,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"186:4:5","nodeType":"VariableDeclaration","scope":1086,"src":"170:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1082,"indexed":true,"mutability":"mutable","name":"label","nameLocation":"208:5:5","nodeType":"VariableDeclaration","scope":1086,"src":"192:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1084,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"223:5:5","nodeType":"VariableDeclaration","scope":1086,"src":"215:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1083,"name":"address","nodeType":"ElementaryTypeName","src":"215:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"169:60:5"},"src":"155:75:5"},{"anonymous":false,"eventSelector":"d4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266","id":1092,"name":"Transfer","nameLocation":"315:8:5","nodeType":"EventDefinition","parameters":{"id":1091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1088,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"340:4:5","nodeType":"VariableDeclaration","scope":1092,"src":"324:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1090,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"354:5:5","nodeType":"VariableDeclaration","scope":1092,"src":"346:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1089,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"323:37:5"},"src":"309:52:5"},{"anonymous":false,"eventSelector":"335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0","id":1098,"name":"NewResolver","nameLocation":"421:11:5","nodeType":"EventDefinition","parameters":{"id":1097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1094,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"449:4:5","nodeType":"VariableDeclaration","scope":1098,"src":"433:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"433:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1096,"indexed":false,"mutability":"mutable","name":"resolver","nameLocation":"463:8:5","nodeType":"VariableDeclaration","scope":1098,"src":"455:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1095,"name":"address","nodeType":"ElementaryTypeName","src":"455:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"432:40:5"},"src":"415:58:5"},{"anonymous":false,"eventSelector":"1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68","id":1104,"name":"NewTTL","nameLocation":"526:6:5","nodeType":"EventDefinition","parameters":{"id":1103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1100,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"549:4:5","nodeType":"VariableDeclaration","scope":1104,"src":"533:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"533:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1102,"indexed":false,"mutability":"mutable","name":"ttl","nameLocation":"562:3:5","nodeType":"VariableDeclaration","scope":1104,"src":"555:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1101,"name":"uint64","nodeType":"ElementaryTypeName","src":"555:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"532:34:5"},"src":"520:47:5"},{"functionSelector":"06ab5923","id":1113,"implemented":false,"kind":"function","modifiers":[],"name":"setSubnodeOwner","nameLocation":"580:15:5","nodeType":"FunctionDefinition","parameters":{"id":1111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1106,"mutability":"mutable","name":"node","nameLocation":"609:4:5","nodeType":"VariableDeclaration","scope":1113,"src":"601:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"601:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1108,"mutability":"mutable","name":"label","nameLocation":"627:5:5","nodeType":"VariableDeclaration","scope":1113,"src":"619:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"619:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1110,"mutability":"mutable","name":"owner","nameLocation":"646:5:5","nodeType":"VariableDeclaration","scope":1113,"src":"638:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1109,"name":"address","nodeType":"ElementaryTypeName","src":"638:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"595:60:5"},"returnParameters":{"id":1112,"nodeType":"ParameterList","parameters":[],"src":"664:0:5"},"scope":1156,"src":"571:94:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1896f70a","id":1120,"implemented":false,"kind":"function","modifiers":[],"name":"setResolver","nameLocation":"678:11:5","nodeType":"FunctionDefinition","parameters":{"id":1118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1115,"mutability":"mutable","name":"node","nameLocation":"698:4:5","nodeType":"VariableDeclaration","scope":1120,"src":"690:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"690:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1117,"mutability":"mutable","name":"resolver","nameLocation":"712:8:5","nodeType":"VariableDeclaration","scope":1120,"src":"704:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1116,"name":"address","nodeType":"ElementaryTypeName","src":"704:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"689:32:5"},"returnParameters":{"id":1119,"nodeType":"ParameterList","parameters":[],"src":"730:0:5"},"scope":1156,"src":"669:62:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5b0fc9c3","id":1127,"implemented":false,"kind":"function","modifiers":[],"name":"setOwner","nameLocation":"744:8:5","nodeType":"FunctionDefinition","parameters":{"id":1125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1122,"mutability":"mutable","name":"node","nameLocation":"761:4:5","nodeType":"VariableDeclaration","scope":1127,"src":"753:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"753:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1124,"mutability":"mutable","name":"owner","nameLocation":"775:5:5","nodeType":"VariableDeclaration","scope":1127,"src":"767:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1123,"name":"address","nodeType":"ElementaryTypeName","src":"767:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:29:5"},"returnParameters":{"id":1126,"nodeType":"ParameterList","parameters":[],"src":"790:0:5"},"scope":1156,"src":"735:56:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"14ab9038","id":1134,"implemented":false,"kind":"function","modifiers":[],"name":"setTTL","nameLocation":"804:6:5","nodeType":"FunctionDefinition","parameters":{"id":1132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1129,"mutability":"mutable","name":"node","nameLocation":"819:4:5","nodeType":"VariableDeclaration","scope":1134,"src":"811:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"811:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1131,"mutability":"mutable","name":"ttl","nameLocation":"832:3:5","nodeType":"VariableDeclaration","scope":1134,"src":"825:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1130,"name":"uint64","nodeType":"ElementaryTypeName","src":"825:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"810:26:5"},"returnParameters":{"id":1133,"nodeType":"ParameterList","parameters":[],"src":"845:0:5"},"scope":1156,"src":"795:51:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"02571be3","id":1141,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"859:5:5","nodeType":"FunctionDefinition","parameters":{"id":1137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1136,"mutability":"mutable","name":"node","nameLocation":"873:4:5","nodeType":"VariableDeclaration","scope":1141,"src":"865:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"865:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"864:14:5"},"returnParameters":{"id":1140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1141,"src":"902:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1138,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"901:9:5"},"scope":1156,"src":"850:61:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0178b8bf","id":1148,"implemented":false,"kind":"function","modifiers":[],"name":"resolver","nameLocation":"924:8:5","nodeType":"FunctionDefinition","parameters":{"id":1144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"mutability":"mutable","name":"node","nameLocation":"941:4:5","nodeType":"VariableDeclaration","scope":1148,"src":"933:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"933:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"932:14:5"},"returnParameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1148,"src":"970:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"969:9:5"},"scope":1156,"src":"915:64:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"16a25cbd","id":1155,"implemented":false,"kind":"function","modifiers":[],"name":"ttl","nameLocation":"992:3:5","nodeType":"FunctionDefinition","parameters":{"id":1151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1150,"mutability":"mutable","name":"node","nameLocation":"1004:4:5","nodeType":"VariableDeclaration","scope":1155,"src":"996:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"996:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"995:14:5"},"returnParameters":{"id":1154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1155,"src":"1033:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1152,"name":"uint64","nodeType":"ElementaryTypeName","src":"1033:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1032:8:5"},"scope":1156,"src":"983:58:5","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1157,"src":"57:986:5","usedErrors":[]}],"src":"32:1012:5"},"id":5},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","exportedSymbols":{"LinkTokenInterface":[1251]},"id":1252,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1158,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:6"},{"abstract":false,"baseContracts":[],"canonicalName":"LinkTokenInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1251,"linearizedBaseContracts":[1251],"name":"LinkTokenInterface","nameLocation":"67:18:6","nodeType":"ContractDefinition","nodes":[{"functionSelector":"dd62ed3e","id":1167,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"99:9:6","nodeType":"FunctionDefinition","parameters":{"id":1163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1160,"mutability":"mutable","name":"owner","nameLocation":"117:5:6","nodeType":"VariableDeclaration","scope":1167,"src":"109:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1159,"name":"address","nodeType":"ElementaryTypeName","src":"109:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1162,"mutability":"mutable","name":"spender","nameLocation":"132:7:6","nodeType":"VariableDeclaration","scope":1167,"src":"124:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1161,"name":"address","nodeType":"ElementaryTypeName","src":"124:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"108:32:6"},"returnParameters":{"id":1166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1165,"mutability":"mutable","name":"remaining","nameLocation":"172:9:6","nodeType":"VariableDeclaration","scope":1167,"src":"164:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1164,"name":"uint256","nodeType":"ElementaryTypeName","src":"164:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"163:19:6"},"scope":1251,"src":"90:93:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":1176,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"196:7:6","nodeType":"FunctionDefinition","parameters":{"id":1172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1169,"mutability":"mutable","name":"spender","nameLocation":"212:7:6","nodeType":"VariableDeclaration","scope":1176,"src":"204:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1168,"name":"address","nodeType":"ElementaryTypeName","src":"204:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1171,"mutability":"mutable","name":"value","nameLocation":"229:5:6","nodeType":"VariableDeclaration","scope":1176,"src":"221:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1170,"name":"uint256","nodeType":"ElementaryTypeName","src":"221:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"203:32:6"},"returnParameters":{"id":1175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1174,"mutability":"mutable","name":"success","nameLocation":"259:7:6","nodeType":"VariableDeclaration","scope":1176,"src":"254:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1173,"name":"bool","nodeType":"ElementaryTypeName","src":"254:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"253:14:6"},"scope":1251,"src":"187:81:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":1183,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"281:9:6","nodeType":"FunctionDefinition","parameters":{"id":1179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1178,"mutability":"mutable","name":"owner","nameLocation":"299:5:6","nodeType":"VariableDeclaration","scope":1183,"src":"291:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1177,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"290:15:6"},"returnParameters":{"id":1182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1181,"mutability":"mutable","name":"balance","nameLocation":"337:7:6","nodeType":"VariableDeclaration","scope":1183,"src":"329:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1180,"name":"uint256","nodeType":"ElementaryTypeName","src":"329:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"328:17:6"},"scope":1251,"src":"272:74:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":1188,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"359:8:6","nodeType":"FunctionDefinition","parameters":{"id":1184,"nodeType":"ParameterList","parameters":[],"src":"367:2:6"},"returnParameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1186,"mutability":"mutable","name":"decimalPlaces","nameLocation":"399:13:6","nodeType":"VariableDeclaration","scope":1188,"src":"393:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1185,"name":"uint8","nodeType":"ElementaryTypeName","src":"393:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"392:21:6"},"scope":1251,"src":"350:64:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"66188463","id":1197,"implemented":false,"kind":"function","modifiers":[],"name":"decreaseApproval","nameLocation":"427:16:6","nodeType":"FunctionDefinition","parameters":{"id":1193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1190,"mutability":"mutable","name":"spender","nameLocation":"452:7:6","nodeType":"VariableDeclaration","scope":1197,"src":"444:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1189,"name":"address","nodeType":"ElementaryTypeName","src":"444:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1192,"mutability":"mutable","name":"addedValue","nameLocation":"469:10:6","nodeType":"VariableDeclaration","scope":1197,"src":"461:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1191,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"443:37:6"},"returnParameters":{"id":1196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1195,"mutability":"mutable","name":"success","nameLocation":"504:7:6","nodeType":"VariableDeclaration","scope":1197,"src":"499:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1194,"name":"bool","nodeType":"ElementaryTypeName","src":"499:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"498:14:6"},"scope":1251,"src":"418:95:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d73dd623","id":1204,"implemented":false,"kind":"function","modifiers":[],"name":"increaseApproval","nameLocation":"526:16:6","nodeType":"FunctionDefinition","parameters":{"id":1202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1199,"mutability":"mutable","name":"spender","nameLocation":"551:7:6","nodeType":"VariableDeclaration","scope":1204,"src":"543:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1198,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1201,"mutability":"mutable","name":"subtractedValue","nameLocation":"568:15:6","nodeType":"VariableDeclaration","scope":1204,"src":"560:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1200,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"542:42:6"},"returnParameters":{"id":1203,"nodeType":"ParameterList","parameters":[],"src":"593:0:6"},"scope":1251,"src":"517:77:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"06fdde03","id":1209,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"607:4:6","nodeType":"FunctionDefinition","parameters":{"id":1205,"nodeType":"ParameterList","parameters":[],"src":"611:2:6"},"returnParameters":{"id":1208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1207,"mutability":"mutable","name":"tokenName","nameLocation":"651:9:6","nodeType":"VariableDeclaration","scope":1209,"src":"637:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1206,"name":"string","nodeType":"ElementaryTypeName","src":"637:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"636:25:6"},"scope":1251,"src":"598:64:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":1214,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"675:6:6","nodeType":"FunctionDefinition","parameters":{"id":1210,"nodeType":"ParameterList","parameters":[],"src":"681:2:6"},"returnParameters":{"id":1213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1212,"mutability":"mutable","name":"tokenSymbol","nameLocation":"721:11:6","nodeType":"VariableDeclaration","scope":1214,"src":"707:25:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1211,"name":"string","nodeType":"ElementaryTypeName","src":"707:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"706:27:6"},"scope":1251,"src":"666:68:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":1219,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"747:11:6","nodeType":"FunctionDefinition","parameters":{"id":1215,"nodeType":"ParameterList","parameters":[],"src":"758:2:6"},"returnParameters":{"id":1218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1217,"mutability":"mutable","name":"totalTokensIssued","nameLocation":"792:17:6","nodeType":"VariableDeclaration","scope":1219,"src":"784:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1216,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"783:27:6"},"scope":1251,"src":"738:73:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":1228,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"824:8:6","nodeType":"FunctionDefinition","parameters":{"id":1224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1221,"mutability":"mutable","name":"to","nameLocation":"841:2:6","nodeType":"VariableDeclaration","scope":1228,"src":"833:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1220,"name":"address","nodeType":"ElementaryTypeName","src":"833:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1223,"mutability":"mutable","name":"value","nameLocation":"853:5:6","nodeType":"VariableDeclaration","scope":1228,"src":"845:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1222,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"832:27:6"},"returnParameters":{"id":1227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1226,"mutability":"mutable","name":"success","nameLocation":"883:7:6","nodeType":"VariableDeclaration","scope":1228,"src":"878:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1225,"name":"bool","nodeType":"ElementaryTypeName","src":"878:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"877:14:6"},"scope":1251,"src":"815:77:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4000aea0","id":1239,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"905:15:6","nodeType":"FunctionDefinition","parameters":{"id":1235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1230,"mutability":"mutable","name":"to","nameLocation":"934:2:6","nodeType":"VariableDeclaration","scope":1239,"src":"926:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1229,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1232,"mutability":"mutable","name":"value","nameLocation":"950:5:6","nodeType":"VariableDeclaration","scope":1239,"src":"942:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1231,"name":"uint256","nodeType":"ElementaryTypeName","src":"942:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1234,"mutability":"mutable","name":"data","nameLocation":"976:4:6","nodeType":"VariableDeclaration","scope":1239,"src":"961:19:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1233,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"920:64:6"},"returnParameters":{"id":1238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1237,"mutability":"mutable","name":"success","nameLocation":"1008:7:6","nodeType":"VariableDeclaration","scope":1239,"src":"1003:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1236,"name":"bool","nodeType":"ElementaryTypeName","src":"1003:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1002:14:6"},"scope":1251,"src":"896:121:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":1250,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1030:12:6","nodeType":"FunctionDefinition","parameters":{"id":1246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1241,"mutability":"mutable","name":"from","nameLocation":"1056:4:6","nodeType":"VariableDeclaration","scope":1250,"src":"1048:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1240,"name":"address","nodeType":"ElementaryTypeName","src":"1048:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1243,"mutability":"mutable","name":"to","nameLocation":"1074:2:6","nodeType":"VariableDeclaration","scope":1250,"src":"1066:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1242,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1245,"mutability":"mutable","name":"value","nameLocation":"1090:5:6","nodeType":"VariableDeclaration","scope":1250,"src":"1082:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1042:57:6"},"returnParameters":{"id":1249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1248,"mutability":"mutable","name":"success","nameLocation":"1123:7:6","nodeType":"VariableDeclaration","scope":1250,"src":"1118:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1247,"name":"bool","nodeType":"ElementaryTypeName","src":"1118:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1117:14:6"},"scope":1251,"src":"1021:111:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1252,"src":"57:1077:6","usedErrors":[]}],"src":"32:1103:6"},"id":6},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[1076],"OperatorInterface":[1331],"OracleInterface":[1370]},"id":1332,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1253,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:7"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","file":"./OracleInterface.sol","id":1254,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1332,"sourceUnit":1371,"src":"57:31:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./ChainlinkRequestInterface.sol","id":1255,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1332,"sourceUnit":1077,"src":"89:41:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1256,"name":"OracleInterface","nameLocations":["163:15:7"],"nodeType":"IdentifierPath","referencedDeclaration":1370,"src":"163:15:7"},"id":1257,"nodeType":"InheritanceSpecifier","src":"163:15:7"},{"baseName":{"id":1258,"name":"ChainlinkRequestInterface","nameLocations":["180:25:7"],"nodeType":"IdentifierPath","referencedDeclaration":1076,"src":"180:25:7"},"id":1259,"nodeType":"InheritanceSpecifier","src":"180:25:7"}],"canonicalName":"OperatorInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1331,"linearizedBaseContracts":[1331,1076,1370],"name":"OperatorInterface","nameLocation":"142:17:7","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3c6d41b9","id":1276,"implemented":false,"kind":"function","modifiers":[],"name":"operatorRequest","nameLocation":"219:15:7","nodeType":"FunctionDefinition","parameters":{"id":1274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1261,"mutability":"mutable","name":"sender","nameLocation":"248:6:7","nodeType":"VariableDeclaration","scope":1276,"src":"240:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1260,"name":"address","nodeType":"ElementaryTypeName","src":"240:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1263,"mutability":"mutable","name":"payment","nameLocation":"268:7:7","nodeType":"VariableDeclaration","scope":1276,"src":"260:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1262,"name":"uint256","nodeType":"ElementaryTypeName","src":"260:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1265,"mutability":"mutable","name":"specId","nameLocation":"289:6:7","nodeType":"VariableDeclaration","scope":1276,"src":"281:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"281:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1267,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"308:18:7","nodeType":"VariableDeclaration","scope":1276,"src":"301:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1266,"name":"bytes4","nodeType":"ElementaryTypeName","src":"301:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1269,"mutability":"mutable","name":"nonce","nameLocation":"340:5:7","nodeType":"VariableDeclaration","scope":1276,"src":"332:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1268,"name":"uint256","nodeType":"ElementaryTypeName","src":"332:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1271,"mutability":"mutable","name":"dataVersion","nameLocation":"359:11:7","nodeType":"VariableDeclaration","scope":1276,"src":"351:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1270,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1273,"mutability":"mutable","name":"data","nameLocation":"391:4:7","nodeType":"VariableDeclaration","scope":1276,"src":"376:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1272,"name":"bytes","nodeType":"ElementaryTypeName","src":"376:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"234:165:7"},"returnParameters":{"id":1275,"nodeType":"ParameterList","parameters":[],"src":"408:0:7"},"scope":1331,"src":"210:199:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ae0bc76","id":1293,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest2","nameLocation":"422:21:7","nodeType":"FunctionDefinition","parameters":{"id":1289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1278,"mutability":"mutable","name":"requestId","nameLocation":"457:9:7","nodeType":"VariableDeclaration","scope":1293,"src":"449:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1277,"name":"bytes32","nodeType":"ElementaryTypeName","src":"449:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1280,"mutability":"mutable","name":"payment","nameLocation":"480:7:7","nodeType":"VariableDeclaration","scope":1293,"src":"472:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1279,"name":"uint256","nodeType":"ElementaryTypeName","src":"472:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1282,"mutability":"mutable","name":"callbackAddress","nameLocation":"501:15:7","nodeType":"VariableDeclaration","scope":1293,"src":"493:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1281,"name":"address","nodeType":"ElementaryTypeName","src":"493:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1284,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"529:18:7","nodeType":"VariableDeclaration","scope":1293,"src":"522:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1283,"name":"bytes4","nodeType":"ElementaryTypeName","src":"522:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1286,"mutability":"mutable","name":"expiration","nameLocation":"561:10:7","nodeType":"VariableDeclaration","scope":1293,"src":"553:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1285,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1288,"mutability":"mutable","name":"data","nameLocation":"592:4:7","nodeType":"VariableDeclaration","scope":1293,"src":"577:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1287,"name":"bytes","nodeType":"ElementaryTypeName","src":"577:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"443:157:7"},"returnParameters":{"id":1292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1293,"src":"619:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1290,"name":"bool","nodeType":"ElementaryTypeName","src":"619:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"618:6:7"},"scope":1331,"src":"413:212:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"902fc370","id":1304,"implemented":false,"kind":"function","modifiers":[],"name":"ownerTransferAndCall","nameLocation":"638:20:7","nodeType":"FunctionDefinition","parameters":{"id":1300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1295,"mutability":"mutable","name":"to","nameLocation":"672:2:7","nodeType":"VariableDeclaration","scope":1304,"src":"664:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1294,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1297,"mutability":"mutable","name":"value","nameLocation":"688:5:7","nodeType":"VariableDeclaration","scope":1304,"src":"680:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1296,"name":"uint256","nodeType":"ElementaryTypeName","src":"680:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1299,"mutability":"mutable","name":"data","nameLocation":"714:4:7","nodeType":"VariableDeclaration","scope":1304,"src":"699:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1298,"name":"bytes","nodeType":"ElementaryTypeName","src":"699:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"658:64:7"},"returnParameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1302,"mutability":"mutable","name":"success","nameLocation":"746:7:7","nodeType":"VariableDeclaration","scope":1304,"src":"741:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1301,"name":"bool","nodeType":"ElementaryTypeName","src":"741:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"740:14:7"},"scope":1331,"src":"629:126:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6bd59ec0","id":1313,"implemented":false,"kind":"function","modifiers":[],"name":"distributeFunds","nameLocation":"768:15:7","nodeType":"FunctionDefinition","parameters":{"id":1311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1307,"mutability":"mutable","name":"receivers","nameLocation":"811:9:7","nodeType":"VariableDeclaration","scope":1313,"src":"784:36:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_calldata_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":1305,"name":"address","nodeType":"ElementaryTypeName","src":"784:15:7","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1306,"nodeType":"ArrayTypeName","src":"784:17:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"},{"constant":false,"id":1310,"mutability":"mutable","name":"amounts","nameLocation":"841:7:7","nodeType":"VariableDeclaration","scope":1313,"src":"822:26:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1308,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1309,"nodeType":"ArrayTypeName","src":"822:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"783:66:7"},"returnParameters":{"id":1312,"nodeType":"ParameterList","parameters":[],"src":"866:0:7"},"scope":1331,"src":"759:108:7","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"2408afaa","id":1319,"implemented":false,"kind":"function","modifiers":[],"name":"getAuthorizedSenders","nameLocation":"880:20:7","nodeType":"FunctionDefinition","parameters":{"id":1314,"nodeType":"ParameterList","parameters":[],"src":"900:2:7"},"returnParameters":{"id":1318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1317,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1319,"src":"921:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1315,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1316,"nodeType":"ArrayTypeName","src":"921:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"920:18:7"},"scope":1331,"src":"871:68:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ee56997b","id":1325,"implemented":false,"kind":"function","modifiers":[],"name":"setAuthorizedSenders","nameLocation":"952:20:7","nodeType":"FunctionDefinition","parameters":{"id":1323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1322,"mutability":"mutable","name":"senders","nameLocation":"992:7:7","nodeType":"VariableDeclaration","scope":1325,"src":"973:26:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1320,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1321,"nodeType":"ArrayTypeName","src":"973:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"972:28:7"},"returnParameters":{"id":1324,"nodeType":"ParameterList","parameters":[],"src":"1009:0:7"},"scope":1331,"src":"943:67:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a0042526","id":1330,"implemented":false,"kind":"function","modifiers":[],"name":"getForwarder","nameLocation":"1023:12:7","nodeType":"FunctionDefinition","parameters":{"id":1326,"nodeType":"ParameterList","parameters":[],"src":"1035:2:7"},"returnParameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1328,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1330,"src":"1056:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1327,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1055:9:7"},"scope":1331,"src":"1014:51:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1332,"src":"132:935:7","usedErrors":[]}],"src":"32:1036:7"},"id":7},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","exportedSymbols":{"OracleInterface":[1370]},"id":1371,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1333,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:8"},{"abstract":false,"baseContracts":[],"canonicalName":"OracleInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1370,"linearizedBaseContracts":[1370],"name":"OracleInterface","nameLocation":"67:15:8","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4ab0d190","id":1350,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest","nameLocation":"96:20:8","nodeType":"FunctionDefinition","parameters":{"id":1346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1335,"mutability":"mutable","name":"requestId","nameLocation":"130:9:8","nodeType":"VariableDeclaration","scope":1350,"src":"122:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1337,"mutability":"mutable","name":"payment","nameLocation":"153:7:8","nodeType":"VariableDeclaration","scope":1350,"src":"145:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1336,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1339,"mutability":"mutable","name":"callbackAddress","nameLocation":"174:15:8","nodeType":"VariableDeclaration","scope":1350,"src":"166:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1338,"name":"address","nodeType":"ElementaryTypeName","src":"166:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1341,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"202:18:8","nodeType":"VariableDeclaration","scope":1350,"src":"195:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1340,"name":"bytes4","nodeType":"ElementaryTypeName","src":"195:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1343,"mutability":"mutable","name":"expiration","nameLocation":"234:10:8","nodeType":"VariableDeclaration","scope":1350,"src":"226:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1342,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1345,"mutability":"mutable","name":"data","nameLocation":"258:4:8","nodeType":"VariableDeclaration","scope":1350,"src":"250:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"116:150:8"},"returnParameters":{"id":1349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1350,"src":"285:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1347,"name":"bool","nodeType":"ElementaryTypeName","src":"285:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"284:6:8"},"scope":1370,"src":"87:204:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fa00763a","id":1357,"implemented":false,"kind":"function","modifiers":[],"name":"isAuthorizedSender","nameLocation":"304:18:8","nodeType":"FunctionDefinition","parameters":{"id":1353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1352,"mutability":"mutable","name":"node","nameLocation":"331:4:8","nodeType":"VariableDeclaration","scope":1357,"src":"323:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1351,"name":"address","nodeType":"ElementaryTypeName","src":"323:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322:14:8"},"returnParameters":{"id":1356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1357,"src":"360:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1354,"name":"bool","nodeType":"ElementaryTypeName","src":"360:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"359:6:8"},"scope":1370,"src":"295:71:8","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f3fef3a3","id":1364,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"379:8:8","nodeType":"FunctionDefinition","parameters":{"id":1362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1359,"mutability":"mutable","name":"recipient","nameLocation":"396:9:8","nodeType":"VariableDeclaration","scope":1364,"src":"388:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1358,"name":"address","nodeType":"ElementaryTypeName","src":"388:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1361,"mutability":"mutable","name":"amount","nameLocation":"415:6:8","nodeType":"VariableDeclaration","scope":1364,"src":"407:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1360,"name":"uint256","nodeType":"ElementaryTypeName","src":"407:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"387:35:8"},"returnParameters":{"id":1363,"nodeType":"ParameterList","parameters":[],"src":"431:0:8"},"scope":1370,"src":"370:62:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"50188301","id":1369,"implemented":false,"kind":"function","modifiers":[],"name":"withdrawable","nameLocation":"445:12:8","nodeType":"FunctionDefinition","parameters":{"id":1365,"nodeType":"ParameterList","parameters":[],"src":"457:2:8"},"returnParameters":{"id":1368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1369,"src":"483:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1366,"name":"uint256","nodeType":"ElementaryTypeName","src":"483:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"482:9:8"},"scope":1370,"src":"436:56:8","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1371,"src":"57:437:8","usedErrors":[]}],"src":"32:463:8"},"id":8},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol","exportedSymbols":{"OwnableInterface":[1386]},"id":1387,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1372,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:9"},{"abstract":false,"baseContracts":[],"canonicalName":"OwnableInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1386,"linearizedBaseContracts":[1386],"name":"OwnableInterface","nameLocation":"67:16:9","nodeType":"ContractDefinition","nodes":[{"functionSelector":"8da5cb5b","id":1377,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"97:5:9","nodeType":"FunctionDefinition","parameters":{"id":1373,"nodeType":"ParameterList","parameters":[],"src":"102:2:9"},"returnParameters":{"id":1376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1377,"src":"123:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1374,"name":"address","nodeType":"ElementaryTypeName","src":"123:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"122:9:9"},"scope":1386,"src":"88:44:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f2fde38b","id":1382,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"145:17:9","nodeType":"FunctionDefinition","parameters":{"id":1380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1379,"mutability":"mutable","name":"recipient","nameLocation":"171:9:9","nodeType":"VariableDeclaration","scope":1382,"src":"163:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1378,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"162:19:9"},"returnParameters":{"id":1381,"nodeType":"ParameterList","parameters":[],"src":"190:0:9"},"scope":1386,"src":"136:55:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"79ba5097","id":1385,"implemented":false,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"204:15:9","nodeType":"FunctionDefinition","parameters":{"id":1383,"nodeType":"ParameterList","parameters":[],"src":"219:2:9"},"returnParameters":{"id":1384,"nodeType":"ParameterList","parameters":[],"src":"230:0:9"},"scope":1386,"src":"195:36:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1387,"src":"57:176:9","usedErrors":[]}],"src":"32:202:9"},"id":9},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","exportedSymbols":{"PointerInterface":[1394]},"id":1395,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1388,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:10"},{"abstract":false,"baseContracts":[],"canonicalName":"PointerInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1394,"linearizedBaseContracts":[1394],"name":"PointerInterface","nameLocation":"67:16:10","nodeType":"ContractDefinition","nodes":[{"functionSelector":"38cc4831","id":1393,"implemented":false,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"97:10:10","nodeType":"FunctionDefinition","parameters":{"id":1389,"nodeType":"ParameterList","parameters":[],"src":"107:2:10"},"returnParameters":{"id":1392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1393,"src":"133:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1390,"name":"address","nodeType":"ElementaryTypeName","src":"133:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"132:9:10"},"scope":1394,"src":"88:54:10","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1395,"src":"57:87:10","usedErrors":[]}],"src":"32:113:10"},"id":10},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","exportedSymbols":{"BufferChainlink":[1916]},"id":1917,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1396,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:11"},{"abstract":false,"baseContracts":[],"canonicalName":"BufferChainlink","contractDependencies":[],"contractKind":"library","documentation":{"id":1397,"nodeType":"StructuredDocumentation","src":"57:383:11","text":" @dev A library for working with mutable byte buffers in Solidity.\n Byte buffers are mutable and expandable, and provide a variety of primitives\n for writing to them. At any time you can fetch a bytes object containing the\n current contents of the buffer. The bytes object should not be stored between\n operations, as it may change due to resizing of the buffer."},"fullyImplemented":true,"id":1916,"linearizedBaseContracts":[1916],"name":"BufferChainlink","nameLocation":"449:15:11","nodeType":"ContractDefinition","nodes":[{"canonicalName":"BufferChainlink.buffer","id":1402,"members":[{"constant":false,"id":1399,"mutability":"mutable","name":"buf","nameLocation":"743:3:11","nodeType":"VariableDeclaration","scope":1402,"src":"737:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1398,"name":"bytes","nodeType":"ElementaryTypeName","src":"737:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1401,"mutability":"mutable","name":"capacity","nameLocation":"760:8:11","nodeType":"VariableDeclaration","scope":1402,"src":"752:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1400,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"buffer","nameLocation":"724:6:11","nodeType":"StructDefinition","scope":1916,"src":"717:56:11","visibility":"public"},{"body":{"id":1439,"nodeType":"Block","src":"1090:310:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1414,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1100:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1100:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1117:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1100:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1429,"nodeType":"IfStatement","src":"1096:71:11","trueBody":{"id":1428,"nodeType":"Block","src":"1120:47:11","statements":[{"expression":{"id":1426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1419,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1128:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1140:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1421,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1146:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1157:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1146:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1424,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1145:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1140:20:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1128:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1427,"nodeType":"ExpressionStatement","src":"1128:32:11"}]}},{"expression":{"id":1434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1430,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1406,"src":"1214:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1218:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"1214:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1433,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1229:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1214:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1435,"nodeType":"ExpressionStatement","src":"1214:23:11"},{"AST":{"nodeType":"YulBlock","src":"1252:128:11","statements":[{"nodeType":"YulVariableDeclaration","src":"1260:22:11","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1277:4:11","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1271:5:11"},"nodeType":"YulFunctionCall","src":"1271:11:11"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"1264:3:11","type":""}]},{"expression":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"1296:3:11"},{"name":"ptr","nodeType":"YulIdentifier","src":"1301:3:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1289:6:11"},"nodeType":"YulFunctionCall","src":"1289:16:11"},"nodeType":"YulExpressionStatement","src":"1289:16:11"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1319:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"1324:1:11","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1312:6:11"},"nodeType":"YulFunctionCall","src":"1312:14:11"},"nodeType":"YulExpressionStatement","src":"1312:14:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1340:4:11","type":"","value":"0x40"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1350:2:11","type":"","value":"32"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1358:3:11"},{"name":"capacity","nodeType":"YulIdentifier","src":"1363:8:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1354:3:11"},"nodeType":"YulFunctionCall","src":"1354:18:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1346:3:11"},"nodeType":"YulFunctionCall","src":"1346:27:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:11"},"nodeType":"YulFunctionCall","src":"1333:41:11"},"nodeType":"YulExpressionStatement","src":"1333:41:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1406,"isOffset":false,"isSlot":false,"src":"1296:3:11","valueSize":1},{"declaration":1408,"isOffset":false,"isSlot":false,"src":"1363:8:11","valueSize":1}],"id":1436,"nodeType":"InlineAssembly","src":"1243:137:11"},{"expression":{"id":1437,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1406,"src":"1392:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1413,"id":1438,"nodeType":"Return","src":"1385:10:11"}]},"documentation":{"id":1403,"nodeType":"StructuredDocumentation","src":"777:221:11","text":" @dev Initializes a buffer with an initial capacity.\n @param buf The buffer to initialize.\n @param capacity The number of bytes of space to allocate the buffer.\n @return The buffer, for chaining."},"id":1440,"implemented":true,"kind":"function","modifiers":[],"name":"init","nameLocation":"1010:4:11","nodeType":"FunctionDefinition","parameters":{"id":1409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1406,"mutability":"mutable","name":"buf","nameLocation":"1029:3:11","nodeType":"VariableDeclaration","scope":1440,"src":"1015:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1405,"nodeType":"UserDefinedTypeName","pathNode":{"id":1404,"name":"buffer","nameLocations":["1015:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1015:6:11"},"referencedDeclaration":1402,"src":"1015:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1408,"mutability":"mutable","name":"capacity","nameLocation":"1042:8:11","nodeType":"VariableDeclaration","scope":1440,"src":"1034:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1407,"name":"uint256","nodeType":"ElementaryTypeName","src":"1034:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:37:11"},"returnParameters":{"id":1413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1440,"src":"1075:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1411,"nodeType":"UserDefinedTypeName","pathNode":{"id":1410,"name":"buffer","nameLocations":["1075:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1075:6:11"},"referencedDeclaration":1402,"src":"1075:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1074:15:11"},"scope":1916,"src":"1001:399:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1468,"nodeType":"Block","src":"1707:90:11","statements":[{"assignments":[1451],"declarations":[{"constant":false,"id":1451,"mutability":"mutable","name":"buf","nameLocation":"1727:3:11","nodeType":"VariableDeclaration","scope":1468,"src":"1713:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1450,"nodeType":"UserDefinedTypeName","pathNode":{"id":1449,"name":"buffer","nameLocations":["1713:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1713:6:11"},"referencedDeclaration":1402,"src":"1713:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"id":1452,"nodeType":"VariableDeclarationStatement","src":"1713:17:11"},{"expression":{"id":1457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1453,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1736:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1740:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"1736:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1456,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"1746:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1736:11:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1458,"nodeType":"ExpressionStatement","src":"1736:11:11"},{"expression":{"id":1464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1459,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1753:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1757:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"1753:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1462,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"1768:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1770:6:11","memberName":"length","nodeType":"MemberAccess","src":"1768:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1753:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1465,"nodeType":"ExpressionStatement","src":"1753:23:11"},{"expression":{"id":1466,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1789:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1448,"id":1467,"nodeType":"Return","src":"1782:10:11"}]},"documentation":{"id":1441,"nodeType":"StructuredDocumentation","src":"1404:227:11","text":" @dev Initializes a new buffer from an existing bytes object.\n Changes to the buffer may mutate the original value.\n @param b The bytes object to initialize the buffer with.\n @return A new buffer."},"id":1469,"implemented":true,"kind":"function","modifiers":[],"name":"fromBytes","nameLocation":"1643:9:11","nodeType":"FunctionDefinition","parameters":{"id":1444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1443,"mutability":"mutable","name":"b","nameLocation":"1666:1:11","nodeType":"VariableDeclaration","scope":1469,"src":"1653:14:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1442,"name":"bytes","nodeType":"ElementaryTypeName","src":"1653:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1652:16:11"},"returnParameters":{"id":1448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1469,"src":"1692:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1446,"nodeType":"UserDefinedTypeName","pathNode":{"id":1445,"name":"buffer","nameLocations":["1692:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1692:6:11"},"referencedDeclaration":1402,"src":"1692:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1691:15:11"},"scope":1916,"src":"1634:163:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1492,"nodeType":"Block","src":"1867:90:11","statements":[{"assignments":[1478],"declarations":[{"constant":false,"id":1478,"mutability":"mutable","name":"oldbuf","nameLocation":"1886:6:11","nodeType":"VariableDeclaration","scope":1492,"src":"1873:19:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1477,"name":"bytes","nodeType":"ElementaryTypeName","src":"1873:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1481,"initialValue":{"expression":{"id":1479,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1895:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1899:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"1895:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1873:29:11"},{"expression":{"arguments":[{"id":1483,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1913:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1484,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1474,"src":"1918:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1482,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1440,"src":"1908:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1908:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1486,"nodeType":"ExpressionStatement","src":"1908:19:11"},{"expression":{"arguments":[{"id":1488,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1940:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1489,"name":"oldbuf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1478,"src":"1945:6:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1487,"name":"append","nodeType":"Identifier","overloadedDeclarations":[1636,1659],"referencedDeclaration":1659,"src":"1933:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":1490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1491,"nodeType":"ExpressionStatement","src":"1933:19:11"}]},"id":1493,"implemented":true,"kind":"function","modifiers":[],"name":"resize","nameLocation":"1810:6:11","nodeType":"FunctionDefinition","parameters":{"id":1475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1472,"mutability":"mutable","name":"buf","nameLocation":"1831:3:11","nodeType":"VariableDeclaration","scope":1493,"src":"1817:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1471,"nodeType":"UserDefinedTypeName","pathNode":{"id":1470,"name":"buffer","nameLocations":["1817:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1817:6:11"},"referencedDeclaration":1402,"src":"1817:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1474,"mutability":"mutable","name":"capacity","nameLocation":"1844:8:11","nodeType":"VariableDeclaration","scope":1493,"src":"1836:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1473,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1816:37:11"},"returnParameters":{"id":1476,"nodeType":"ParameterList","parameters":[],"src":"1867:0:11"},"scope":1916,"src":"1801:156:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1511,"nodeType":"Block","src":"2027:58:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1502,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1495,"src":"2037:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1503,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"2041:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2037:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1508,"nodeType":"IfStatement","src":"2033:34:11","trueBody":{"id":1507,"nodeType":"Block","src":"2044:23:11","statements":[{"expression":{"id":1505,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1495,"src":"2059:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1501,"id":1506,"nodeType":"Return","src":"2052:8:11"}]}},{"expression":{"id":1509,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"2079:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1501,"id":1510,"nodeType":"Return","src":"2072:8:11"}]},"id":1512,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"1970:3:11","nodeType":"FunctionDefinition","parameters":{"id":1498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1495,"mutability":"mutable","name":"a","nameLocation":"1982:1:11","nodeType":"VariableDeclaration","scope":1512,"src":"1974:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1974:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1497,"mutability":"mutable","name":"b","nameLocation":"1993:1:11","nodeType":"VariableDeclaration","scope":1512,"src":"1985:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1496,"name":"uint256","nodeType":"ElementaryTypeName","src":"1985:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1973:22:11"},"returnParameters":{"id":1501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1512,"src":"2018:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1499,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2017:9:11"},"scope":1916,"src":"1961:124:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1525,"nodeType":"Block","src":"2300:97:11","statements":[{"AST":{"nodeType":"YulBlock","src":"2315:62:11","statements":[{"nodeType":"YulVariableDeclaration","src":"2323:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"2343:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2337:5:11"},"nodeType":"YulFunctionCall","src":"2337:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"2327:6:11","type":""}]},{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"2361:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"2369:1:11","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2354:6:11"},"nodeType":"YulFunctionCall","src":"2354:17:11"},"nodeType":"YulExpressionStatement","src":"2354:17:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1516,"isOffset":false,"isSlot":false,"src":"2343:3:11","valueSize":1}],"id":1522,"nodeType":"InlineAssembly","src":"2306:71:11"},{"expression":{"id":1523,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"2389:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1521,"id":1524,"nodeType":"Return","src":"2382:10:11"}]},"documentation":{"id":1513,"nodeType":"StructuredDocumentation","src":"2089:133:11","text":" @dev Sets buffer length to 0.\n @param buf The buffer to truncate.\n @return The original buffer, for chaining.."},"id":1526,"implemented":true,"kind":"function","modifiers":[],"name":"truncate","nameLocation":"2234:8:11","nodeType":"FunctionDefinition","parameters":{"id":1517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1516,"mutability":"mutable","name":"buf","nameLocation":"2257:3:11","nodeType":"VariableDeclaration","scope":1526,"src":"2243:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1515,"nodeType":"UserDefinedTypeName","pathNode":{"id":1514,"name":"buffer","nameLocations":["2243:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2243:6:11"},"referencedDeclaration":1402,"src":"2243:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2242:19:11"},"returnParameters":{"id":1521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1526,"src":"2285:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1519,"nodeType":"UserDefinedTypeName","pathNode":{"id":1518,"name":"buffer","nameLocations":["2285:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2285:6:11"},"referencedDeclaration":1402,"src":"2285:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2284:15:11"},"scope":1916,"src":"2225:172:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1611,"nodeType":"Block","src":"2882:1073:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1543,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2896:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":1544,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"2903:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2908:6:11","memberName":"length","nodeType":"MemberAccess","src":"2903:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2896:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1542,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2888:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2888:27:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1548,"nodeType":"ExpressionStatement","src":"2888:27:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1549,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1532,"src":"2926:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1550,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2932:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1552,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2938:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2942:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"2938:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1569,"nodeType":"IfStatement","src":"2922:90:11","trueBody":{"id":1568,"nodeType":"Block","src":"2952:60:11","statements":[{"expression":{"arguments":[{"id":1556,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2967:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":1558,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2976:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2980:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"2976:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1560,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2990:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1561,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1532,"src":"2996:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2990:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1557,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1512,"src":"2972:3:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2972:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3003:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2972:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1555,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"2960:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2960:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1567,"nodeType":"ExpressionStatement","src":"2960:45:11"}]}},{"assignments":[1571],"declarations":[{"constant":false,"id":1571,"mutability":"mutable","name":"dest","nameLocation":"3026:4:11","nodeType":"VariableDeclaration","scope":1611,"src":"3018:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1570,"name":"uint256","nodeType":"ElementaryTypeName","src":"3018:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1572,"nodeType":"VariableDeclarationStatement","src":"3018:12:11"},{"assignments":[1574],"declarations":[{"constant":false,"id":1574,"mutability":"mutable","name":"src","nameLocation":"3044:3:11","nodeType":"VariableDeclaration","scope":1611,"src":"3036:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1573,"name":"uint256","nodeType":"ElementaryTypeName","src":"3036:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1575,"nodeType":"VariableDeclarationStatement","src":"3036:11:11"},{"AST":{"nodeType":"YulBlock","src":"3062:430:11","statements":[{"nodeType":"YulVariableDeclaration","src":"3113:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"3133:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3127:5:11"},"nodeType":"YulFunctionCall","src":"3127:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"3117:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3184:27:11","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3204:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3198:5:11"},"nodeType":"YulFunctionCall","src":"3198:13:11"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"3188:6:11","type":""}]},{"nodeType":"YulAssignment","src":"3291:33:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3307:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"3315:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3303:3:11"},"nodeType":"YulFunctionCall","src":"3303:15:11"},{"name":"off","nodeType":"YulIdentifier","src":"3320:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3299:3:11"},"nodeType":"YulFunctionCall","src":"3299:25:11"},"variableNames":[{"name":"dest","nodeType":"YulIdentifier","src":"3291:4:11"}]},{"body":{"nodeType":"YulBlock","src":"3412:47:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3429:6:11"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3441:3:11"},{"name":"off","nodeType":"YulIdentifier","src":"3446:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3437:3:11"},"nodeType":"YulFunctionCall","src":"3437:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3422:6:11"},"nodeType":"YulFunctionCall","src":"3422:29:11"},"nodeType":"YulExpressionStatement","src":"3422:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3393:3:11"},{"name":"off","nodeType":"YulIdentifier","src":"3398:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3389:3:11"},"nodeType":"YulFunctionCall","src":"3389:13:11"},{"name":"buflen","nodeType":"YulIdentifier","src":"3404:6:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3386:2:11"},"nodeType":"YulFunctionCall","src":"3386:25:11"},"nodeType":"YulIf","src":"3383:76:11"},{"nodeType":"YulAssignment","src":"3466:20:11","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3477:4:11"},{"kind":"number","nodeType":"YulLiteral","src":"3483:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3473:3:11"},"nodeType":"YulFunctionCall","src":"3473:13:11"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"3466:3:11"}]}]},"evmVersion":"london","externalReferences":[{"declaration":1530,"isOffset":false,"isSlot":false,"src":"3133:3:11","valueSize":1},{"declaration":1534,"isOffset":false,"isSlot":false,"src":"3477:4:11","valueSize":1},{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3291:4:11","valueSize":1},{"declaration":1536,"isOffset":false,"isSlot":false,"src":"3393:3:11","valueSize":1},{"declaration":1536,"isOffset":false,"isSlot":false,"src":"3441:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3320:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3398:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3446:3:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3466:3:11","valueSize":1}],"id":1576,"nodeType":"InlineAssembly","src":"3053:439:11"},{"body":{"id":1593,"nodeType":"Block","src":"3573:100:11","statements":[{"AST":{"nodeType":"YulBlock","src":"3590:42:11","statements":[{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3607:4:11"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3619:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3613:5:11"},"nodeType":"YulFunctionCall","src":"3613:10:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3600:6:11"},"nodeType":"YulFunctionCall","src":"3600:24:11"},"nodeType":"YulExpressionStatement","src":"3600:24:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3607:4:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3619:3:11","valueSize":1}],"id":1584,"nodeType":"InlineAssembly","src":"3581:51:11"},{"expression":{"id":1587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1585,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"3639:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3647:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3639:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1588,"nodeType":"ExpressionStatement","src":"3639:10:11"},{"expression":{"id":1591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1589,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"3657:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3664:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3657:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1592,"nodeType":"ExpressionStatement","src":"3657:9:11"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1577,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3551:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":1578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3558:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3551:9:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1594,"loopExpression":{"expression":{"id":1582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1580,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3562:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":1581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3569:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3562:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1583,"nodeType":"ExpressionStatement","src":"3562:9:11"},"nodeType":"ForStatement","src":"3544:129:11"},{"id":1608,"nodeType":"UncheckedBlock","src":"3707:227:11","statements":[{"assignments":[1596],"declarations":[{"constant":false,"id":1596,"mutability":"mutable","name":"mask","nameLocation":"3733:4:11","nodeType":"VariableDeclaration","scope":1608,"src":"3725:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1595,"name":"uint256","nodeType":"ElementaryTypeName","src":"3725:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1606,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3741:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3747:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1599,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3752:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3747:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1601,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3746:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3741:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1603,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3740:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3760:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3740:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3725:36:11"},{"AST":{"nodeType":"YulBlock","src":"3778:150:11","statements":[{"nodeType":"YulVariableDeclaration","src":"3788:41:11","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3813:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3807:5:11"},"nodeType":"YulFunctionCall","src":"3807:10:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"3823:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3819:3:11"},"nodeType":"YulFunctionCall","src":"3819:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3803:3:11"},"nodeType":"YulFunctionCall","src":"3803:26:11"},"variables":[{"name":"srcpart","nodeType":"YulTypedName","src":"3792:7:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3838:38:11","value":{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3864:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3858:5:11"},"nodeType":"YulFunctionCall","src":"3858:11:11"},{"name":"mask","nodeType":"YulIdentifier","src":"3871:4:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3854:3:11"},"nodeType":"YulFunctionCall","src":"3854:22:11"},"variables":[{"name":"destpart","nodeType":"YulTypedName","src":"3842:8:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3892:4:11"},{"arguments":[{"name":"destpart","nodeType":"YulIdentifier","src":"3901:8:11"},{"name":"srcpart","nodeType":"YulIdentifier","src":"3911:7:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3898:2:11"},"nodeType":"YulFunctionCall","src":"3898:21:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3885:6:11"},"nodeType":"YulFunctionCall","src":"3885:35:11"},"nodeType":"YulExpressionStatement","src":"3885:35:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3864:4:11","valueSize":1},{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3892:4:11","valueSize":1},{"declaration":1596,"isOffset":false,"isSlot":false,"src":"3823:4:11","valueSize":1},{"declaration":1596,"isOffset":false,"isSlot":false,"src":"3871:4:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3813:3:11","valueSize":1}],"id":1607,"nodeType":"InlineAssembly","src":"3769:159:11"}]},{"expression":{"id":1609,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"3947:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1541,"id":1610,"nodeType":"Return","src":"3940:10:11"}]},"documentation":{"id":1527,"nodeType":"StructuredDocumentation","src":"2401:341:11","text":" @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The start offset to write to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1612,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"2754:5:11","nodeType":"FunctionDefinition","parameters":{"id":1537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1530,"mutability":"mutable","name":"buf","nameLocation":"2779:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2765:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1529,"nodeType":"UserDefinedTypeName","pathNode":{"id":1528,"name":"buffer","nameLocations":["2765:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2765:6:11"},"referencedDeclaration":1402,"src":"2765:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1532,"mutability":"mutable","name":"off","nameLocation":"2796:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2788:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1531,"name":"uint256","nodeType":"ElementaryTypeName","src":"2788:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1534,"mutability":"mutable","name":"data","nameLocation":"2818:4:11","nodeType":"VariableDeclaration","scope":1612,"src":"2805:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1533,"name":"bytes","nodeType":"ElementaryTypeName","src":"2805:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1536,"mutability":"mutable","name":"len","nameLocation":"2836:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2828:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1535,"name":"uint256","nodeType":"ElementaryTypeName","src":"2828:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2759:84:11"},"returnParameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1612,"src":"2867:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1539,"nodeType":"UserDefinedTypeName","pathNode":{"id":1538,"name":"buffer","nameLocations":["2867:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2867:6:11"},"referencedDeclaration":1402,"src":"2867:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2866:15:11"},"scope":1916,"src":"2745:1210:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1635,"nodeType":"Block","src":"4379:55:11","statements":[{"expression":{"arguments":[{"id":1627,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"4398:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1628,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"4403:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4407:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4403:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4411:6:11","memberName":"length","nodeType":"MemberAccess","src":"4403:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1631,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"4419:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1632,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"4425:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1626,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1612,"src":"4392:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4392:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1625,"id":1634,"nodeType":"Return","src":"4385:44:11"}]},"documentation":{"id":1613,"nodeType":"StructuredDocumentation","src":"3959:296:11","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1636,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4267:6:11","nodeType":"FunctionDefinition","parameters":{"id":1621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1616,"mutability":"mutable","name":"buf","nameLocation":"4293:3:11","nodeType":"VariableDeclaration","scope":1636,"src":"4279:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1615,"nodeType":"UserDefinedTypeName","pathNode":{"id":1614,"name":"buffer","nameLocations":["4279:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4279:6:11"},"referencedDeclaration":1402,"src":"4279:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1618,"mutability":"mutable","name":"data","nameLocation":"4315:4:11","nodeType":"VariableDeclaration","scope":1636,"src":"4302:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1617,"name":"bytes","nodeType":"ElementaryTypeName","src":"4302:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1620,"mutability":"mutable","name":"len","nameLocation":"4333:3:11","nodeType":"VariableDeclaration","scope":1636,"src":"4325:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1619,"name":"uint256","nodeType":"ElementaryTypeName","src":"4325:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4273:67:11"},"returnParameters":{"id":1625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1636,"src":"4364:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1623,"nodeType":"UserDefinedTypeName","pathNode":{"id":1622,"name":"buffer","nameLocations":["4364:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4364:6:11"},"referencedDeclaration":1402,"src":"4364:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4363:15:11"},"scope":1916,"src":"4258:176:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1658,"nodeType":"Block","src":"4784:63:11","statements":[{"expression":{"arguments":[{"id":1649,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1640,"src":"4803:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1650,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1640,"src":"4808:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4812:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4808:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4816:6:11","memberName":"length","nodeType":"MemberAccess","src":"4808:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1653,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"4824:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1654,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"4830:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4835:6:11","memberName":"length","nodeType":"MemberAccess","src":"4830:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1648,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1612,"src":"4797:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4797:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1647,"id":1657,"nodeType":"Return","src":"4790:52:11"}]},"documentation":{"id":1637,"nodeType":"StructuredDocumentation","src":"4438:251:11","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1659,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4701:6:11","nodeType":"FunctionDefinition","parameters":{"id":1643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1640,"mutability":"mutable","name":"buf","nameLocation":"4722:3:11","nodeType":"VariableDeclaration","scope":1659,"src":"4708:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1639,"nodeType":"UserDefinedTypeName","pathNode":{"id":1638,"name":"buffer","nameLocations":["4708:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4708:6:11"},"referencedDeclaration":1402,"src":"4708:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1642,"mutability":"mutable","name":"data","nameLocation":"4740:4:11","nodeType":"VariableDeclaration","scope":1659,"src":"4727:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1641,"name":"bytes","nodeType":"ElementaryTypeName","src":"4727:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4707:38:11"},"returnParameters":{"id":1647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1659,"src":"4769:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1645,"nodeType":"UserDefinedTypeName","pathNode":{"id":1644,"name":"buffer","nameLocations":["4769:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4769:6:11"},"referencedDeclaration":1402,"src":"4769:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4768:15:11"},"scope":1916,"src":"4692:155:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1690,"nodeType":"Block","src":"5266:521:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1673,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"5276:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":1674,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5283:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5287:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"5283:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5276:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1686,"nodeType":"IfStatement","src":"5272:69:11","trueBody":{"id":1685,"nodeType":"Block","src":"5297:44:11","statements":[{"expression":{"arguments":[{"id":1678,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5312:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1679,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5317:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5321:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"5317:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5332:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5317:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1677,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"5305:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5305:29:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1684,"nodeType":"ExpressionStatement","src":"5305:29:11"}]}},{"AST":{"nodeType":"YulBlock","src":"5356:411:11","statements":[{"nodeType":"YulVariableDeclaration","src":"5407:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"5427:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5421:5:11"},"nodeType":"YulFunctionCall","src":"5421:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"5411:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5478:27:11","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5498:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5492:5:11"},"nodeType":"YulFunctionCall","src":"5492:13:11"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"5482:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5576:37:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5596:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"5604:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5592:3:11"},"nodeType":"YulFunctionCall","src":"5592:16:11"},{"kind":"number","nodeType":"YulLiteral","src":"5610:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5588:3:11"},"nodeType":"YulFunctionCall","src":"5588:25:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"5580:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"5628:4:11"},{"name":"data","nodeType":"YulIdentifier","src":"5634:4:11"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"5620:7:11"},"nodeType":"YulFunctionCall","src":"5620:19:11"},"nodeType":"YulExpressionStatement","src":"5620:19:11"},{"body":{"nodeType":"YulBlock","src":"5713:48:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5730:6:11"},{"arguments":[{"name":"buflen","nodeType":"YulIdentifier","src":"5742:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"5750:1:11","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:11"},"nodeType":"YulFunctionCall","src":"5738:14:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5723:6:11"},"nodeType":"YulFunctionCall","src":"5723:30:11"},"nodeType":"YulExpressionStatement","src":"5723:30:11"}]},"condition":{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"5700:3:11"},{"name":"buflen","nodeType":"YulIdentifier","src":"5705:6:11"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5697:2:11"},"nodeType":"YulFunctionCall","src":"5697:15:11"},"nodeType":"YulIf","src":"5694:67:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1663,"isOffset":false,"isSlot":false,"src":"5427:3:11","valueSize":1},{"declaration":1667,"isOffset":false,"isSlot":false,"src":"5634:4:11","valueSize":1},{"declaration":1665,"isOffset":false,"isSlot":false,"src":"5604:3:11","valueSize":1},{"declaration":1665,"isOffset":false,"isSlot":false,"src":"5700:3:11","valueSize":1}],"id":1687,"nodeType":"InlineAssembly","src":"5347:420:11"},{"expression":{"id":1688,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5779:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1672,"id":1689,"nodeType":"Return","src":"5772:10:11"}]},"documentation":{"id":1660,"nodeType":"StructuredDocumentation","src":"4851:294:11","text":" @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write the byte at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1691,"implemented":true,"kind":"function","modifiers":[],"name":"writeUint8","nameLocation":"5157:10:11","nodeType":"FunctionDefinition","parameters":{"id":1668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1663,"mutability":"mutable","name":"buf","nameLocation":"5187:3:11","nodeType":"VariableDeclaration","scope":1691,"src":"5173:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1662,"nodeType":"UserDefinedTypeName","pathNode":{"id":1661,"name":"buffer","nameLocations":["5173:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"5173:6:11"},"referencedDeclaration":1402,"src":"5173:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1665,"mutability":"mutable","name":"off","nameLocation":"5204:3:11","nodeType":"VariableDeclaration","scope":1691,"src":"5196:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1664,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1667,"mutability":"mutable","name":"data","nameLocation":"5219:4:11","nodeType":"VariableDeclaration","scope":1691,"src":"5213:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1666,"name":"uint8","nodeType":"ElementaryTypeName","src":"5213:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5167:60:11"},"returnParameters":{"id":1672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1691,"src":"5251:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1670,"nodeType":"UserDefinedTypeName","pathNode":{"id":1669,"name":"buffer","nameLocations":["5251:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"5251:6:11"},"referencedDeclaration":1402,"src":"5251:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"5250:15:11"},"scope":1916,"src":"5148:639:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1711,"nodeType":"Block","src":"6130:55:11","statements":[{"expression":{"arguments":[{"id":1704,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1695,"src":"6154:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1705,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1695,"src":"6159:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6163:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"6159:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6167:6:11","memberName":"length","nodeType":"MemberAccess","src":"6159:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1708,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"6175:4:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1703,"name":"writeUint8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"6143:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6143:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1702,"id":1710,"nodeType":"Return","src":"6136:44:11"}]},"documentation":{"id":1692,"nodeType":"StructuredDocumentation","src":"5791:246:11","text":" @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1712,"implemented":true,"kind":"function","modifiers":[],"name":"appendUint8","nameLocation":"6049:11:11","nodeType":"FunctionDefinition","parameters":{"id":1698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1695,"mutability":"mutable","name":"buf","nameLocation":"6075:3:11","nodeType":"VariableDeclaration","scope":1712,"src":"6061:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1694,"nodeType":"UserDefinedTypeName","pathNode":{"id":1693,"name":"buffer","nameLocations":["6061:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6061:6:11"},"referencedDeclaration":1402,"src":"6061:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1697,"mutability":"mutable","name":"data","nameLocation":"6086:4:11","nodeType":"VariableDeclaration","scope":1712,"src":"6080:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1696,"name":"uint8","nodeType":"ElementaryTypeName","src":"6080:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6060:31:11"},"returnParameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1712,"src":"6115:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1700,"nodeType":"UserDefinedTypeName","pathNode":{"id":1699,"name":"buffer","nameLocations":["6115:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6115:6:11"},"referencedDeclaration":1402,"src":"6115:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6114:15:11"},"scope":1916,"src":"6040:145:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1771,"nodeType":"Block","src":"6677:652:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1728,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6687:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1729,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6693:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1731,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6699:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6703:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"6699:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1745,"nodeType":"IfStatement","src":"6683:73:11","trueBody":{"id":1744,"nodeType":"Block","src":"6713:43:11","statements":[{"expression":{"arguments":[{"id":1735,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6728:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1736,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6734:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1737,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6740:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6734:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1739,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6733:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6747:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6733:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1734,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"6721:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6721:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1743,"nodeType":"ExpressionStatement","src":"6721:28:11"}]}},{"id":1768,"nodeType":"UncheckedBlock","src":"6762:547:11","statements":[{"assignments":[1747],"declarations":[{"constant":false,"id":1747,"mutability":"mutable","name":"mask","nameLocation":"6788:4:11","nodeType":"VariableDeclaration","scope":1768,"src":"6780:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1746,"name":"uint256","nodeType":"ElementaryTypeName","src":"6780:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1754,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6796:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1749,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6801:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6796:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1751,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6795:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6808:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6795:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6780:29:11"},{"expression":{"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1755,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1720,"src":"6843:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1756,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1720,"src":"6850:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":1757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6859:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6864:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1759,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6869:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6864:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1761,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6863:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6859:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1763,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6858:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6850:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6843:31:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1766,"nodeType":"ExpressionStatement","src":"6843:31:11"},{"AST":{"nodeType":"YulBlock","src":"6891:412:11","statements":[{"nodeType":"YulVariableDeclaration","src":"6946:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"6966:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6960:5:11"},"nodeType":"YulFunctionCall","src":"6960:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"6950:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7051:38:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7071:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"7079:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7067:3:11"},"nodeType":"YulFunctionCall","src":"7067:16:11"},{"name":"len","nodeType":"YulIdentifier","src":"7085:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7063:3:11"},"nodeType":"YulFunctionCall","src":"7063:26:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"7055:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7105:4:11"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7124:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7118:5:11"},"nodeType":"YulFunctionCall","src":"7118:11:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"7135:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7131:3:11"},"nodeType":"YulFunctionCall","src":"7131:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7114:3:11"},"nodeType":"YulFunctionCall","src":"7114:27:11"},{"name":"data","nodeType":"YulIdentifier","src":"7143:4:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7111:2:11"},"nodeType":"YulFunctionCall","src":"7111:37:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7098:6:11"},"nodeType":"YulFunctionCall","src":"7098:51:11"},"nodeType":"YulExpressionStatement","src":"7098:51:11"},{"body":{"nodeType":"YulBlock","src":"7244:51:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7263:6:11"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7275:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"7280:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7271:3:11"},"nodeType":"YulFunctionCall","src":"7271:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7256:6:11"},"nodeType":"YulFunctionCall","src":"7256:29:11"},"nodeType":"YulExpressionStatement","src":"7256:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7218:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"7223:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7214:3:11"},"nodeType":"YulFunctionCall","src":"7214:13:11"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7235:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7229:5:11"},"nodeType":"YulFunctionCall","src":"7229:13:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7211:2:11"},"nodeType":"YulFunctionCall","src":"7211:32:11"},"nodeType":"YulIf","src":"7208:87:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1716,"isOffset":false,"isSlot":false,"src":"6966:3:11","valueSize":1},{"declaration":1720,"isOffset":false,"isSlot":false,"src":"7143:4:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7085:3:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7223:3:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7280:3:11","valueSize":1},{"declaration":1747,"isOffset":false,"isSlot":false,"src":"7135:4:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7079:3:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7218:3:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7275:3:11","valueSize":1}],"id":1767,"nodeType":"InlineAssembly","src":"6882:421:11"}]},{"expression":{"id":1769,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"7321:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1727,"id":1770,"nodeType":"Return","src":"7314:10:11"}]},"documentation":{"id":1713,"nodeType":"StructuredDocumentation","src":"6189:354:11","text":" @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (left-aligned).\n @return The original buffer, for chaining."},"id":1772,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"6555:5:11","nodeType":"FunctionDefinition","parameters":{"id":1723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1716,"mutability":"mutable","name":"buf","nameLocation":"6580:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6566:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1715,"nodeType":"UserDefinedTypeName","pathNode":{"id":1714,"name":"buffer","nameLocations":["6566:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6566:6:11"},"referencedDeclaration":1402,"src":"6566:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1718,"mutability":"mutable","name":"off","nameLocation":"6597:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6589:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1717,"name":"uint256","nodeType":"ElementaryTypeName","src":"6589:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1720,"mutability":"mutable","name":"data","nameLocation":"6614:4:11","nodeType":"VariableDeclaration","scope":1772,"src":"6606:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1719,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6606:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1722,"mutability":"mutable","name":"len","nameLocation":"6632:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6624:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1721,"name":"uint256","nodeType":"ElementaryTypeName","src":"6624:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6560:79:11"},"returnParameters":{"id":1727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1772,"src":"6662:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1725,"nodeType":"UserDefinedTypeName","pathNode":{"id":1724,"name":"buffer","nameLocations":["6662:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6662:6:11"},"referencedDeclaration":1402,"src":"6662:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6661:15:11"},"scope":1916,"src":"6546:783:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1796,"nodeType":"Block","src":"7746:52:11","statements":[{"expression":{"arguments":[{"id":1787,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"7765:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1788,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"7770:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1791,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1780,"src":"7783:4:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7775:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7775:7:11","typeDescriptions":{}}},"id":1792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7775:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7790:2:11","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1786,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"7759:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7759:34:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1785,"id":1795,"nodeType":"Return","src":"7752:41:11"}]},"documentation":{"id":1773,"nodeType":"StructuredDocumentation","src":"7333:288:11","text":" @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1797,"implemented":true,"kind":"function","modifiers":[],"name":"writeBytes20","nameLocation":"7633:12:11","nodeType":"FunctionDefinition","parameters":{"id":1781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1776,"mutability":"mutable","name":"buf","nameLocation":"7665:3:11","nodeType":"VariableDeclaration","scope":1797,"src":"7651:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1775,"nodeType":"UserDefinedTypeName","pathNode":{"id":1774,"name":"buffer","nameLocations":["7651:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"7651:6:11"},"referencedDeclaration":1402,"src":"7651:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1778,"mutability":"mutable","name":"off","nameLocation":"7682:3:11","nodeType":"VariableDeclaration","scope":1797,"src":"7674:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1777,"name":"uint256","nodeType":"ElementaryTypeName","src":"7674:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1780,"mutability":"mutable","name":"data","nameLocation":"7699:4:11","nodeType":"VariableDeclaration","scope":1797,"src":"7691:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1779,"name":"bytes20","nodeType":"ElementaryTypeName","src":"7691:7:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"7645:62:11"},"returnParameters":{"id":1785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1797,"src":"7731:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1783,"nodeType":"UserDefinedTypeName","pathNode":{"id":1782,"name":"buffer","nameLocations":["7731:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"7731:6:11"},"referencedDeclaration":1402,"src":"7731:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"7730:15:11"},"scope":1916,"src":"7624:174:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1821,"nodeType":"Block","src":"8149:63:11","statements":[{"expression":{"arguments":[{"id":1810,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"8168:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1811,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"8173:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8177:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"8173:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8181:6:11","memberName":"length","nodeType":"MemberAccess","src":"8173:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1816,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1803,"src":"8197:4:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8189:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8189:7:11","typeDescriptions":{}}},"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8189:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8204:2:11","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1809,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"8162:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8162:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1808,"id":1820,"nodeType":"Return","src":"8155:52:11"}]},"documentation":{"id":1798,"nodeType":"StructuredDocumentation","src":"7802:250:11","text":" @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chhaining."},"id":1822,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes20","nameLocation":"8064:13:11","nodeType":"FunctionDefinition","parameters":{"id":1804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1801,"mutability":"mutable","name":"buf","nameLocation":"8092:3:11","nodeType":"VariableDeclaration","scope":1822,"src":"8078:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1800,"nodeType":"UserDefinedTypeName","pathNode":{"id":1799,"name":"buffer","nameLocations":["8078:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8078:6:11"},"referencedDeclaration":1402,"src":"8078:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1803,"mutability":"mutable","name":"data","nameLocation":"8105:4:11","nodeType":"VariableDeclaration","scope":1822,"src":"8097:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1802,"name":"bytes20","nodeType":"ElementaryTypeName","src":"8097:7:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"8077:33:11"},"returnParameters":{"id":1808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1822,"src":"8134:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1806,"nodeType":"UserDefinedTypeName","pathNode":{"id":1805,"name":"buffer","nameLocations":["8134:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8134:6:11"},"referencedDeclaration":1402,"src":"8134:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8133:15:11"},"scope":1916,"src":"8055:157:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1843,"nodeType":"Block","src":"8562:54:11","statements":[{"expression":{"arguments":[{"id":1835,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"8581:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1836,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"8586:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8590:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"8586:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8594:6:11","memberName":"length","nodeType":"MemberAccess","src":"8586:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1839,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1828,"src":"8602:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3332","id":1840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8608:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":1834,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"8575:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8575:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1833,"id":1842,"nodeType":"Return","src":"8568:43:11"}]},"documentation":{"id":1823,"nodeType":"StructuredDocumentation","src":"8216:249:11","text":" @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1844,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes32","nameLocation":"8477:13:11","nodeType":"FunctionDefinition","parameters":{"id":1829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1826,"mutability":"mutable","name":"buf","nameLocation":"8505:3:11","nodeType":"VariableDeclaration","scope":1844,"src":"8491:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1825,"nodeType":"UserDefinedTypeName","pathNode":{"id":1824,"name":"buffer","nameLocations":["8491:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8491:6:11"},"referencedDeclaration":1402,"src":"8491:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1828,"mutability":"mutable","name":"data","nameLocation":"8518:4:11","nodeType":"VariableDeclaration","scope":1844,"src":"8510:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1827,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8510:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8490:33:11"},"returnParameters":{"id":1833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1844,"src":"8547:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1831,"nodeType":"UserDefinedTypeName","pathNode":{"id":1830,"name":"buffer","nameLocations":["8547:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8547:6:11"},"referencedDeclaration":1402,"src":"8547:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8546:15:11"},"scope":1916,"src":"8468:148:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1890,"nodeType":"Block","src":"9108:541:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1860,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9118:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1861,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"9124:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1863,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9130:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9134:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"9130:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1877,"nodeType":"IfStatement","src":"9114:73:11","trueBody":{"id":1876,"nodeType":"Block","src":"9144:43:11","statements":[{"expression":{"arguments":[{"id":1867,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9159:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1868,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9165:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1869,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"9171:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9165:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1871,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9164:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9178:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9164:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1866,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"9152:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9152:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1875,"nodeType":"ExpressionStatement","src":"9152:28:11"}]}},{"assignments":[1879],"declarations":[{"constant":false,"id":1879,"mutability":"mutable","name":"mask","nameLocation":"9201:4:11","nodeType":"VariableDeclaration","scope":1890,"src":"9193:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1878,"name":"uint256","nodeType":"ElementaryTypeName","src":"9193:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1886,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9209:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1881,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9214:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9209:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1883,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9208:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9221:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9208:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9193:29:11"},{"AST":{"nodeType":"YulBlock","src":"9237:392:11","statements":[{"nodeType":"YulVariableDeclaration","src":"9288:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"9308:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9302:5:11"},"nodeType":"YulFunctionCall","src":"9302:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"9292:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9389:38:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9409:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"9417:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9405:3:11"},"nodeType":"YulFunctionCall","src":"9405:16:11"},{"name":"len","nodeType":"YulIdentifier","src":"9423:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9401:3:11"},"nodeType":"YulFunctionCall","src":"9401:26:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"9393:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9441:4:11"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9460:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9454:5:11"},"nodeType":"YulFunctionCall","src":"9454:11:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"9471:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9467:3:11"},"nodeType":"YulFunctionCall","src":"9467:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9450:3:11"},"nodeType":"YulFunctionCall","src":"9450:27:11"},{"name":"data","nodeType":"YulIdentifier","src":"9479:4:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9447:2:11"},"nodeType":"YulFunctionCall","src":"9447:37:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9434:6:11"},"nodeType":"YulFunctionCall","src":"9434:51:11"},"nodeType":"YulExpressionStatement","src":"9434:51:11"},{"body":{"nodeType":"YulBlock","src":"9576:47:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9593:6:11"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9605:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"9610:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9601:3:11"},"nodeType":"YulFunctionCall","src":"9601:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9586:6:11"},"nodeType":"YulFunctionCall","src":"9586:29:11"},"nodeType":"YulExpressionStatement","src":"9586:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9550:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"9555:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9546:3:11"},"nodeType":"YulFunctionCall","src":"9546:13:11"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9567:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9561:5:11"},"nodeType":"YulFunctionCall","src":"9561:13:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9543:2:11"},"nodeType":"YulFunctionCall","src":"9543:32:11"},"nodeType":"YulIf","src":"9540:83:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1848,"isOffset":false,"isSlot":false,"src":"9308:3:11","valueSize":1},{"declaration":1852,"isOffset":false,"isSlot":false,"src":"9479:4:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9423:3:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9555:3:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9610:3:11","valueSize":1},{"declaration":1879,"isOffset":false,"isSlot":false,"src":"9471:4:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9417:3:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9550:3:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9605:3:11","valueSize":1}],"id":1887,"nodeType":"InlineAssembly","src":"9228:401:11"},{"expression":{"id":1888,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9641:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1859,"id":1889,"nodeType":"Return","src":"9634:10:11"}]},"documentation":{"id":1845,"nodeType":"StructuredDocumentation","src":"8620:351:11","text":" @dev Writes an integer to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (right-aligned).\n @return The original buffer, for chaining."},"id":1891,"implemented":true,"kind":"function","modifiers":[],"name":"writeInt","nameLocation":"8983:8:11","nodeType":"FunctionDefinition","parameters":{"id":1855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"mutability":"mutable","name":"buf","nameLocation":"9011:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"8997:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1847,"nodeType":"UserDefinedTypeName","pathNode":{"id":1846,"name":"buffer","nameLocations":["8997:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8997:6:11"},"referencedDeclaration":1402,"src":"8997:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1850,"mutability":"mutable","name":"off","nameLocation":"9028:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"9020:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1849,"name":"uint256","nodeType":"ElementaryTypeName","src":"9020:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1852,"mutability":"mutable","name":"data","nameLocation":"9045:4:11","nodeType":"VariableDeclaration","scope":1891,"src":"9037:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1851,"name":"uint256","nodeType":"ElementaryTypeName","src":"9037:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1854,"mutability":"mutable","name":"len","nameLocation":"9063:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"9055:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1853,"name":"uint256","nodeType":"ElementaryTypeName","src":"9055:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8991:79:11"},"returnParameters":{"id":1859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1891,"src":"9093:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1857,"nodeType":"UserDefinedTypeName","pathNode":{"id":1856,"name":"buffer","nameLocations":["9093:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9093:6:11"},"referencedDeclaration":1402,"src":"9093:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9092:15:11"},"scope":1916,"src":"8974:675:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1914,"nodeType":"Block","src":"10013:58:11","statements":[{"expression":{"arguments":[{"id":1906,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1895,"src":"10035:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1907,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1895,"src":"10040:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10044:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"10040:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10048:6:11","memberName":"length","nodeType":"MemberAccess","src":"10040:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1910,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"10056:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1911,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1899,"src":"10062:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1905,"name":"writeInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"10026:8:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10026:40:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1904,"id":1913,"nodeType":"Return","src":"10019:47:11"}]},"documentation":{"id":1892,"nodeType":"StructuredDocumentation","src":"9653:238:11","text":" @dev Appends a byte to the end of the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer."},"id":1915,"implemented":true,"kind":"function","modifiers":[],"name":"appendInt","nameLocation":"9903:9:11","nodeType":"FunctionDefinition","parameters":{"id":1900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1895,"mutability":"mutable","name":"buf","nameLocation":"9932:3:11","nodeType":"VariableDeclaration","scope":1915,"src":"9918:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1894,"nodeType":"UserDefinedTypeName","pathNode":{"id":1893,"name":"buffer","nameLocations":["9918:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9918:6:11"},"referencedDeclaration":1402,"src":"9918:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1897,"mutability":"mutable","name":"data","nameLocation":"9949:4:11","nodeType":"VariableDeclaration","scope":1915,"src":"9941:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1896,"name":"uint256","nodeType":"ElementaryTypeName","src":"9941:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1899,"mutability":"mutable","name":"len","nameLocation":"9967:3:11","nodeType":"VariableDeclaration","scope":1915,"src":"9959:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1898,"name":"uint256","nodeType":"ElementaryTypeName","src":"9959:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9912:62:11"},"returnParameters":{"id":1904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1915,"src":"9998:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1902,"nodeType":"UserDefinedTypeName","pathNode":{"id":1901,"name":"buffer","nameLocations":["9998:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9998:6:11"},"referencedDeclaration":1402,"src":"9998:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9997:15:11"},"scope":1916,"src":"9894:177:11","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1917,"src":"441:9632:11","usedErrors":[]}],"src":"32:10042:11"},"id":11},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363]},"id":2364,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1918,"literals":["solidity",">=","0.4",".19"],"nodeType":"PragmaDirective","src":"32:25:12"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./BufferChainlink.sol","id":1920,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2364,"sourceUnit":1917,"src":"59:54:12","symbolAliases":[{"foreign":{"id":1919,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"67:15:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"CBORChainlink","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2363,"linearizedBaseContracts":[2363],"name":"CBORChainlink","nameLocation":"123:13:12","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1924,"libraryName":{"id":1921,"name":"BufferChainlink","nameLocations":["147:15:12"],"nodeType":"IdentifierPath","referencedDeclaration":1916,"src":"147:15:12"},"nodeType":"UsingForDirective","src":"141:49:12","typeName":{"id":1923,"nodeType":"UserDefinedTypeName","pathNode":{"id":1922,"name":"BufferChainlink.buffer","nameLocations":["167:15:12","183:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"167:22:12"},"referencedDeclaration":1402,"src":"167:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"constant":true,"id":1927,"mutability":"constant","name":"MAJOR_TYPE_INT","nameLocation":"217:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"194:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1925,"name":"uint8","nodeType":"ElementaryTypeName","src":"194:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":1926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"234:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":1930,"mutability":"constant","name":"MAJOR_TYPE_NEGATIVE_INT","nameLocation":"262:23:12","nodeType":"VariableDeclaration","scope":2363,"src":"239:50:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1928,"name":"uint8","nodeType":"ElementaryTypeName","src":"239:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":1933,"mutability":"constant","name":"MAJOR_TYPE_BYTES","nameLocation":"316:16:12","nodeType":"VariableDeclaration","scope":2363,"src":"293:43:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1931,"name":"uint8","nodeType":"ElementaryTypeName","src":"293:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"335:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1936,"mutability":"constant","name":"MAJOR_TYPE_STRING","nameLocation":"363:17:12","nodeType":"VariableDeclaration","scope":2363,"src":"340:44:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1934,"name":"uint8","nodeType":"ElementaryTypeName","src":"340:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"383:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"constant":true,"id":1939,"mutability":"constant","name":"MAJOR_TYPE_ARRAY","nameLocation":"411:16:12","nodeType":"VariableDeclaration","scope":2363,"src":"388:43:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1937,"name":"uint8","nodeType":"ElementaryTypeName","src":"388:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":1938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"430:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"private"},{"constant":true,"id":1942,"mutability":"constant","name":"MAJOR_TYPE_MAP","nameLocation":"458:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"435:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1940,"name":"uint8","nodeType":"ElementaryTypeName","src":"435:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"35","id":1941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"475:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"visibility":"private"},{"constant":true,"id":1945,"mutability":"constant","name":"MAJOR_TYPE_TAG","nameLocation":"503:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"480:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1943,"name":"uint8","nodeType":"ElementaryTypeName","src":"480:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"36","id":1944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"520:1:12","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"visibility":"private"},{"constant":true,"id":1948,"mutability":"constant","name":"MAJOR_TYPE_CONTENT_FREE","nameLocation":"548:23:12","nodeType":"VariableDeclaration","scope":2363,"src":"525:50:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1946,"name":"uint8","nodeType":"ElementaryTypeName","src":"525:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"37","id":1947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"574:1:12","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"private"},{"constant":true,"id":1951,"mutability":"constant","name":"TAG_TYPE_BIGNUM","nameLocation":"603:15:12","nodeType":"VariableDeclaration","scope":2363,"src":"580:42:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1949,"name":"uint8","nodeType":"ElementaryTypeName","src":"580:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"621:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1954,"mutability":"constant","name":"TAG_TYPE_NEGATIVE_BIGNUM","nameLocation":"649:24:12","nodeType":"VariableDeclaration","scope":2363,"src":"626:51:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1952,"name":"uint8","nodeType":"ElementaryTypeName","src":"626:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"676:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"body":{"id":2083,"nodeType":"Block","src":"785:522:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1964,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"794:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3233","id":1965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"803:2:12","typeDescriptions":{"typeIdentifier":"t_rational_23_by_1","typeString":"int_const 23"},"value":"23"},"src":"794:11:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1982,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"876:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646","id":1983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"885:4:12","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"876:13:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2007,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"988:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"307846464646","id":2008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"997:6:12","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"value":"0xFFFF"},"src":"988:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2032,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1102:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646464646464646","id":2033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:10:12","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xFFFFFFFF"},"src":"1102:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2078,"nodeType":"Block","src":"1216:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2062,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1247:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1256:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1247:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2065,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1246:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3237","id":2066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:2:12","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"1246:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1240:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2060,"name":"uint8","nodeType":"ElementaryTypeName","src":"1240:5:12","typeDescriptions":{}}},"id":2068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1240:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2057,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1224:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1228:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1224:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1224:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2070,"nodeType":"ExpressionStatement","src":"1224:41:12"},{"expression":{"arguments":[{"id":2074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1287:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"38","id":2075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1294:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"expression":{"id":2071,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1273:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1277:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1273:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1273:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2077,"nodeType":"ExpressionStatement","src":"1273:23:12"}]},"id":2079,"nodeType":"IfStatement","src":"1098:205:12","trueBody":{"id":2056,"nodeType":"Block","src":"1123:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2040,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1154:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1163:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1154:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2043,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1153:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3236","id":2044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1168:2:12","typeDescriptions":{"typeIdentifier":"t_rational_26_by_1","typeString":"int_const 26"},"value":"26"},"src":"1153:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1147:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2038,"name":"uint8","nodeType":"ElementaryTypeName","src":"1147:5:12","typeDescriptions":{}}},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2035,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1131:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1135:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1131:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1131:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2048,"nodeType":"ExpressionStatement","src":"1131:41:12"},{"expression":{"arguments":[{"id":2052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1194:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"34","id":2053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1201:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"expression":{"id":2049,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1180:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1184:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1180:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1180:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2055,"nodeType":"ExpressionStatement","src":"1180:23:12"}]}},"id":2080,"nodeType":"IfStatement","src":"984:319:12","trueBody":{"id":2031,"nodeType":"Block","src":"1005:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2015,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1036:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1036:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2018,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1035:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3235","id":2019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:2:12","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"src":"1035:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1029:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2013,"name":"uint8","nodeType":"ElementaryTypeName","src":"1029:5:12","typeDescriptions":{}}},"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1029:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2010,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1013:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1017:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1013:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1013:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2023,"nodeType":"ExpressionStatement","src":"1013:41:12"},{"expression":{"arguments":[{"id":2027,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1076:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"32","id":2028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1083:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":2024,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1062:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1066:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1062:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1062:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2030,"nodeType":"ExpressionStatement","src":"1062:23:12"}]}},"id":2081,"nodeType":"IfStatement","src":"872:431:12","trueBody":{"id":2006,"nodeType":"Block","src":"891:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1990,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"922:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"922:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1993,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"921:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3234","id":1994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:2:12","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"921:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1988,"name":"uint8","nodeType":"ElementaryTypeName","src":"915:5:12","typeDescriptions":{}}},"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1985,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"899:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"903:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"899:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"899:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1998,"nodeType":"ExpressionStatement","src":"899:41:12"},{"expression":{"arguments":[{"id":2002,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"962:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"31","id":2003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"969:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":1999,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"948:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"952:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"948:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2005,"nodeType":"ExpressionStatement","src":"948:23:12"}]}},"id":2082,"nodeType":"IfStatement","src":"791:512:12","trueBody":{"id":1981,"nodeType":"Block","src":"807:59:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1972,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"838:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"847:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"838:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1975,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"837:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":1976,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"852:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"837:20:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"831:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1970,"name":"uint8","nodeType":"ElementaryTypeName","src":"831:5:12","typeDescriptions":{}}},"id":1978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"831:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1967,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"815:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"819:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"815:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"815:44:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1980,"nodeType":"ExpressionStatement","src":"815:44:12"}]}}]},"id":2084,"implemented":true,"kind":"function","modifiers":[],"name":"encodeFixedNumeric","nameLocation":"691:18:12","nodeType":"FunctionDefinition","parameters":{"id":1962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1957,"mutability":"mutable","name":"buf","nameLocation":"740:3:12","nodeType":"VariableDeclaration","scope":2084,"src":"710:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1956,"nodeType":"UserDefinedTypeName","pathNode":{"id":1955,"name":"BufferChainlink.buffer","nameLocations":["710:15:12","726:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"710:22:12"},"referencedDeclaration":1402,"src":"710:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1959,"mutability":"mutable","name":"major","nameLocation":"751:5:12","nodeType":"VariableDeclaration","scope":2084,"src":"745:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1958,"name":"uint8","nodeType":"ElementaryTypeName","src":"745:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1961,"mutability":"mutable","name":"value","nameLocation":"765:5:12","nodeType":"VariableDeclaration","scope":2084,"src":"758:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1960,"name":"uint64","nodeType":"ElementaryTypeName","src":"758:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"709:62:12"},"returnParameters":{"id":1963,"nodeType":"ParameterList","parameters":[],"src":"785:0:12"},"scope":2363,"src":"682:625:12","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2106,"nodeType":"Block","src":"1408:52:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2097,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2089,"src":"1437:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1446:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1437:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1436:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3331","id":2101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1451:2:12","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"1436:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1430:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2095,"name":"uint8","nodeType":"ElementaryTypeName","src":"1430:5:12","typeDescriptions":{}}},"id":2103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1430:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2092,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2087,"src":"1414:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1418:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1414:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2105,"nodeType":"ExpressionStatement","src":"1414:41:12"}]},"id":2107,"implemented":true,"kind":"function","modifiers":[],"name":"encodeIndefiniteLengthType","nameLocation":"1320:26:12","nodeType":"FunctionDefinition","parameters":{"id":2090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2087,"mutability":"mutable","name":"buf","nameLocation":"1377:3:12","nodeType":"VariableDeclaration","scope":2107,"src":"1347:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2086,"nodeType":"UserDefinedTypeName","pathNode":{"id":2085,"name":"BufferChainlink.buffer","nameLocations":["1347:15:12","1363:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1347:22:12"},"referencedDeclaration":1402,"src":"1347:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2089,"mutability":"mutable","name":"major","nameLocation":"1388:5:12","nodeType":"VariableDeclaration","scope":2107,"src":"1382:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2088,"name":"uint8","nodeType":"ElementaryTypeName","src":"1382:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1346:48:12"},"returnParameters":{"id":2091,"nodeType":"ParameterList","parameters":[],"src":"1408:0:12"},"scope":2363,"src":"1311:149:12","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2135,"nodeType":"Block","src":"1545:155:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1554:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":2116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1562:18:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1554:26:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2133,"nodeType":"Block","src":"1627:69:12","statements":[{"expression":{"arguments":[{"id":2125,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"1654:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2126,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1927,"src":"1659:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"id":2129,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1682:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1675:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2127,"name":"uint64","nodeType":"ElementaryTypeName","src":"1675:6:12","typeDescriptions":{}}},"id":2130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2124,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"1635:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1635:54:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2132,"nodeType":"ExpressionStatement","src":"1635:54:12"}]},"id":2134,"nodeType":"IfStatement","src":"1551:145:12","trueBody":{"id":2123,"nodeType":"Block","src":"1582:39:12","statements":[{"expression":{"arguments":[{"id":2119,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"1603:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2120,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1608:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2118,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2258,"src":"1590:12:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":2121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2122,"nodeType":"ExpressionStatement","src":"1590:24:12"}]}}]},"id":2136,"implemented":true,"kind":"function","modifiers":[],"name":"encodeUInt","nameLocation":"1473:10:12","nodeType":"FunctionDefinition","parameters":{"id":2113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2110,"mutability":"mutable","name":"buf","nameLocation":"1514:3:12","nodeType":"VariableDeclaration","scope":2136,"src":"1484:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2109,"nodeType":"UserDefinedTypeName","pathNode":{"id":2108,"name":"BufferChainlink.buffer","nameLocations":["1484:15:12","1500:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1484:22:12"},"referencedDeclaration":1402,"src":"1484:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2112,"mutability":"mutable","name":"value","nameLocation":"1524:5:12","nodeType":"VariableDeclaration","scope":2136,"src":"1519:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2111,"name":"uint","nodeType":"ElementaryTypeName","src":"1519:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1483:47:12"},"returnParameters":{"id":2114,"nodeType":"ParameterList","parameters":[],"src":"1545:0:12"},"scope":2363,"src":"1464:236:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2201,"nodeType":"Block","src":"1783:367:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2144,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1792:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1800:20:12","subExpression":{"hexValue":"30783130303030303030303030303030303030","id":2145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1801:19:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_18446744073709551616_by_1","typeString":"int_const -18446744073709551616"}},"src":"1792:28:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2154,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1876:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":2155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1884:18:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1876:26:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2166,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1958:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":2167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1967:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1958:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2197,"nodeType":"Block","src":"2054:92:12","statements":[{"expression":{"arguments":[{"id":2183,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"2081:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2184,"name":"MAJOR_TYPE_NEGATIVE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"2086:23:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2126:2:12","subExpression":{"hexValue":"31","id":2189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2127:1:12","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"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2191,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"2131:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2126:10:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2118:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2187,"name":"uint256","nodeType":"ElementaryTypeName","src":"2118:7:12","typeDescriptions":{}}},"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2118:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2111:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2185,"name":"uint64","nodeType":"ElementaryTypeName","src":"2111:6:12","typeDescriptions":{}}},"id":2194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2182,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2062:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2062:77:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2196,"nodeType":"ExpressionStatement","src":"2062:77:12"}]},"id":2198,"nodeType":"IfStatement","src":"1955:191:12","trueBody":{"id":2181,"nodeType":"Block","src":"1970:78:12","statements":[{"expression":{"arguments":[{"id":2170,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1997:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2171,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1927,"src":"2002:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"id":2176,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"2033:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2025:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2174,"name":"uint256","nodeType":"ElementaryTypeName","src":"2025:7:12","typeDescriptions":{}}},"id":2177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2025:14:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2018:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2172,"name":"uint64","nodeType":"ElementaryTypeName","src":"2018:6:12","typeDescriptions":{}}},"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2018:22:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2169,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"1978:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2180,"nodeType":"ExpressionStatement","src":"1978:63:12"}]}},"id":2199,"nodeType":"IfStatement","src":"1873:273:12","trueBody":{"id":2165,"nodeType":"Block","src":"1904:45:12","statements":[{"expression":{"arguments":[{"id":2158,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1925:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":2161,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1935:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1930:4:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2159,"name":"uint","nodeType":"ElementaryTypeName","src":"1930:4:12","typeDescriptions":{}}},"id":2162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1930:11:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2157,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2258,"src":"1912:12:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":2163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2164,"nodeType":"ExpressionStatement","src":"1912:30:12"}]}},"id":2200,"nodeType":"IfStatement","src":"1789:357:12","trueBody":{"id":2153,"nodeType":"Block","src":"1822:45:12","statements":[{"expression":{"arguments":[{"id":2149,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1849:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2150,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1854:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2148,"name":"encodeSignedBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"1830:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_int256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":2151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1830:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2152,"nodeType":"ExpressionStatement","src":"1830:30:12"}]}}]},"id":2202,"implemented":true,"kind":"function","modifiers":[],"name":"encodeInt","nameLocation":"1713:9:12","nodeType":"FunctionDefinition","parameters":{"id":2142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2139,"mutability":"mutable","name":"buf","nameLocation":"1753:3:12","nodeType":"VariableDeclaration","scope":2202,"src":"1723:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2138,"nodeType":"UserDefinedTypeName","pathNode":{"id":2137,"name":"BufferChainlink.buffer","nameLocations":["1723:15:12","1739:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1723:22:12"},"referencedDeclaration":1402,"src":"1723:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2141,"mutability":"mutable","name":"value","nameLocation":"1762:5:12","nodeType":"VariableDeclaration","scope":2202,"src":"1758:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2140,"name":"int","nodeType":"ElementaryTypeName","src":"1758:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1722:46:12"},"returnParameters":{"id":2143,"nodeType":"ParameterList","parameters":[],"src":"1783:0:12"},"scope":2363,"src":"1704:446:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2226,"nodeType":"Block","src":"2244:97:12","statements":[{"expression":{"arguments":[{"id":2211,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"2269:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2212,"name":"MAJOR_TYPE_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1933,"src":"2274:16:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"id":2215,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"2299:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2305:6:12","memberName":"length","nodeType":"MemberAccess","src":"2299:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2292:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2213,"name":"uint64","nodeType":"ElementaryTypeName","src":"2292:6:12","typeDescriptions":{}}},"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2292:20:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2210,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2250:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2219,"nodeType":"ExpressionStatement","src":"2250:63:12"},{"expression":{"arguments":[{"id":2223,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"2330:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2220,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"2319:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2323:6:12","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"2319:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2319:17:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2225,"nodeType":"ExpressionStatement","src":"2319:17:12"}]},"id":2227,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBytes","nameLocation":"2163:11:12","nodeType":"FunctionDefinition","parameters":{"id":2208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2205,"mutability":"mutable","name":"buf","nameLocation":"2205:3:12","nodeType":"VariableDeclaration","scope":2227,"src":"2175:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2204,"nodeType":"UserDefinedTypeName","pathNode":{"id":2203,"name":"BufferChainlink.buffer","nameLocations":["2175:15:12","2191:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2175:22:12"},"referencedDeclaration":1402,"src":"2175:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2207,"mutability":"mutable","name":"value","nameLocation":"2223:5:12","nodeType":"VariableDeclaration","scope":2227,"src":"2210:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2206,"name":"bytes","nodeType":"ElementaryTypeName","src":"2210:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2174:55:12"},"returnParameters":{"id":2209,"nodeType":"ParameterList","parameters":[],"src":"2244:0:12"},"scope":2363,"src":"2154:187:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2257,"nodeType":"Block","src":"2428:115:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2240,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"2457:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2475:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2457:19:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2243,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2456:21:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2244,"name":"TAG_TYPE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"2480:15:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2456:39:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2450:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2238,"name":"uint8","nodeType":"ElementaryTypeName","src":"2450:5:12","typeDescriptions":{}}},"id":2246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2450:46:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2235,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"2434:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2438:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"2434:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2434:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2248,"nodeType":"ExpressionStatement","src":"2434:63:12"},{"expression":{"arguments":[{"id":2250,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"2515:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":2253,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2232,"src":"2531:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2251,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2520:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2524:6:12","memberName":"encode","nodeType":"MemberAccess","src":"2520:10:12","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2520:17:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2249,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2227,"src":"2503:11:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:35:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2256,"nodeType":"ExpressionStatement","src":"2503:35:12"}]},"id":2258,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBigNum","nameLocation":"2354:12:12","nodeType":"FunctionDefinition","parameters":{"id":2233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2230,"mutability":"mutable","name":"buf","nameLocation":"2397:3:12","nodeType":"VariableDeclaration","scope":2258,"src":"2367:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2229,"nodeType":"UserDefinedTypeName","pathNode":{"id":2228,"name":"BufferChainlink.buffer","nameLocations":["2367:15:12","2383:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2367:22:12"},"referencedDeclaration":1402,"src":"2367:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2232,"mutability":"mutable","name":"value","nameLocation":"2407:5:12","nodeType":"VariableDeclaration","scope":2258,"src":"2402:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2231,"name":"uint","nodeType":"ElementaryTypeName","src":"2402:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2366:47:12"},"returnParameters":{"id":2234,"nodeType":"ParameterList","parameters":[],"src":"2428:0:12"},"scope":2363,"src":"2345:198:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2294,"nodeType":"Block","src":"2635:138:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2271,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"2664:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2682:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2664:19:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2274,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2663:21:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2275,"name":"TAG_TYPE_NEGATIVE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1954,"src":"2687:24:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2663:48:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2657:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2269,"name":"uint8","nodeType":"ElementaryTypeName","src":"2657:5:12","typeDescriptions":{}}},"id":2277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2657:55:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2266,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"2641:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2645:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"2641:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:72:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2279,"nodeType":"ExpressionStatement","src":"2641:72:12"},{"expression":{"arguments":[{"id":2281,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"2731:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2755:2:12","subExpression":{"hexValue":"31","id":2286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2756:1:12","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"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2288,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2263,"src":"2760:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2755:10:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2284,"name":"uint256","nodeType":"ElementaryTypeName","src":"2747:7:12","typeDescriptions":{}}},"id":2290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2282,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2736:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2740:6:12","memberName":"encode","nodeType":"MemberAccess","src":"2736:10:12","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2736:31:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2280,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2227,"src":"2719:11:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2719:49:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2293,"nodeType":"ExpressionStatement","src":"2719:49:12"}]},"id":2295,"implemented":true,"kind":"function","modifiers":[],"name":"encodeSignedBigNum","nameLocation":"2556:18:12","nodeType":"FunctionDefinition","parameters":{"id":2264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2261,"mutability":"mutable","name":"buf","nameLocation":"2605:3:12","nodeType":"VariableDeclaration","scope":2295,"src":"2575:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2260,"nodeType":"UserDefinedTypeName","pathNode":{"id":2259,"name":"BufferChainlink.buffer","nameLocations":["2575:15:12","2591:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2575:22:12"},"referencedDeclaration":1402,"src":"2575:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2263,"mutability":"mutable","name":"input","nameLocation":"2614:5:12","nodeType":"VariableDeclaration","scope":2295,"src":"2610:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2262,"name":"int","nodeType":"ElementaryTypeName","src":"2610:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2574:46:12"},"returnParameters":{"id":2265,"nodeType":"ParameterList","parameters":[],"src":"2635:0:12"},"scope":2363,"src":"2547:226:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2325,"nodeType":"Block","src":"2869:112:12","statements":[{"expression":{"arguments":[{"id":2304,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"2894:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2305,"name":"MAJOR_TYPE_STRING","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"2899:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"arguments":[{"id":2310,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"2931:5:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2925:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2308,"name":"bytes","nodeType":"ElementaryTypeName","src":"2925:5:12","typeDescriptions":{}}},"id":2311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2938:6:12","memberName":"length","nodeType":"MemberAccess","src":"2925:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2918:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2306,"name":"uint64","nodeType":"ElementaryTypeName","src":"2918:6:12","typeDescriptions":{}}},"id":2313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2918:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2303,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2875:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2875:71:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2315,"nodeType":"ExpressionStatement","src":"2875:71:12"},{"expression":{"arguments":[{"arguments":[{"id":2321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"2969:5:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2963:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2319,"name":"bytes","nodeType":"ElementaryTypeName","src":"2963:5:12","typeDescriptions":{}}},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2316,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"2952:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2956:6:12","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"2952:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2324,"nodeType":"ExpressionStatement","src":"2952:24:12"}]},"id":2326,"implemented":true,"kind":"function","modifiers":[],"name":"encodeString","nameLocation":"2786:12:12","nodeType":"FunctionDefinition","parameters":{"id":2301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2298,"mutability":"mutable","name":"buf","nameLocation":"2829:3:12","nodeType":"VariableDeclaration","scope":2326,"src":"2799:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2297,"nodeType":"UserDefinedTypeName","pathNode":{"id":2296,"name":"BufferChainlink.buffer","nameLocations":["2799:15:12","2815:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2799:22:12"},"referencedDeclaration":1402,"src":"2799:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2300,"mutability":"mutable","name":"value","nameLocation":"2848:5:12","nodeType":"VariableDeclaration","scope":2326,"src":"2834:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2299,"name":"string","nodeType":"ElementaryTypeName","src":"2834:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2798:56:12"},"returnParameters":{"id":2302,"nodeType":"ParameterList","parameters":[],"src":"2869:0:12"},"scope":2363,"src":"2777:204:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2337,"nodeType":"Block","src":"3054:60:12","statements":[{"expression":{"arguments":[{"id":2333,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"3087:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2334,"name":"MAJOR_TYPE_ARRAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1939,"src":"3092:16:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2332,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3060:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3060:49:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2336,"nodeType":"ExpressionStatement","src":"3060:49:12"}]},"id":2338,"implemented":true,"kind":"function","modifiers":[],"name":"startArray","nameLocation":"2994:10:12","nodeType":"FunctionDefinition","parameters":{"id":2330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2329,"mutability":"mutable","name":"buf","nameLocation":"3035:3:12","nodeType":"VariableDeclaration","scope":2338,"src":"3005:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2328,"nodeType":"UserDefinedTypeName","pathNode":{"id":2327,"name":"BufferChainlink.buffer","nameLocations":["3005:15:12","3021:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3005:22:12"},"referencedDeclaration":1402,"src":"3005:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3004:35:12"},"returnParameters":{"id":2331,"nodeType":"ParameterList","parameters":[],"src":"3054:0:12"},"scope":2363,"src":"2985:129:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2349,"nodeType":"Block","src":"3185:58:12","statements":[{"expression":{"arguments":[{"id":2345,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"3218:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2346,"name":"MAJOR_TYPE_MAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"3223:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2344,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3191:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3191:47:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2348,"nodeType":"ExpressionStatement","src":"3191:47:12"}]},"id":2350,"implemented":true,"kind":"function","modifiers":[],"name":"startMap","nameLocation":"3127:8:12","nodeType":"FunctionDefinition","parameters":{"id":2342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2341,"mutability":"mutable","name":"buf","nameLocation":"3166:3:12","nodeType":"VariableDeclaration","scope":2350,"src":"3136:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2340,"nodeType":"UserDefinedTypeName","pathNode":{"id":2339,"name":"BufferChainlink.buffer","nameLocations":["3136:15:12","3152:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3136:22:12"},"referencedDeclaration":1402,"src":"3136:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3135:35:12"},"returnParameters":{"id":2343,"nodeType":"ParameterList","parameters":[],"src":"3185:0:12"},"scope":2363,"src":"3118:125:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2361,"nodeType":"Block","src":"3317:67:12","statements":[{"expression":{"arguments":[{"id":2357,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"3350:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2358,"name":"MAJOR_TYPE_CONTENT_FREE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1948,"src":"3355:23:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2356,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3323:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:56:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2360,"nodeType":"ExpressionStatement","src":"3323:56:12"}]},"id":2362,"implemented":true,"kind":"function","modifiers":[],"name":"endSequence","nameLocation":"3256:11:12","nodeType":"FunctionDefinition","parameters":{"id":2354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2353,"mutability":"mutable","name":"buf","nameLocation":"3298:3:12","nodeType":"VariableDeclaration","scope":2362,"src":"3268:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2352,"nodeType":"UserDefinedTypeName","pathNode":{"id":2351,"name":"BufferChainlink.buffer","nameLocations":["3268:15:12","3284:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3268:22:12"},"referencedDeclaration":1402,"src":"3268:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3267:35:12"},"returnParameters":{"id":2355,"nodeType":"ParameterList","parameters":[],"src":"3317:0:12"},"scope":2363,"src":"3247:137:12","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2364,"src":"115:3271:12","usedErrors":[]}],"src":"32:3355:12"},"id":12},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","exportedSymbols":{"ENSResolver":[2373]},"id":2374,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2365,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:13"},{"abstract":true,"baseContracts":[],"canonicalName":"ENSResolver","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":2373,"linearizedBaseContracts":[2373],"name":"ENSResolver","nameLocation":"75:11:13","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3b3b57de","id":2372,"implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"100:4:13","nodeType":"FunctionDefinition","parameters":{"id":2368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2367,"mutability":"mutable","name":"node","nameLocation":"113:4:13","nodeType":"VariableDeclaration","scope":2372,"src":"105:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"104:14:13"},"returnParameters":{"id":2371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2372,"src":"148:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2369,"name":"address","nodeType":"ElementaryTypeName","src":"148:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"147:9:13"},"scope":2373,"src":"91:66:13","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2374,"src":"57:102:13","usedErrors":[]}],"src":"32:128:13"},"id":13},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[3468],"SignedMath":[3885],"Strings":[2602]},"id":2603,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2375,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:14"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":2376,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2603,"sourceUnit":3469,"src":"126:25:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":2377,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2603,"sourceUnit":3886,"src":"152:31:14","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":2378,"nodeType":"StructuredDocumentation","src":"185:34:14","text":" @dev String operations."},"fullyImplemented":true,"id":2602,"linearizedBaseContracts":[2602],"name":"Strings","nameLocation":"228:7:14","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2381,"mutability":"constant","name":"_SYMBOLS","nameLocation":"267:8:14","nodeType":"VariableDeclaration","scope":2602,"src":"242:54:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":2379,"name":"bytes16","nodeType":"ElementaryTypeName","src":"242:7:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":2380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"278:18:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":2384,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"325:15:14","nodeType":"VariableDeclaration","scope":2602,"src":"302:43:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2382,"name":"uint8","nodeType":"ElementaryTypeName","src":"302:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":2383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343:2:14","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":2431,"nodeType":"Block","src":"518:625:14","statements":[{"id":2430,"nodeType":"UncheckedBlock","src":"528:609:14","statements":[{"assignments":[2393],"declarations":[{"constant":false,"id":2393,"mutability":"mutable","name":"length","nameLocation":"560:6:14","nodeType":"VariableDeclaration","scope":2430,"src":"552:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2392,"name":"uint256","nodeType":"ElementaryTypeName","src":"552:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2400,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2396,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2387,"src":"580:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2394,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3468,"src":"569:4:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$3468_$","typeString":"type(library Math)"}},"id":2395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"574:5:14","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":3305,"src":"569:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"569:17:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"589:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"569:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"552:38:14"},{"assignments":[2402],"declarations":[{"constant":false,"id":2402,"mutability":"mutable","name":"buffer","nameLocation":"618:6:14","nodeType":"VariableDeclaration","scope":2430,"src":"604:20:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2401,"name":"string","nodeType":"ElementaryTypeName","src":"604:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2407,"initialValue":{"arguments":[{"id":2405,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2393,"src":"638:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"627:10:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":2403,"name":"string","nodeType":"ElementaryTypeName","src":"631:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":2406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"604:41:14"},{"assignments":[2409],"declarations":[{"constant":false,"id":2409,"mutability":"mutable","name":"ptr","nameLocation":"667:3:14","nodeType":"VariableDeclaration","scope":2430,"src":"659:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2408,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2410,"nodeType":"VariableDeclarationStatement","src":"659:11:14"},{"AST":{"nodeType":"YulBlock","src":"740:67:14","statements":[{"nodeType":"YulAssignment","src":"758:35:14","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"769:6:14"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"781:2:14","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"785:6:14"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"777:3:14"},"nodeType":"YulFunctionCall","src":"777:15:14"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:14"},"nodeType":"YulFunctionCall","src":"765:28:14"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"758:3:14"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":2402,"isOffset":false,"isSlot":false,"src":"769:6:14","valueSize":1},{"declaration":2393,"isOffset":false,"isSlot":false,"src":"785:6:14","valueSize":1},{"declaration":2409,"isOffset":false,"isSlot":false,"src":"758:3:14","valueSize":1}],"id":2411,"nodeType":"InlineAssembly","src":"731:76:14"},{"body":{"id":2426,"nodeType":"Block","src":"833:267:14","statements":[{"expression":{"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"851:5:14","subExpression":{"id":2413,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2409,"src":"851:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2415,"nodeType":"ExpressionStatement","src":"851:5:14"},{"AST":{"nodeType":"YulBlock","src":"934:84:14","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"964:3:14"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"978:5:14"},{"kind":"number","nodeType":"YulLiteral","src":"985:2:14","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"974:3:14"},"nodeType":"YulFunctionCall","src":"974:14:14"},{"name":"_SYMBOLS","nodeType":"YulIdentifier","src":"990:8:14"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"969:4:14"},"nodeType":"YulFunctionCall","src":"969:30:14"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"956:7:14"},"nodeType":"YulFunctionCall","src":"956:44:14"},"nodeType":"YulExpressionStatement","src":"956:44:14"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":2381,"isOffset":false,"isSlot":false,"src":"990:8:14","valueSize":1},{"declaration":2409,"isOffset":false,"isSlot":false,"src":"964:3:14","valueSize":1},{"declaration":2387,"isOffset":false,"isSlot":false,"src":"978:5:14","valueSize":1}],"id":2416,"nodeType":"InlineAssembly","src":"925:93:14"},{"expression":{"id":2419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2417,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2387,"src":"1035:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":2418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1035:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2420,"nodeType":"ExpressionStatement","src":"1035:11:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2421,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2387,"src":"1068:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1068:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2425,"nodeType":"IfStatement","src":"1064:21:14","trueBody":{"id":2424,"nodeType":"Break","src":"1080:5:14"}}]},"condition":{"hexValue":"74727565","id":2412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"827:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":2427,"nodeType":"WhileStatement","src":"820:280:14"},{"expression":{"id":2428,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2402,"src":"1120:6:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2391,"id":2429,"nodeType":"Return","src":"1113:13:14"}]}]},"documentation":{"id":2385,"nodeType":"StructuredDocumentation","src":"352:90:14","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":2432,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"456:8:14","nodeType":"FunctionDefinition","parameters":{"id":2388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2387,"mutability":"mutable","name":"value","nameLocation":"473:5:14","nodeType":"VariableDeclaration","scope":2432,"src":"465:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2386,"name":"uint256","nodeType":"ElementaryTypeName","src":"465:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"464:15:14"},"returnParameters":{"id":2391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2432,"src":"503:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2389,"name":"string","nodeType":"ElementaryTypeName","src":"503:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"502:15:14"},"scope":2602,"src":"447:696:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2459,"nodeType":"Block","src":"1313:103:14","statements":[{"expression":{"arguments":[{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2444,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2435,"src":"1354:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":2445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1362:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1354:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":2448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1372:2:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":2449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1354:20:14","trueExpression":{"hexValue":"2d","id":2447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1366:3:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":2453,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2435,"src":"1400:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":2451,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3885,"src":"1385:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$3885_$","typeString":"type(library SignedMath)"}},"id":2452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1396:3:14","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":3884,"src":"1385:14:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":2454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:21:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2450,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[2432,2460],"referencedDeclaration":2432,"src":"1376:8:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":2455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2442,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1337:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1341:12:14","memberName":"encodePacked","nodeType":"MemberAccess","src":"1337:16:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1337:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1330:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2440,"name":"string","nodeType":"ElementaryTypeName","src":"1330:6:14","typeDescriptions":{}}},"id":2457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1330:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2439,"id":2458,"nodeType":"Return","src":"1323:86:14"}]},"documentation":{"id":2433,"nodeType":"StructuredDocumentation","src":"1149:89:14","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":2460,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1252:8:14","nodeType":"FunctionDefinition","parameters":{"id":2436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2435,"mutability":"mutable","name":"value","nameLocation":"1268:5:14","nodeType":"VariableDeclaration","scope":2460,"src":"1261:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2434,"name":"int256","nodeType":"ElementaryTypeName","src":"1261:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1260:14:14"},"returnParameters":{"id":2439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2460,"src":"1298:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2437,"name":"string","nodeType":"ElementaryTypeName","src":"1298:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1297:15:14"},"scope":2602,"src":"1243:173:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2479,"nodeType":"Block","src":"1595:100:14","statements":[{"id":2478,"nodeType":"UncheckedBlock","src":"1605:84:14","statements":[{"expression":{"arguments":[{"id":2469,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"1648:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2472,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"1667:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2470,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3468,"src":"1655:4:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$3468_$","typeString":"type(library Math)"}},"id":2471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1660:6:14","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":3428,"src":"1655:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:18:14","tryCall":false,"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":"1676:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1655:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2468,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[2480,2556,2576],"referencedDeclaration":2556,"src":"1636:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":2476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1636:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2467,"id":2477,"nodeType":"Return","src":"1629:49:14"}]}]},"documentation":{"id":2461,"nodeType":"StructuredDocumentation","src":"1422:94:14","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":2480,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1530:11:14","nodeType":"FunctionDefinition","parameters":{"id":2464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2463,"mutability":"mutable","name":"value","nameLocation":"1550:5:14","nodeType":"VariableDeclaration","scope":2480,"src":"1542:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2462,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1541:15:14"},"returnParameters":{"id":2467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2466,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2480,"src":"1580:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2465,"name":"string","nodeType":"ElementaryTypeName","src":"1580:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1579:15:14"},"scope":2602,"src":"1521:174:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2555,"nodeType":"Block","src":"1908:347:14","statements":[{"assignments":[2491],"declarations":[{"constant":false,"id":2491,"mutability":"mutable","name":"buffer","nameLocation":"1931:6:14","nodeType":"VariableDeclaration","scope":2555,"src":"1918:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2490,"name":"bytes","nodeType":"ElementaryTypeName","src":"1918:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2500,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1950:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2495,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"1954:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1950:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1963:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1950:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1940:9:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2492,"name":"bytes","nodeType":"ElementaryTypeName","src":"1944:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1940:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1918:47:14"},{"expression":{"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2501,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"1975:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2503,"indexExpression":{"hexValue":"30","id":2502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1982:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1975:9:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1987:3:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1975:15:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2506,"nodeType":"ExpressionStatement","src":"1975:15:14"},{"expression":{"id":2511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2507,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"2000:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2509,"indexExpression":{"hexValue":"31","id":2508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2007:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2000:9:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":2510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2012:3:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2000:15:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2512,"nodeType":"ExpressionStatement","src":"2000:15:14"},{"body":{"id":2541,"nodeType":"Block","src":"2070:83:14","statements":[{"expression":{"id":2535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2527,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"2084:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2529,"indexExpression":{"id":2528,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"2091:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2084:9:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2530,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2381,"src":"2096:8:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":2534,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2531,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2105:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":2532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:3:14","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2105:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2096:21:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2084:33:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2536,"nodeType":"ExpressionStatement","src":"2084:33:14"},{"expression":{"id":2539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2537,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2131:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":2538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2141:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2131:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2540,"nodeType":"ExpressionStatement","src":"2131:11:14"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2521,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"2058:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":2522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2062:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2058:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2542,"initializationExpression":{"assignments":[2514],"declarations":[{"constant":false,"id":2514,"mutability":"mutable","name":"i","nameLocation":"2038:1:14","nodeType":"VariableDeclaration","scope":2542,"src":"2030:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2513,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2520,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2042:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2516,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"2046:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2055:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2042:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2030:26:14"},"loopExpression":{"expression":{"id":2525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2065:3:14","subExpression":{"id":2524,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"2067:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2526,"nodeType":"ExpressionStatement","src":"2065:3:14"},"nodeType":"ForStatement","src":"2025:128:14"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2544,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2170:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2179:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2170:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":2547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2182:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":2543,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2162:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2549,"nodeType":"ExpressionStatement","src":"2162:55:14"},{"expression":{"arguments":[{"id":2552,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"2241:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2234:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2550,"name":"string","nodeType":"ElementaryTypeName","src":"2234:6:14","typeDescriptions":{}}},"id":2553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2234:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2489,"id":2554,"nodeType":"Return","src":"2227:21:14"}]},"documentation":{"id":2481,"nodeType":"StructuredDocumentation","src":"1701:112:14","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":2556,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1827:11:14","nodeType":"FunctionDefinition","parameters":{"id":2486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2483,"mutability":"mutable","name":"value","nameLocation":"1847:5:14","nodeType":"VariableDeclaration","scope":2556,"src":"1839:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2482,"name":"uint256","nodeType":"ElementaryTypeName","src":"1839:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2485,"mutability":"mutable","name":"length","nameLocation":"1862:6:14","nodeType":"VariableDeclaration","scope":2556,"src":"1854:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2484,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:31:14"},"returnParameters":{"id":2489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2556,"src":"1893:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2487,"name":"string","nodeType":"ElementaryTypeName","src":"1893:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1892:15:14"},"scope":2602,"src":"1818:437:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2575,"nodeType":"Block","src":"2480:76:14","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":2569,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2559,"src":"2525:4:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2517:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2567,"name":"uint160","nodeType":"ElementaryTypeName","src":"2517:7:14","typeDescriptions":{}}},"id":2570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2517:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:14","typeDescriptions":{}}},"id":2571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:22:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2572,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2384,"src":"2533:15:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2564,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[2480,2556,2576],"referencedDeclaration":2556,"src":"2497:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":2573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2497:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2563,"id":2574,"nodeType":"Return","src":"2490:59:14"}]},"documentation":{"id":2557,"nodeType":"StructuredDocumentation","src":"2261:141:14","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":2576,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2416:11:14","nodeType":"FunctionDefinition","parameters":{"id":2560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2559,"mutability":"mutable","name":"addr","nameLocation":"2436:4:14","nodeType":"VariableDeclaration","scope":2576,"src":"2428:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2558,"name":"address","nodeType":"ElementaryTypeName","src":"2428:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2427:14:14"},"returnParameters":{"id":2563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2576,"src":"2465:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2561,"name":"string","nodeType":"ElementaryTypeName","src":"2465:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2464:15:14"},"scope":2602,"src":"2407:149:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2600,"nodeType":"Block","src":"2711:66:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2589,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"2744:1:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2738:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2587,"name":"bytes","nodeType":"ElementaryTypeName","src":"2738:5:14","typeDescriptions":{}}},"id":2590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2738:8:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2586,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2728:9:14","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":2595,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2581,"src":"2767:1:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2761:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2593,"name":"bytes","nodeType":"ElementaryTypeName","src":"2761:5:14","typeDescriptions":{}}},"id":2596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2761:8:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2592,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2751:9:14","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2751:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2728:42:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2585,"id":2599,"nodeType":"Return","src":"2721:49:14"}]},"documentation":{"id":2577,"nodeType":"StructuredDocumentation","src":"2562:66:14","text":" @dev Returns true if the two strings are equal."},"id":2601,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2642:5:14","nodeType":"FunctionDefinition","parameters":{"id":2582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2579,"mutability":"mutable","name":"a","nameLocation":"2662:1:14","nodeType":"VariableDeclaration","scope":2601,"src":"2648:15:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2578,"name":"string","nodeType":"ElementaryTypeName","src":"2648:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2581,"mutability":"mutable","name":"b","nameLocation":"2679:1:14","nodeType":"VariableDeclaration","scope":2601,"src":"2665:15:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2580,"name":"string","nodeType":"ElementaryTypeName","src":"2665:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2647:34:14"},"returnParameters":{"id":2585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2601,"src":"2705:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2583,"name":"bool","nodeType":"ElementaryTypeName","src":"2705:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2704:6:14"},"scope":2602,"src":"2633:144:14","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2603,"src":"220:2559:14","usedErrors":[]}],"src":"101:2679:14"},"id":14},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[3468]},"id":3469,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2604,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:15"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":2605,"nodeType":"StructuredDocumentation","src":"128:73:15","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3468,"linearizedBaseContracts":[3468],"name":"Math","nameLocation":"210:4:15","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":2609,"members":[{"id":2606,"name":"Down","nameLocation":"245:4:15","nodeType":"EnumValue","src":"245:4:15"},{"id":2607,"name":"Up","nameLocation":"287:2:15","nodeType":"EnumValue","src":"287:2:15"},{"id":2608,"name":"Zero","nameLocation":"318:4:15","nodeType":"EnumValue","src":"318:4:15"}],"name":"Rounding","nameLocation":"226:8:15","nodeType":"EnumDefinition","src":"221:122:15"},{"body":{"id":2626,"nodeType":"Block","src":"480:37:15","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2619,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2612,"src":"497:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2620,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2614,"src":"501:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2623,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2614,"src":"509:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:15","trueExpression":{"id":2622,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2612,"src":"505:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2618,"id":2625,"nodeType":"Return","src":"490:20:15"}]},"documentation":{"id":2610,"nodeType":"StructuredDocumentation","src":"349:59:15","text":" @dev Returns the largest of two numbers."},"id":2627,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:15","nodeType":"FunctionDefinition","parameters":{"id":2615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2612,"mutability":"mutable","name":"a","nameLocation":"434:1:15","nodeType":"VariableDeclaration","scope":2627,"src":"426:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2611,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2614,"mutability":"mutable","name":"b","nameLocation":"445:1:15","nodeType":"VariableDeclaration","scope":2627,"src":"437:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2613,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:15"},"returnParameters":{"id":2618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2617,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2627,"src":"471:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2616,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:15"},"scope":3468,"src":"413:104:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2644,"nodeType":"Block","src":"655:37:15","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2637,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2630,"src":"672:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2638,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2632,"src":"676:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2641,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2632,"src":"684:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:15","trueExpression":{"id":2640,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2630,"src":"680:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2636,"id":2643,"nodeType":"Return","src":"665:20:15"}]},"documentation":{"id":2628,"nodeType":"StructuredDocumentation","src":"523:60:15","text":" @dev Returns the smallest of two numbers."},"id":2645,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:15","nodeType":"FunctionDefinition","parameters":{"id":2633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2630,"mutability":"mutable","name":"a","nameLocation":"609:1:15","nodeType":"VariableDeclaration","scope":2645,"src":"601:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2629,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2632,"mutability":"mutable","name":"b","nameLocation":"620:1:15","nodeType":"VariableDeclaration","scope":2645,"src":"612:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2631,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:15"},"returnParameters":{"id":2636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2635,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2645,"src":"646:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2634,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:15"},"scope":3468,"src":"588:104:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2667,"nodeType":"Block","src":"876:82:15","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2655,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2648,"src":"931:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":2656,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2650,"src":"935:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2659,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2648,"src":"941:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2660,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2650,"src":"945:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2662,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":2663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2654,"id":2666,"nodeType":"Return","src":"923:28:15"}]},"documentation":{"id":2646,"nodeType":"StructuredDocumentation","src":"698:102:15","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":2668,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:15","nodeType":"FunctionDefinition","parameters":{"id":2651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2648,"mutability":"mutable","name":"a","nameLocation":"830:1:15","nodeType":"VariableDeclaration","scope":2668,"src":"822:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2647,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2650,"mutability":"mutable","name":"b","nameLocation":"841:1:15","nodeType":"VariableDeclaration","scope":2668,"src":"833:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2649,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:15"},"returnParameters":{"id":2654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2668,"src":"867:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2652,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:15"},"scope":3468,"src":"805:153:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2692,"nodeType":"Block","src":"1228:123:15","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2678,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2671,"src":"1316:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2682,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2671,"src":"1330:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2685,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2686,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2673,"src":"1339:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:15","trueExpression":{"hexValue":"30","id":2681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2677,"id":2691,"nodeType":"Return","src":"1309:35:15"}]},"documentation":{"id":2669,"nodeType":"StructuredDocumentation","src":"964:188:15","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"id":2693,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:15","nodeType":"FunctionDefinition","parameters":{"id":2674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2671,"mutability":"mutable","name":"a","nameLocation":"1182:1:15","nodeType":"VariableDeclaration","scope":2693,"src":"1174:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2670,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2673,"mutability":"mutable","name":"b","nameLocation":"1193:1:15","nodeType":"VariableDeclaration","scope":2693,"src":"1185:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2672,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:15"},"returnParameters":{"id":2677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2693,"src":"1219:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2675,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:15"},"scope":3468,"src":"1157:194:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2815,"nodeType":"Block","src":"1765:4115:15","statements":[{"id":2814,"nodeType":"UncheckedBlock","src":"1775:4099:15","statements":[{"assignments":[2706],"declarations":[{"constant":false,"id":2706,"mutability":"mutable","name":"prod0","nameLocation":"2104:5:15","nodeType":"VariableDeclaration","scope":2814,"src":"2096:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2705,"name":"uint256","nodeType":"ElementaryTypeName","src":"2096:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2707,"nodeType":"VariableDeclarationStatement","src":"2096:13:15"},{"assignments":[2709],"declarations":[{"constant":false,"id":2709,"mutability":"mutable","name":"prod1","nameLocation":"2176:5:15","nodeType":"VariableDeclaration","scope":2814,"src":"2168:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2708,"name":"uint256","nodeType":"ElementaryTypeName","src":"2168:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2710,"nodeType":"VariableDeclarationStatement","src":"2168:13:15"},{"AST":{"nodeType":"YulBlock","src":"2248:157:15","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:30:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2283:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"2286:1:15"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2293:1:15","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2289:3:15"},"nodeType":"YulFunctionCall","src":"2289:6:15"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2276:6:15"},"nodeType":"YulFunctionCall","src":"2276:20:15"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"2270:2:15","type":""}]},{"nodeType":"YulAssignment","src":"2313:18:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2326:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"2329:1:15"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2322:3:15"},"nodeType":"YulFunctionCall","src":"2322:9:15"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2313:5:15"}]},{"nodeType":"YulAssignment","src":"2348:43:15","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2365:2:15"},{"name":"prod0","nodeType":"YulIdentifier","src":"2369:5:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2361:3:15"},"nodeType":"YulFunctionCall","src":"2361:14:15"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2380:2:15"},{"name":"prod0","nodeType":"YulIdentifier","src":"2384:5:15"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2377:2:15"},"nodeType":"YulFunctionCall","src":"2377:13:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2357:3:15"},"nodeType":"YulFunctionCall","src":"2357:34:15"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2348:5:15"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2706,"isOffset":false,"isSlot":false,"src":"2313:5:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"2369:5:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"2384:5:15","valueSize":1},{"declaration":2709,"isOffset":false,"isSlot":false,"src":"2348:5:15","valueSize":1},{"declaration":2696,"isOffset":false,"isSlot":false,"src":"2283:1:15","valueSize":1},{"declaration":2696,"isOffset":false,"isSlot":false,"src":"2326:1:15","valueSize":1},{"declaration":2698,"isOffset":false,"isSlot":false,"src":"2286:1:15","valueSize":1},{"declaration":2698,"isOffset":false,"isSlot":false,"src":"2329:1:15","valueSize":1}],"id":2711,"nodeType":"InlineAssembly","src":"2239:166:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2712,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2709,"src":"2486:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2486:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2720,"nodeType":"IfStatement","src":"2482:368:15","trueBody":{"id":2719,"nodeType":"Block","src":"2498:352:15","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2715,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2706,"src":"2816:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2716,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"2824:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2816:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2704,"id":2718,"nodeType":"Return","src":"2809:26:15"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2722,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"2960:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2723,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2709,"src":"2974:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2960:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6174683a206d756c446976206f766572666c6f77","id":2725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2981:23:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""},"value":"Math: mulDiv overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""}],"id":2721,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2952:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:53:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2727,"nodeType":"ExpressionStatement","src":"2952:53:15"},{"assignments":[2729],"declarations":[{"constant":false,"id":2729,"mutability":"mutable","name":"remainder","nameLocation":"3269:9:15","nodeType":"VariableDeclaration","scope":2814,"src":"3261:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint256","nodeType":"ElementaryTypeName","src":"3261:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2730,"nodeType":"VariableDeclarationStatement","src":"3261:17:15"},{"AST":{"nodeType":"YulBlock","src":"3301:291:15","statements":[{"nodeType":"YulAssignment","src":"3370:38:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3390:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"3393:1:15"},{"name":"denominator","nodeType":"YulIdentifier","src":"3396:11:15"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"3383:6:15"},"nodeType":"YulFunctionCall","src":"3383:25:15"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"3370:9:15"}]},{"nodeType":"YulAssignment","src":"3490:41:15","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"3503:5:15"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"3513:9:15"},{"name":"prod0","nodeType":"YulIdentifier","src":"3524:5:15"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3510:2:15"},"nodeType":"YulFunctionCall","src":"3510:20:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3499:3:15"},"nodeType":"YulFunctionCall","src":"3499:32:15"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"3490:5:15"}]},{"nodeType":"YulAssignment","src":"3548:30:15","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3561:5:15"},{"name":"remainder","nodeType":"YulIdentifier","src":"3568:9:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3557:3:15"},"nodeType":"YulFunctionCall","src":"3557:21:15"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3548:5:15"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2700,"isOffset":false,"isSlot":false,"src":"3396:11:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"3524:5:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"3548:5:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"3561:5:15","valueSize":1},{"declaration":2709,"isOffset":false,"isSlot":false,"src":"3490:5:15","valueSize":1},{"declaration":2709,"isOffset":false,"isSlot":false,"src":"3503:5:15","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"3370:9:15","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"3513:9:15","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"3568:9:15","valueSize":1},{"declaration":2696,"isOffset":false,"isSlot":false,"src":"3390:1:15","valueSize":1},{"declaration":2698,"isOffset":false,"isSlot":false,"src":"3393:1:15","valueSize":1}],"id":2731,"nodeType":"InlineAssembly","src":"3292:300:15"},{"assignments":[2733],"declarations":[{"constant":false,"id":2733,"mutability":"mutable","name":"twos","nameLocation":"3907:4:15","nodeType":"VariableDeclaration","scope":2814,"src":"3899:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2732,"name":"uint256","nodeType":"ElementaryTypeName","src":"3899:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2741,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2734,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"3914:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3929:12:15","subExpression":{"id":2735,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"3930:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3944:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3929:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2739,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3928:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3914:32:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3899:47:15"},{"AST":{"nodeType":"YulBlock","src":"3969:362:15","statements":[{"nodeType":"YulAssignment","src":"4034:37:15","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"4053:11:15"},{"name":"twos","nodeType":"YulIdentifier","src":"4066:4:15"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4049:3:15"},"nodeType":"YulFunctionCall","src":"4049:22:15"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"4034:11:15"}]},{"nodeType":"YulAssignment","src":"4138:25:15","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"4151:5:15"},{"name":"twos","nodeType":"YulIdentifier","src":"4158:4:15"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4147:3:15"},"nodeType":"YulFunctionCall","src":"4147:16:15"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"4138:5:15"}]},{"nodeType":"YulAssignment","src":"4278:39:15","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4298:1:15","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"4301:4:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4294:3:15"},"nodeType":"YulFunctionCall","src":"4294:12:15"},{"name":"twos","nodeType":"YulIdentifier","src":"4308:4:15"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4290:3:15"},"nodeType":"YulFunctionCall","src":"4290:23:15"},{"kind":"number","nodeType":"YulLiteral","src":"4315:1:15","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4286:3:15"},"nodeType":"YulFunctionCall","src":"4286:31:15"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"4278:4:15"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2700,"isOffset":false,"isSlot":false,"src":"4034:11:15","valueSize":1},{"declaration":2700,"isOffset":false,"isSlot":false,"src":"4053:11:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"4138:5:15","valueSize":1},{"declaration":2706,"isOffset":false,"isSlot":false,"src":"4151:5:15","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"4066:4:15","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"4158:4:15","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"4278:4:15","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"4301:4:15","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"4308:4:15","valueSize":1}],"id":2742,"nodeType":"InlineAssembly","src":"3960:371:15"},{"expression":{"id":2747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2743,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2706,"src":"4397:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2744,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2709,"src":"4406:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2745,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"4414:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4406:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4397:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2748,"nodeType":"ExpressionStatement","src":"4397:21:15"},{"assignments":[2750],"declarations":[{"constant":false,"id":2750,"mutability":"mutable","name":"inverse","nameLocation":"4744:7:15","nodeType":"VariableDeclaration","scope":2814,"src":"4736:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2749,"name":"uint256","nodeType":"ElementaryTypeName","src":"4736:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2757,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":2751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4755:1:15","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2752,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"4759:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4755:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2754,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4754:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":2755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4774:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4754:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4736:39:15"},{"expression":{"id":2764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2758,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"4992:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5003:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2760,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5007:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2761,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5021:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5007:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5003:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4992:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2765,"nodeType":"ExpressionStatement","src":"4992:36:15"},{"expression":{"id":2772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2766,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5061:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5072:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2768,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5076:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2769,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5090:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5076:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5072:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5061:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2773,"nodeType":"ExpressionStatement","src":"5061:36:15"},{"expression":{"id":2780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2774,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5131:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5142:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2776,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5146:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2777,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5160:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5146:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5142:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5131:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2781,"nodeType":"ExpressionStatement","src":"5131:36:15"},{"expression":{"id":2788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2782,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5201:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5212:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2784,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5216:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2785,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5230:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5216:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5212:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5201:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2789,"nodeType":"ExpressionStatement","src":"5201:36:15"},{"expression":{"id":2796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2790,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5271:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5282:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2792,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5286:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2793,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5300:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5286:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5282:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5271:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2797,"nodeType":"ExpressionStatement","src":"5271:36:15"},{"expression":{"id":2804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2798,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5342:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5353:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2800,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"5357:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2801,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5371:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5353:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5342:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2805,"nodeType":"ExpressionStatement","src":"5342:36:15"},{"expression":{"id":2810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2806,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"5812:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2807,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2706,"src":"5821:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2808,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2750,"src":"5829:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5821:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5812:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2811,"nodeType":"ExpressionStatement","src":"5812:24:15"},{"expression":{"id":2812,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"5857:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2704,"id":2813,"nodeType":"Return","src":"5850:13:15"}]}]},"documentation":{"id":2694,"nodeType":"StructuredDocumentation","src":"1357:305:15","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"id":2816,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:15","nodeType":"FunctionDefinition","parameters":{"id":2701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2696,"mutability":"mutable","name":"x","nameLocation":"1691:1:15","nodeType":"VariableDeclaration","scope":2816,"src":"1683:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2695,"name":"uint256","nodeType":"ElementaryTypeName","src":"1683:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2698,"mutability":"mutable","name":"y","nameLocation":"1702:1:15","nodeType":"VariableDeclaration","scope":2816,"src":"1694:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2697,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2700,"mutability":"mutable","name":"denominator","nameLocation":"1713:11:15","nodeType":"VariableDeclaration","scope":2816,"src":"1705:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2699,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:43:15"},"returnParameters":{"id":2704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2703,"mutability":"mutable","name":"result","nameLocation":"1757:6:15","nodeType":"VariableDeclaration","scope":2816,"src":"1749:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2702,"name":"uint256","nodeType":"ElementaryTypeName","src":"1749:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1748:16:15"},"scope":3468,"src":"1667:4213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2859,"nodeType":"Block","src":"6122:189:15","statements":[{"assignments":[2832],"declarations":[{"constant":false,"id":2832,"mutability":"mutable","name":"result","nameLocation":"6140:6:15","nodeType":"VariableDeclaration","scope":2859,"src":"6132:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2831,"name":"uint256","nodeType":"ElementaryTypeName","src":"6132:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2838,"initialValue":{"arguments":[{"id":2834,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2819,"src":"6156:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2835,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2821,"src":"6159:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2836,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2823,"src":"6162:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2833,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[2816,2860],"referencedDeclaration":2816,"src":"6149:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6149:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6132:42:15"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"id":2842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2839,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2826,"src":"6188:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2840,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"6200:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2609_$","typeString":"type(enum Math.Rounding)"}},"id":2841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6209:2:15","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2607,"src":"6200:11:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"src":"6188:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2844,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2819,"src":"6222:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2845,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2821,"src":"6225:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2846,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2823,"src":"6228:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2843,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"6215:6:15","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6215:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6243:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6215:29:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6188:56:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2856,"nodeType":"IfStatement","src":"6184:98:15","trueBody":{"id":2855,"nodeType":"Block","src":"6246:36:15","statements":[{"expression":{"id":2853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2851,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2832,"src":"6260:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6270:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6260:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2854,"nodeType":"ExpressionStatement","src":"6260:11:15"}]}},{"expression":{"id":2857,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2832,"src":"6298:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2830,"id":2858,"nodeType":"Return","src":"6291:13:15"}]},"documentation":{"id":2817,"nodeType":"StructuredDocumentation","src":"5886:121:15","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":2860,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"6021:6:15","nodeType":"FunctionDefinition","parameters":{"id":2827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2819,"mutability":"mutable","name":"x","nameLocation":"6036:1:15","nodeType":"VariableDeclaration","scope":2860,"src":"6028:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2818,"name":"uint256","nodeType":"ElementaryTypeName","src":"6028:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2821,"mutability":"mutable","name":"y","nameLocation":"6047:1:15","nodeType":"VariableDeclaration","scope":2860,"src":"6039:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2820,"name":"uint256","nodeType":"ElementaryTypeName","src":"6039:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2823,"mutability":"mutable","name":"denominator","nameLocation":"6058:11:15","nodeType":"VariableDeclaration","scope":2860,"src":"6050:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2822,"name":"uint256","nodeType":"ElementaryTypeName","src":"6050:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2826,"mutability":"mutable","name":"rounding","nameLocation":"6080:8:15","nodeType":"VariableDeclaration","scope":2860,"src":"6071:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"typeName":{"id":2825,"nodeType":"UserDefinedTypeName","pathNode":{"id":2824,"name":"Rounding","nameLocations":["6071:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":2609,"src":"6071:8:15"},"referencedDeclaration":2609,"src":"6071:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"6027:62:15"},"returnParameters":{"id":2830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2860,"src":"6113:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2828,"name":"uint256","nodeType":"ElementaryTypeName","src":"6113:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6112:9:15"},"scope":3468,"src":"6012:299:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2971,"nodeType":"Block","src":"6587:1585:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2868,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"6601:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6606:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6601:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2874,"nodeType":"IfStatement","src":"6597:45:15","trueBody":{"id":2873,"nodeType":"Block","src":"6609:33:15","statements":[{"expression":{"hexValue":"30","id":2871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6630:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2867,"id":2872,"nodeType":"Return","src":"6623:8:15"}]}},{"assignments":[2876],"declarations":[{"constant":false,"id":2876,"mutability":"mutable","name":"result","nameLocation":"7329:6:15","nodeType":"VariableDeclaration","scope":2971,"src":"7321:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2875,"name":"uint256","nodeType":"ElementaryTypeName","src":"7321:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2885,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7338:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2879,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7349:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2878,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3140,3176],"referencedDeclaration":3140,"src":"7344:4:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7344:7:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7344:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2883,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7343:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7338:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7321:36:15"},{"id":2970,"nodeType":"UncheckedBlock","src":"7758:408:15","statements":[{"expression":{"id":2895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2886,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7782:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2887,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7792:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2888,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7801:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2889,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7805:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7792:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2892,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7791:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7816:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7791:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7782:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2896,"nodeType":"ExpressionStatement","src":"7782:35:15"},{"expression":{"id":2906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2897,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7831:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2898,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7841:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2899,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7850:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2900,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7854:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7841:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2903,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7840:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7865:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7840:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7831:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2907,"nodeType":"ExpressionStatement","src":"7831:35:15"},{"expression":{"id":2917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2908,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7880:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2909,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7890:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2910,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7899:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2911,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7903:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2914,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7889:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7914:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7889:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7880:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2918,"nodeType":"ExpressionStatement","src":"7880:35:15"},{"expression":{"id":2928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2919,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7929:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2920,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7939:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2921,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7948:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2922,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7952:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7939:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2925,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7938:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7963:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7938:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7929:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2929,"nodeType":"ExpressionStatement","src":"7929:35:15"},{"expression":{"id":2939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2930,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7978:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2931,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"7988:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2932,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"7997:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2933,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8001:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7997:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7988:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7987:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8012:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7987:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7978:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2940,"nodeType":"ExpressionStatement","src":"7978:35:15"},{"expression":{"id":2950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2941,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8027:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2942,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8037:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"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":2863,"src":"8046:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2944,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8050:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8046:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8037:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2947,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8036:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8061:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8036:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8027:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2951,"nodeType":"ExpressionStatement","src":"8027:35:15"},{"expression":{"id":2961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2952,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8076:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2953,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8086:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2954,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"8095:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2955,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8099:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8095:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8086:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2958,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8085:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8110:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8085:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8076:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2962,"nodeType":"ExpressionStatement","src":"8076:35:15"},{"expression":{"arguments":[{"id":2964,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8136:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2965,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"8144:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2966,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"8148:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8144:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2963,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2645,"src":"8132:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2867,"id":2969,"nodeType":"Return","src":"8125:30:15"}]}]},"documentation":{"id":2861,"nodeType":"StructuredDocumentation","src":"6317:208:15","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":2972,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6539:4:15","nodeType":"FunctionDefinition","parameters":{"id":2864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2863,"mutability":"mutable","name":"a","nameLocation":"6552:1:15","nodeType":"VariableDeclaration","scope":2972,"src":"6544:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2862,"name":"uint256","nodeType":"ElementaryTypeName","src":"6544:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6543:11:15"},"returnParameters":{"id":2867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2866,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2972,"src":"6578:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2865,"name":"uint256","nodeType":"ElementaryTypeName","src":"6578:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6577:9:15"},"scope":3468,"src":"6530:1642:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3007,"nodeType":"Block","src":"8348:161:15","statements":[{"id":3006,"nodeType":"UncheckedBlock","src":"8358:145:15","statements":[{"assignments":[2984],"declarations":[{"constant":false,"id":2984,"mutability":"mutable","name":"result","nameLocation":"8390:6:15","nodeType":"VariableDeclaration","scope":3006,"src":"8382:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2983,"name":"uint256","nodeType":"ElementaryTypeName","src":"8382:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2988,"initialValue":{"arguments":[{"id":2986,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"8404:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2985,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[2972,3008],"referencedDeclaration":2972,"src":"8399:4:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8399:7:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8382:24:15"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2989,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2984,"src":"8427:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"id":2993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2990,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2978,"src":"8437:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2991,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"8449:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2609_$","typeString":"type(enum Math.Rounding)"}},"id":2992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8458:2:15","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2607,"src":"8449:11:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"src":"8437:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2994,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2984,"src":"8464:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2995,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2984,"src":"8473:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2997,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"8482:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8437:46:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8490:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8437:54:15","trueExpression":{"hexValue":"31","id":3000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8486:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3003,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8436:56:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8427:65:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2982,"id":3005,"nodeType":"Return","src":"8420:72:15"}]}]},"documentation":{"id":2973,"nodeType":"StructuredDocumentation","src":"8178:89:15","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":3008,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8281:4:15","nodeType":"FunctionDefinition","parameters":{"id":2979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2975,"mutability":"mutable","name":"a","nameLocation":"8294:1:15","nodeType":"VariableDeclaration","scope":3008,"src":"8286:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2974,"name":"uint256","nodeType":"ElementaryTypeName","src":"8286:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2978,"mutability":"mutable","name":"rounding","nameLocation":"8306:8:15","nodeType":"VariableDeclaration","scope":3008,"src":"8297:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"typeName":{"id":2977,"nodeType":"UserDefinedTypeName","pathNode":{"id":2976,"name":"Rounding","nameLocations":["8297:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":2609,"src":"8297:8:15"},"referencedDeclaration":2609,"src":"8297:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8285:30:15"},"returnParameters":{"id":2982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3008,"src":"8339:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2980,"name":"uint256","nodeType":"ElementaryTypeName","src":"8339:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8338:9:15"},"scope":3468,"src":"8272:237:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3139,"nodeType":"Block","src":"8694:922:15","statements":[{"assignments":[3017],"declarations":[{"constant":false,"id":3017,"mutability":"mutable","name":"result","nameLocation":"8712:6:15","nodeType":"VariableDeclaration","scope":3139,"src":"8704:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3016,"name":"uint256","nodeType":"ElementaryTypeName","src":"8704:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3019,"initialValue":{"hexValue":"30","id":3018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8721:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8704:18:15"},{"id":3136,"nodeType":"UncheckedBlock","src":"8732:855:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3020,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"8760:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8769:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8760:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8775:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8760:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3034,"nodeType":"IfStatement","src":"8756:99:15","trueBody":{"id":3033,"nodeType":"Block","src":"8778:77:15","statements":[{"expression":{"id":3027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3025,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"8796:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8796:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3028,"nodeType":"ExpressionStatement","src":"8796:13:15"},{"expression":{"id":3031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3029,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"8827:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":3030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8837:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8827:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3032,"nodeType":"ExpressionStatement","src":"8827:13:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3035,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"8872:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8881:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8872:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8886:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8872:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3049,"nodeType":"IfStatement","src":"8868:96:15","trueBody":{"id":3048,"nodeType":"Block","src":"8889:75:15","statements":[{"expression":{"id":3042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3040,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"8907:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8917:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8907:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3043,"nodeType":"ExpressionStatement","src":"8907:12:15"},{"expression":{"id":3046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3044,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"8937:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8947:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8937:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3047,"nodeType":"ExpressionStatement","src":"8937:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3050,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"8981:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8990:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8981:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8995:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8981:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3064,"nodeType":"IfStatement","src":"8977:96:15","trueBody":{"id":3063,"nodeType":"Block","src":"8998:75:15","statements":[{"expression":{"id":3057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3055,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9016:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9026:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9016:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3058,"nodeType":"ExpressionStatement","src":"9016:12:15"},{"expression":{"id":3061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3059,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9046:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9056:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9046:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3062,"nodeType":"ExpressionStatement","src":"9046:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9090:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9090:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9104:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9090:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3079,"nodeType":"IfStatement","src":"9086:96:15","trueBody":{"id":3078,"nodeType":"Block","src":"9107:75:15","statements":[{"expression":{"id":3072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3070,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9125:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9135:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9125:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3073,"nodeType":"ExpressionStatement","src":"9125:12:15"},{"expression":{"id":3076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3074,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9155:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9165:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9155:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3077,"nodeType":"ExpressionStatement","src":"9155:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3080,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9199:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9208:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9199:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9212:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9199:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3094,"nodeType":"IfStatement","src":"9195:93:15","trueBody":{"id":3093,"nodeType":"Block","src":"9215:73:15","statements":[{"expression":{"id":3087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3085,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9233:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":3086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9243:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9233:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3088,"nodeType":"ExpressionStatement","src":"9233:11:15"},{"expression":{"id":3091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3089,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9262:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9262:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3092,"nodeType":"ExpressionStatement","src":"9262:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3095,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9305:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":3096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9314:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9305:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9318:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9305:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3109,"nodeType":"IfStatement","src":"9301:93:15","trueBody":{"id":3108,"nodeType":"Block","src":"9321:73:15","statements":[{"expression":{"id":3102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3100,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9339:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9349:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9339:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3103,"nodeType":"ExpressionStatement","src":"9339:11:15"},{"expression":{"id":3106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3104,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9368:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9378:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9368:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3107,"nodeType":"ExpressionStatement","src":"9368:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3110,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9411:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":3111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9420:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9411:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9424:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9411:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3124,"nodeType":"IfStatement","src":"9407:93:15","trueBody":{"id":3123,"nodeType":"Block","src":"9427:73:15","statements":[{"expression":{"id":3117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9445:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":3116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9455:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9445:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3118,"nodeType":"ExpressionStatement","src":"9445:11:15"},{"expression":{"id":3121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3119,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9474:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9484:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9474:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3122,"nodeType":"ExpressionStatement","src":"9474:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3125,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"9517:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9526:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9517:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9530:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9517:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3135,"nodeType":"IfStatement","src":"9513:64:15","trueBody":{"id":3134,"nodeType":"Block","src":"9533:44:15","statements":[{"expression":{"id":3132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3130,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9551:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9561:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9551:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3133,"nodeType":"ExpressionStatement","src":"9551:11:15"}]}}]},{"expression":{"id":3137,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"9603:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3015,"id":3138,"nodeType":"Return","src":"9596:13:15"}]},"documentation":{"id":3009,"nodeType":"StructuredDocumentation","src":"8515:113:15","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":3140,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8642:4:15","nodeType":"FunctionDefinition","parameters":{"id":3012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3011,"mutability":"mutable","name":"value","nameLocation":"8655:5:15","nodeType":"VariableDeclaration","scope":3140,"src":"8647:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3010,"name":"uint256","nodeType":"ElementaryTypeName","src":"8647:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8646:15:15"},"returnParameters":{"id":3015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3140,"src":"8685:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3013,"name":"uint256","nodeType":"ElementaryTypeName","src":"8685:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8684:9:15"},"scope":3468,"src":"8633:983:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3175,"nodeType":"Block","src":"9849:165:15","statements":[{"id":3174,"nodeType":"UncheckedBlock","src":"9859:149:15","statements":[{"assignments":[3152],"declarations":[{"constant":false,"id":3152,"mutability":"mutable","name":"result","nameLocation":"9891:6:15","nodeType":"VariableDeclaration","scope":3174,"src":"9883:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3151,"name":"uint256","nodeType":"ElementaryTypeName","src":"9883:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3156,"initialValue":{"arguments":[{"id":3154,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"9905:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3153,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3140,3176],"referencedDeclaration":3140,"src":"9900:4:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9900:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9883:28:15"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3157,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"9932:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"id":3161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3158,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3146,"src":"9942:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3159,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"9954:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2609_$","typeString":"type(enum Math.Rounding)"}},"id":3160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9963:2:15","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2607,"src":"9954:11:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"src":"9942:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9969:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":3163,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"9974:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"9983:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9942:46:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9995:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9942:54:15","trueExpression":{"hexValue":"31","id":3168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9991:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3171,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9941:56:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9932:65:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3150,"id":3173,"nodeType":"Return","src":"9925:72:15"}]}]},"documentation":{"id":3141,"nodeType":"StructuredDocumentation","src":"9622:142:15","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3176,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9778:4:15","nodeType":"FunctionDefinition","parameters":{"id":3147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3143,"mutability":"mutable","name":"value","nameLocation":"9791:5:15","nodeType":"VariableDeclaration","scope":3176,"src":"9783:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3142,"name":"uint256","nodeType":"ElementaryTypeName","src":"9783:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3146,"mutability":"mutable","name":"rounding","nameLocation":"9807:8:15","nodeType":"VariableDeclaration","scope":3176,"src":"9798:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"typeName":{"id":3145,"nodeType":"UserDefinedTypeName","pathNode":{"id":3144,"name":"Rounding","nameLocations":["9798:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":2609,"src":"9798:8:15"},"referencedDeclaration":2609,"src":"9798:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9782:34:15"},"returnParameters":{"id":3150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3176,"src":"9840:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3148,"name":"uint256","nodeType":"ElementaryTypeName","src":"9840:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9839:9:15"},"scope":3468,"src":"9769:245:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3304,"nodeType":"Block","src":"10201:854:15","statements":[{"assignments":[3185],"declarations":[{"constant":false,"id":3185,"mutability":"mutable","name":"result","nameLocation":"10219:6:15","nodeType":"VariableDeclaration","scope":3304,"src":"10211:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3184,"name":"uint256","nodeType":"ElementaryTypeName","src":"10211:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3187,"initialValue":{"hexValue":"30","id":3186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10228:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10211:18:15"},{"id":3301,"nodeType":"UncheckedBlock","src":"10239:787:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3188,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10267:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":3191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10276:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10282:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10276:8:15","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10267:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3204,"nodeType":"IfStatement","src":"10263:103:15","trueBody":{"id":3203,"nodeType":"Block","src":"10286:80:15","statements":[{"expression":{"id":3197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3193,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10304:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":3196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10313:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10313:8:15","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10304:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3198,"nodeType":"ExpressionStatement","src":"10304:17:15"},{"expression":{"id":3201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3199,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10339:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10349:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10339:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3202,"nodeType":"ExpressionStatement","src":"10339:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3205,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10383:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":3208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10392:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10398:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10392:8:15","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10383:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3221,"nodeType":"IfStatement","src":"10379:103:15","trueBody":{"id":3220,"nodeType":"Block","src":"10402:80:15","statements":[{"expression":{"id":3214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3210,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10420:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":3213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10435:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10429:8:15","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10420:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3215,"nodeType":"ExpressionStatement","src":"10420:17:15"},{"expression":{"id":3218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3216,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10455:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10465:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10455:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3219,"nodeType":"ExpressionStatement","src":"10455:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3222,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10499:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10508:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10514:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10508:8:15","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10499:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3238,"nodeType":"IfStatement","src":"10495:103:15","trueBody":{"id":3237,"nodeType":"Block","src":"10518:80:15","statements":[{"expression":{"id":3231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3227,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10536:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10545:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10551:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10545:8:15","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10536:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3232,"nodeType":"ExpressionStatement","src":"10536:17:15"},{"expression":{"id":3235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3233,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10571:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10571:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3236,"nodeType":"ExpressionStatement","src":"10571:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3239,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10615:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10624:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10630:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10624:7:15","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10615:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3255,"nodeType":"IfStatement","src":"10611:100:15","trueBody":{"id":3254,"nodeType":"Block","src":"10633:78:15","statements":[{"expression":{"id":3248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3244,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10651:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10660:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10666:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10660:7:15","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10651:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3249,"nodeType":"ExpressionStatement","src":"10651:16:15"},{"expression":{"id":3252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3250,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10685:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10695:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10685:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3253,"nodeType":"ExpressionStatement","src":"10685:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3256,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10728:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10737:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10743:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10737:7:15","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10728:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3272,"nodeType":"IfStatement","src":"10724:100:15","trueBody":{"id":3271,"nodeType":"Block","src":"10746:78:15","statements":[{"expression":{"id":3265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3261,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10764:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10779:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10773:7:15","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10764:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3266,"nodeType":"ExpressionStatement","src":"10764:16:15"},{"expression":{"id":3269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3267,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10798:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10808:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10798:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3270,"nodeType":"ExpressionStatement","src":"10798:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3273,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10841:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10850:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10856:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10850:7:15","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10841:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3289,"nodeType":"IfStatement","src":"10837:100:15","trueBody":{"id":3288,"nodeType":"Block","src":"10859:78:15","statements":[{"expression":{"id":3282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3278,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10877:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10886:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10892:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10886:7:15","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10877:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3283,"nodeType":"ExpressionStatement","src":"10877:16:15"},{"expression":{"id":3286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3284,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10911:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10921:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10911:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3287,"nodeType":"ExpressionStatement","src":"10911:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3290,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"10954:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":3293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10963:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":3292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10969:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10963:7:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10954:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3300,"nodeType":"IfStatement","src":"10950:66:15","trueBody":{"id":3299,"nodeType":"Block","src":"10972:44:15","statements":[{"expression":{"id":3297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3295,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"10990:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11000:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10990:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3298,"nodeType":"ExpressionStatement","src":"10990:11:15"}]}}]},{"expression":{"id":3302,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3185,"src":"11042:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3183,"id":3303,"nodeType":"Return","src":"11035:13:15"}]},"documentation":{"id":3177,"nodeType":"StructuredDocumentation","src":"10020:114:15","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":3305,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10148:5:15","nodeType":"FunctionDefinition","parameters":{"id":3180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3179,"mutability":"mutable","name":"value","nameLocation":"10162:5:15","nodeType":"VariableDeclaration","scope":3305,"src":"10154:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3178,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:15:15"},"returnParameters":{"id":3183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3182,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3305,"src":"10192:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3181,"name":"uint256","nodeType":"ElementaryTypeName","src":"10192:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10191:9:15"},"scope":3468,"src":"10139:916:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3340,"nodeType":"Block","src":"11290:167:15","statements":[{"id":3339,"nodeType":"UncheckedBlock","src":"11300:151:15","statements":[{"assignments":[3317],"declarations":[{"constant":false,"id":3317,"mutability":"mutable","name":"result","nameLocation":"11332:6:15","nodeType":"VariableDeclaration","scope":3339,"src":"11324:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3316,"name":"uint256","nodeType":"ElementaryTypeName","src":"11324:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3321,"initialValue":{"arguments":[{"id":3319,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3308,"src":"11347:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3318,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[3305,3341],"referencedDeclaration":3305,"src":"11341:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11341:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11324:29:15"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3322,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3317,"src":"11374:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3323,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"11384:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3324,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"11396:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2609_$","typeString":"type(enum Math.Rounding)"}},"id":3325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11405:2:15","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2607,"src":"11396:11:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"src":"11384:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11411:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":3328,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3317,"src":"11417:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3330,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3308,"src":"11426:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11384:47:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11438:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11384:55:15","trueExpression":{"hexValue":"31","id":3333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11434:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3336,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11383:57:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11374:66:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3315,"id":3338,"nodeType":"Return","src":"11367:73:15"}]}]},"documentation":{"id":3306,"nodeType":"StructuredDocumentation","src":"11061:143:15","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3341,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"11218:5:15","nodeType":"FunctionDefinition","parameters":{"id":3312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3308,"mutability":"mutable","name":"value","nameLocation":"11232:5:15","nodeType":"VariableDeclaration","scope":3341,"src":"11224:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3307,"name":"uint256","nodeType":"ElementaryTypeName","src":"11224:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3311,"mutability":"mutable","name":"rounding","nameLocation":"11248:8:15","nodeType":"VariableDeclaration","scope":3341,"src":"11239:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"typeName":{"id":3310,"nodeType":"UserDefinedTypeName","pathNode":{"id":3309,"name":"Rounding","nameLocations":["11239:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":2609,"src":"11239:8:15"},"referencedDeclaration":2609,"src":"11239:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11223:34:15"},"returnParameters":{"id":3315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3341,"src":"11281:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3313,"name":"uint256","nodeType":"ElementaryTypeName","src":"11281:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11280:9:15"},"scope":3468,"src":"11209:248:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3427,"nodeType":"Block","src":"11771:600:15","statements":[{"assignments":[3350],"declarations":[{"constant":false,"id":3350,"mutability":"mutable","name":"result","nameLocation":"11789:6:15","nodeType":"VariableDeclaration","scope":3427,"src":"11781:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3349,"name":"uint256","nodeType":"ElementaryTypeName","src":"11781:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3352,"initialValue":{"hexValue":"30","id":3351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11798:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11781:18:15"},{"id":3424,"nodeType":"UncheckedBlock","src":"11809:533:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3353,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"11837:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11846:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11837:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11852:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11837:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3367,"nodeType":"IfStatement","src":"11833:98:15","trueBody":{"id":3366,"nodeType":"Block","src":"11855:76:15","statements":[{"expression":{"id":3360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"11873:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11883:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11873:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3361,"nodeType":"ExpressionStatement","src":"11873:13:15"},{"expression":{"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3362,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"11904:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11914:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11904:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3365,"nodeType":"ExpressionStatement","src":"11904:12:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3368,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"11948:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11957:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11948:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11962:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11948:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3382,"nodeType":"IfStatement","src":"11944:95:15","trueBody":{"id":3381,"nodeType":"Block","src":"11965:74:15","statements":[{"expression":{"id":3375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3373,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"11983:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11993:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11983:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3376,"nodeType":"ExpressionStatement","src":"11983:12:15"},{"expression":{"id":3379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3377,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"12013:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12023:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12013:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3380,"nodeType":"ExpressionStatement","src":"12013:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3383,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"12056:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12065:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12056:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12070:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12056:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3397,"nodeType":"IfStatement","src":"12052:95:15","trueBody":{"id":3396,"nodeType":"Block","src":"12073:74:15","statements":[{"expression":{"id":3390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3388,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"12091:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12101:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12091:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3391,"nodeType":"ExpressionStatement","src":"12091:12:15"},{"expression":{"id":3394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3392,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"12121:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12121:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3395,"nodeType":"ExpressionStatement","src":"12121:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3398,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"12164:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12173:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12164:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12178:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12164:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3412,"nodeType":"IfStatement","src":"12160:95:15","trueBody":{"id":3411,"nodeType":"Block","src":"12181:74:15","statements":[{"expression":{"id":3405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3403,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"12199:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12209:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12199:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3406,"nodeType":"ExpressionStatement","src":"12199:12:15"},{"expression":{"id":3409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3407,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"12229:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12229:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3410,"nodeType":"ExpressionStatement","src":"12229:11:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3413,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"12272:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12281:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12272:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12285:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12272:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3423,"nodeType":"IfStatement","src":"12268:64:15","trueBody":{"id":3422,"nodeType":"Block","src":"12288:44:15","statements":[{"expression":{"id":3420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3418,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"12306:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12316:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12306:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3421,"nodeType":"ExpressionStatement","src":"12306:11:15"}]}}]},{"expression":{"id":3425,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"12358:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3348,"id":3426,"nodeType":"Return","src":"12351:13:15"}]},"documentation":{"id":3342,"nodeType":"StructuredDocumentation","src":"11463:240:15","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":3428,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11717:6:15","nodeType":"FunctionDefinition","parameters":{"id":3345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3344,"mutability":"mutable","name":"value","nameLocation":"11732:5:15","nodeType":"VariableDeclaration","scope":3428,"src":"11724:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3343,"name":"uint256","nodeType":"ElementaryTypeName","src":"11724:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11723:15:15"},"returnParameters":{"id":3348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3428,"src":"11762:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3346,"name":"uint256","nodeType":"ElementaryTypeName","src":"11762:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11761:9:15"},"scope":3468,"src":"11708:663:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3466,"nodeType":"Block","src":"12608:174:15","statements":[{"id":3465,"nodeType":"UncheckedBlock","src":"12618:158:15","statements":[{"assignments":[3440],"declarations":[{"constant":false,"id":3440,"mutability":"mutable","name":"result","nameLocation":"12650:6:15","nodeType":"VariableDeclaration","scope":3465,"src":"12642:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3439,"name":"uint256","nodeType":"ElementaryTypeName","src":"12642:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3444,"initialValue":{"arguments":[{"id":3442,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"12666:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3441,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[3428,3467],"referencedDeclaration":3428,"src":"12659:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12659:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12642:30:15"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3445,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3440,"src":"12693:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"id":3449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3446,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"12703:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3447,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"12715:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2609_$","typeString":"type(enum Math.Rounding)"}},"id":3448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12724:2:15","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2607,"src":"12715:11:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"src":"12703:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12730:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3451,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3440,"src":"12736:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":3452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12746:1:15","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12736:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3454,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12735:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3456,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"12751:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12703:53:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12763:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12703:61:15","trueExpression":{"hexValue":"31","id":3459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12759:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3462,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12702:63:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12693:72:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3438,"id":3464,"nodeType":"Return","src":"12686:79:15"}]}]},"documentation":{"id":3429,"nodeType":"StructuredDocumentation","src":"12377:144:15","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3467,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12535:6:15","nodeType":"FunctionDefinition","parameters":{"id":3435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3431,"mutability":"mutable","name":"value","nameLocation":"12550:5:15","nodeType":"VariableDeclaration","scope":3467,"src":"12542:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3430,"name":"uint256","nodeType":"ElementaryTypeName","src":"12542:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3434,"mutability":"mutable","name":"rounding","nameLocation":"12566:8:15","nodeType":"VariableDeclaration","scope":3467,"src":"12557:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"},"typeName":{"id":3433,"nodeType":"UserDefinedTypeName","pathNode":{"id":3432,"name":"Rounding","nameLocations":["12557:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":2609,"src":"12557:8:15"},"referencedDeclaration":2609,"src":"12557:8:15","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2609","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12541:34:15"},"returnParameters":{"id":3438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3467,"src":"12599:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3436,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12598:9:15"},"scope":3468,"src":"12526:256:15","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3469,"src":"202:12582:15","usedErrors":[]}],"src":"103:12682:15"},"id":15},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","exportedSymbols":{"SafeMath":[3780]},"id":3781,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3470,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:16"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeMath","contractDependencies":[],"contractKind":"library","documentation":{"id":3471,"nodeType":"StructuredDocumentation","src":"285:196:16","text":" @dev Wrappers over Solidity's arithmetic operations.\n NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler\n now has built in overflow checking."},"fullyImplemented":true,"id":3780,"linearizedBaseContracts":[3780],"name":"SafeMath","nameLocation":"490:8:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":3502,"nodeType":"Block","src":"717:140:16","statements":[{"id":3501,"nodeType":"UncheckedBlock","src":"727:124:16","statements":[{"assignments":[3484],"declarations":[{"constant":false,"id":3484,"mutability":"mutable","name":"c","nameLocation":"759:1:16","nodeType":"VariableDeclaration","scope":3501,"src":"751:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3483,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3488,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3485,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3474,"src":"763:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3486,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"767:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"763:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"751:17:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3489,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3484,"src":"786:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3490,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3474,"src":"790:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"786:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3496,"nodeType":"IfStatement","src":"782:28:16","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"801:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"808:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"800:10:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3482,"id":3495,"nodeType":"Return","src":"793:17:16"}},{"expression":{"components":[{"hexValue":"74727565","id":3497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"832:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":3498,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3484,"src":"838:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3499,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"831:9:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3482,"id":3500,"nodeType":"Return","src":"824:16:16"}]}]},"documentation":{"id":3472,"nodeType":"StructuredDocumentation","src":"505:131:16","text":" @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":3503,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"650:6:16","nodeType":"FunctionDefinition","parameters":{"id":3477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3474,"mutability":"mutable","name":"a","nameLocation":"665:1:16","nodeType":"VariableDeclaration","scope":3503,"src":"657:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3473,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3476,"mutability":"mutable","name":"b","nameLocation":"676:1:16","nodeType":"VariableDeclaration","scope":3503,"src":"668:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3475,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"656:22:16"},"returnParameters":{"id":3482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3479,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3503,"src":"702:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3478,"name":"bool","nodeType":"ElementaryTypeName","src":"702:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3503,"src":"708:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3480,"name":"uint256","nodeType":"ElementaryTypeName","src":"708:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"701:15:16"},"scope":3780,"src":"641:216:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3530,"nodeType":"Block","src":"1078:113:16","statements":[{"id":3529,"nodeType":"UncheckedBlock","src":"1088:97:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3515,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3508,"src":"1116:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3516,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3506,"src":"1120:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1116:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3522,"nodeType":"IfStatement","src":"1112:28:16","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1131:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1138:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3520,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1130:10:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3514,"id":3521,"nodeType":"Return","src":"1123:17:16"}},{"expression":{"components":[{"hexValue":"74727565","id":3523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1162:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3524,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3506,"src":"1168:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3525,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3508,"src":"1172:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1168:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3527,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1161:13:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3514,"id":3528,"nodeType":"Return","src":"1154:20:16"}]}]},"documentation":{"id":3504,"nodeType":"StructuredDocumentation","src":"863:134:16","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":3531,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"1011:6:16","nodeType":"FunctionDefinition","parameters":{"id":3509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3506,"mutability":"mutable","name":"a","nameLocation":"1026:1:16","nodeType":"VariableDeclaration","scope":3531,"src":"1018:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3505,"name":"uint256","nodeType":"ElementaryTypeName","src":"1018:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3508,"mutability":"mutable","name":"b","nameLocation":"1037:1:16","nodeType":"VariableDeclaration","scope":3531,"src":"1029:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3507,"name":"uint256","nodeType":"ElementaryTypeName","src":"1029:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1017:22:16"},"returnParameters":{"id":3514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3531,"src":"1063:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3510,"name":"bool","nodeType":"ElementaryTypeName","src":"1063:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3531,"src":"1069:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3512,"name":"uint256","nodeType":"ElementaryTypeName","src":"1069:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1062:15:16"},"scope":3780,"src":"1002:189:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3572,"nodeType":"Block","src":"1415:417:16","statements":[{"id":3571,"nodeType":"UncheckedBlock","src":"1425:401:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3543,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"1683:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1688:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1683:6:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3550,"nodeType":"IfStatement","src":"1679:28:16","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":3546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1699:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":3547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1705:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3548,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1698:9:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3542,"id":3549,"nodeType":"Return","src":"1691:16:16"}},{"assignments":[3552],"declarations":[{"constant":false,"id":3552,"mutability":"mutable","name":"c","nameLocation":"1729:1:16","nodeType":"VariableDeclaration","scope":3571,"src":"1721:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3551,"name":"uint256","nodeType":"ElementaryTypeName","src":"1721:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3556,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3553,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"1733:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3554,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3536,"src":"1737:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1733:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1721:17:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3557,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3552,"src":"1756:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3558,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"1760:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1756:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3560,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3536,"src":"1765:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1756:10:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3566,"nodeType":"IfStatement","src":"1752:33:16","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1776:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1783:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3564,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1775:10:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3542,"id":3565,"nodeType":"Return","src":"1768:17:16"}},{"expression":{"components":[{"hexValue":"74727565","id":3567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1807:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":3568,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3552,"src":"1813:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3569,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1806:9:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3542,"id":3570,"nodeType":"Return","src":"1799:16:16"}]}]},"documentation":{"id":3532,"nodeType":"StructuredDocumentation","src":"1197:137:16","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":3573,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1348:6:16","nodeType":"FunctionDefinition","parameters":{"id":3537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3534,"mutability":"mutable","name":"a","nameLocation":"1363:1:16","nodeType":"VariableDeclaration","scope":3573,"src":"1355:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3533,"name":"uint256","nodeType":"ElementaryTypeName","src":"1355:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3536,"mutability":"mutable","name":"b","nameLocation":"1374:1:16","nodeType":"VariableDeclaration","scope":3573,"src":"1366:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3535,"name":"uint256","nodeType":"ElementaryTypeName","src":"1366:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1354:22:16"},"returnParameters":{"id":3542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3573,"src":"1400:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3538,"name":"bool","nodeType":"ElementaryTypeName","src":"1400:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3573,"src":"1406:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3540,"name":"uint256","nodeType":"ElementaryTypeName","src":"1406:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1399:15:16"},"scope":3780,"src":"1339:493:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3600,"nodeType":"Block","src":"2057:114:16","statements":[{"id":3599,"nodeType":"UncheckedBlock","src":"2067:98:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3585,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"2095:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2100:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2095:6:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3592,"nodeType":"IfStatement","src":"2091:29:16","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2111:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2118:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3590,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2110:10:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3584,"id":3591,"nodeType":"Return","src":"2103:17:16"}},{"expression":{"components":[{"hexValue":"74727565","id":3593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2142:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3594,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3576,"src":"2148:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3595,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"2152:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2148:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3597,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2141:13:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3584,"id":3598,"nodeType":"Return","src":"2134:20:16"}]}]},"documentation":{"id":3574,"nodeType":"StructuredDocumentation","src":"1838:138:16","text":" @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"id":3601,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1990:6:16","nodeType":"FunctionDefinition","parameters":{"id":3579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3576,"mutability":"mutable","name":"a","nameLocation":"2005:1:16","nodeType":"VariableDeclaration","scope":3601,"src":"1997:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3575,"name":"uint256","nodeType":"ElementaryTypeName","src":"1997:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3578,"mutability":"mutable","name":"b","nameLocation":"2016:1:16","nodeType":"VariableDeclaration","scope":3601,"src":"2008:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3577,"name":"uint256","nodeType":"ElementaryTypeName","src":"2008:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1996:22:16"},"returnParameters":{"id":3584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3581,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3601,"src":"2042:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3580,"name":"bool","nodeType":"ElementaryTypeName","src":"2042:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3583,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3601,"src":"2048:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3582,"name":"uint256","nodeType":"ElementaryTypeName","src":"2048:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2041:15:16"},"scope":3780,"src":"1981:190:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3628,"nodeType":"Block","src":"2406:114:16","statements":[{"id":3627,"nodeType":"UncheckedBlock","src":"2416:98:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3613,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3606,"src":"2444:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2449:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2444:6:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3620,"nodeType":"IfStatement","src":"2440:29:16","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2460:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2467:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3618,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2459:10:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3612,"id":3619,"nodeType":"Return","src":"2452:17:16"}},{"expression":{"components":[{"hexValue":"74727565","id":3621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2491:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3622,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"2497:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3623,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3606,"src":"2501:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2497:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3625,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2490:13:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3612,"id":3626,"nodeType":"Return","src":"2483:20:16"}]}]},"documentation":{"id":3602,"nodeType":"StructuredDocumentation","src":"2177:148:16","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"id":3629,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2339:6:16","nodeType":"FunctionDefinition","parameters":{"id":3607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3604,"mutability":"mutable","name":"a","nameLocation":"2354:1:16","nodeType":"VariableDeclaration","scope":3629,"src":"2346:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3603,"name":"uint256","nodeType":"ElementaryTypeName","src":"2346:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3606,"mutability":"mutable","name":"b","nameLocation":"2365:1:16","nodeType":"VariableDeclaration","scope":3629,"src":"2357:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3605,"name":"uint256","nodeType":"ElementaryTypeName","src":"2357:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2345:22:16"},"returnParameters":{"id":3612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3629,"src":"2391:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3608,"name":"bool","nodeType":"ElementaryTypeName","src":"2391:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3629,"src":"2397:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3610,"name":"uint256","nodeType":"ElementaryTypeName","src":"2397:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2390:15:16"},"scope":3780,"src":"2330:190:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3643,"nodeType":"Block","src":"2822:29:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3639,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3632,"src":"2839:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3640,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3634,"src":"2843:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2839:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3638,"id":3642,"nodeType":"Return","src":"2832:12:16"}]},"documentation":{"id":3630,"nodeType":"StructuredDocumentation","src":"2526:224:16","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":3644,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"2764:3:16","nodeType":"FunctionDefinition","parameters":{"id":3635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3632,"mutability":"mutable","name":"a","nameLocation":"2776:1:16","nodeType":"VariableDeclaration","scope":3644,"src":"2768:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3631,"name":"uint256","nodeType":"ElementaryTypeName","src":"2768:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3634,"mutability":"mutable","name":"b","nameLocation":"2787:1:16","nodeType":"VariableDeclaration","scope":3644,"src":"2779:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3633,"name":"uint256","nodeType":"ElementaryTypeName","src":"2779:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2767:22:16"},"returnParameters":{"id":3638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3644,"src":"2813:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3636,"name":"uint256","nodeType":"ElementaryTypeName","src":"2813:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2812:9:16"},"scope":3780,"src":"2755:96:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3658,"nodeType":"Block","src":"3189:29:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3654,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3647,"src":"3206:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3655,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"3210:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3206:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3653,"id":3657,"nodeType":"Return","src":"3199:12:16"}]},"documentation":{"id":3645,"nodeType":"StructuredDocumentation","src":"2857:260:16","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":3659,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"3131:3:16","nodeType":"FunctionDefinition","parameters":{"id":3650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3647,"mutability":"mutable","name":"a","nameLocation":"3143:1:16","nodeType":"VariableDeclaration","scope":3659,"src":"3135:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3646,"name":"uint256","nodeType":"ElementaryTypeName","src":"3135:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3649,"mutability":"mutable","name":"b","nameLocation":"3154:1:16","nodeType":"VariableDeclaration","scope":3659,"src":"3146:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3648,"name":"uint256","nodeType":"ElementaryTypeName","src":"3146:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3134:22:16"},"returnParameters":{"id":3653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3659,"src":"3180:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3651,"name":"uint256","nodeType":"ElementaryTypeName","src":"3180:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3179:9:16"},"scope":3780,"src":"3122:96:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3673,"nodeType":"Block","src":"3532:29:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3669,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3662,"src":"3549:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3670,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3664,"src":"3553:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3549:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3668,"id":3672,"nodeType":"Return","src":"3542:12:16"}]},"documentation":{"id":3660,"nodeType":"StructuredDocumentation","src":"3224:236:16","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":3674,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nameLocation":"3474:3:16","nodeType":"FunctionDefinition","parameters":{"id":3665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3662,"mutability":"mutable","name":"a","nameLocation":"3486:1:16","nodeType":"VariableDeclaration","scope":3674,"src":"3478:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3661,"name":"uint256","nodeType":"ElementaryTypeName","src":"3478:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3664,"mutability":"mutable","name":"b","nameLocation":"3497:1:16","nodeType":"VariableDeclaration","scope":3674,"src":"3489:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3663,"name":"uint256","nodeType":"ElementaryTypeName","src":"3489:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3477:22:16"},"returnParameters":{"id":3668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3667,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3674,"src":"3523:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3523:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3522:9:16"},"scope":3780,"src":"3465:96:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3688,"nodeType":"Block","src":"3917:29:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3684,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"3934:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3685,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"3938:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3934:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3683,"id":3687,"nodeType":"Return","src":"3927:12:16"}]},"documentation":{"id":3675,"nodeType":"StructuredDocumentation","src":"3567:278:16","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.\n Requirements:\n - The divisor cannot be zero."},"id":3689,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"3859:3:16","nodeType":"FunctionDefinition","parameters":{"id":3680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3677,"mutability":"mutable","name":"a","nameLocation":"3871:1:16","nodeType":"VariableDeclaration","scope":3689,"src":"3863:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3676,"name":"uint256","nodeType":"ElementaryTypeName","src":"3863:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3679,"mutability":"mutable","name":"b","nameLocation":"3882:1:16","nodeType":"VariableDeclaration","scope":3689,"src":"3874:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3678,"name":"uint256","nodeType":"ElementaryTypeName","src":"3874:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3862:22:16"},"returnParameters":{"id":3683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3689,"src":"3908:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3681,"name":"uint256","nodeType":"ElementaryTypeName","src":"3908:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3907:9:16"},"scope":3780,"src":"3850:96:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3703,"nodeType":"Block","src":"4466:29:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3699,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3692,"src":"4483:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3700,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3694,"src":"4487:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4483:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3698,"id":3702,"nodeType":"Return","src":"4476:12:16"}]},"documentation":{"id":3690,"nodeType":"StructuredDocumentation","src":"3952:442:16","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":3704,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"4408:3:16","nodeType":"FunctionDefinition","parameters":{"id":3695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3692,"mutability":"mutable","name":"a","nameLocation":"4420:1:16","nodeType":"VariableDeclaration","scope":3704,"src":"4412:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3691,"name":"uint256","nodeType":"ElementaryTypeName","src":"4412:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3694,"mutability":"mutable","name":"b","nameLocation":"4431:1:16","nodeType":"VariableDeclaration","scope":3704,"src":"4423:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3693,"name":"uint256","nodeType":"ElementaryTypeName","src":"4423:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4411:22:16"},"returnParameters":{"id":3698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3704,"src":"4457:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3696,"name":"uint256","nodeType":"ElementaryTypeName","src":"4457:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4456:9:16"},"scope":3780,"src":"4399:96:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3728,"nodeType":"Block","src":"5054:106:16","statements":[{"id":3727,"nodeType":"UncheckedBlock","src":"5064:90:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3717,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3709,"src":"5096:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":3718,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"5101:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5096:6:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3720,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3711,"src":"5104:12:16","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":3716,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5088:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5088:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3722,"nodeType":"ExpressionStatement","src":"5088:29:16"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3723,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"5138:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3724,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3709,"src":"5142:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5138:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3715,"id":3726,"nodeType":"Return","src":"5131:12:16"}]}]},"documentation":{"id":3705,"nodeType":"StructuredDocumentation","src":"4501:453:16","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":3729,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"4968:3:16","nodeType":"FunctionDefinition","parameters":{"id":3712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3707,"mutability":"mutable","name":"a","nameLocation":"4980:1:16","nodeType":"VariableDeclaration","scope":3729,"src":"4972:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3706,"name":"uint256","nodeType":"ElementaryTypeName","src":"4972:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3709,"mutability":"mutable","name":"b","nameLocation":"4991:1:16","nodeType":"VariableDeclaration","scope":3729,"src":"4983:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3708,"name":"uint256","nodeType":"ElementaryTypeName","src":"4983:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3711,"mutability":"mutable","name":"errorMessage","nameLocation":"5008:12:16","nodeType":"VariableDeclaration","scope":3729,"src":"4994:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3710,"name":"string","nodeType":"ElementaryTypeName","src":"4994:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4971:50:16"},"returnParameters":{"id":3715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3729,"src":"5045:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3713,"name":"uint256","nodeType":"ElementaryTypeName","src":"5045:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5044:9:16"},"scope":3780,"src":"4959:201:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3753,"nodeType":"Block","src":"5739:105:16","statements":[{"id":3752,"nodeType":"UncheckedBlock","src":"5749:89:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3742,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3734,"src":"5781:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5785:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5781:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3745,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3736,"src":"5788:12:16","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":3741,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5773:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5773:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3747,"nodeType":"ExpressionStatement","src":"5773:28:16"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3748,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"5822:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3749,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3734,"src":"5826:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5822:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3740,"id":3751,"nodeType":"Return","src":"5815:12:16"}]}]},"documentation":{"id":3730,"nodeType":"StructuredDocumentation","src":"5166:473:16","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 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":3754,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"5653:3:16","nodeType":"FunctionDefinition","parameters":{"id":3737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3732,"mutability":"mutable","name":"a","nameLocation":"5665:1:16","nodeType":"VariableDeclaration","scope":3754,"src":"5657:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3731,"name":"uint256","nodeType":"ElementaryTypeName","src":"5657:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3734,"mutability":"mutable","name":"b","nameLocation":"5676:1:16","nodeType":"VariableDeclaration","scope":3754,"src":"5668:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3733,"name":"uint256","nodeType":"ElementaryTypeName","src":"5668:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3736,"mutability":"mutable","name":"errorMessage","nameLocation":"5693:12:16","nodeType":"VariableDeclaration","scope":3754,"src":"5679:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3735,"name":"string","nodeType":"ElementaryTypeName","src":"5679:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5656:50:16"},"returnParameters":{"id":3740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3739,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3754,"src":"5730:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3738,"name":"uint256","nodeType":"ElementaryTypeName","src":"5730:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5729:9:16"},"scope":3780,"src":"5644:200:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3778,"nodeType":"Block","src":"6585:105:16","statements":[{"id":3777,"nodeType":"UncheckedBlock","src":"6595:89:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3767,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3759,"src":"6627:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6631:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6627:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3770,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3761,"src":"6634:12:16","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":3766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6619:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6619:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3772,"nodeType":"ExpressionStatement","src":"6619:28:16"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3773,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"6668:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3774,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3759,"src":"6672:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6668:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3765,"id":3776,"nodeType":"Return","src":"6661:12:16"}]}]},"documentation":{"id":3755,"nodeType":"StructuredDocumentation","src":"5850:635:16","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":3779,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"6499:3:16","nodeType":"FunctionDefinition","parameters":{"id":3762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3757,"mutability":"mutable","name":"a","nameLocation":"6511:1:16","nodeType":"VariableDeclaration","scope":3779,"src":"6503:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3756,"name":"uint256","nodeType":"ElementaryTypeName","src":"6503:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3759,"mutability":"mutable","name":"b","nameLocation":"6522:1:16","nodeType":"VariableDeclaration","scope":3779,"src":"6514:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3758,"name":"uint256","nodeType":"ElementaryTypeName","src":"6514:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3761,"mutability":"mutable","name":"errorMessage","nameLocation":"6539:12:16","nodeType":"VariableDeclaration","scope":3779,"src":"6525:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3760,"name":"string","nodeType":"ElementaryTypeName","src":"6525:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6502:50:16"},"returnParameters":{"id":3765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3779,"src":"6576:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3763,"name":"uint256","nodeType":"ElementaryTypeName","src":"6576:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6575:9:16"},"scope":3780,"src":"6490:200:16","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3781,"src":"482:6210:16","usedErrors":[]}],"src":"107:6586:16"},"id":16},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[3885]},"id":3886,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3782,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"109:23:17"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":3783,"nodeType":"StructuredDocumentation","src":"134:80:17","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3885,"linearizedBaseContracts":[3885],"name":"SignedMath","nameLocation":"223:10:17","nodeType":"ContractDefinition","nodes":[{"body":{"id":3800,"nodeType":"Block","src":"375:37:17","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3793,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3786,"src":"392:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3794,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"396:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"392:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3797,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"404:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"392:13:17","trueExpression":{"id":3796,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3786,"src":"400:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3792,"id":3799,"nodeType":"Return","src":"385:20:17"}]},"documentation":{"id":3784,"nodeType":"StructuredDocumentation","src":"240:66:17","text":" @dev Returns the largest of two signed numbers."},"id":3801,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"320:3:17","nodeType":"FunctionDefinition","parameters":{"id":3789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3786,"mutability":"mutable","name":"a","nameLocation":"331:1:17","nodeType":"VariableDeclaration","scope":3801,"src":"324:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3785,"name":"int256","nodeType":"ElementaryTypeName","src":"324:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3788,"mutability":"mutable","name":"b","nameLocation":"341:1:17","nodeType":"VariableDeclaration","scope":3801,"src":"334:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3787,"name":"int256","nodeType":"ElementaryTypeName","src":"334:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"323:20:17"},"returnParameters":{"id":3792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3801,"src":"367:6:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3790,"name":"int256","nodeType":"ElementaryTypeName","src":"367:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"366:8:17"},"scope":3885,"src":"311:101:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3818,"nodeType":"Block","src":"554:37:17","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3811,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"571:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3812,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"575:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"571:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3815,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"583:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"571:13:17","trueExpression":{"id":3814,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"579:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3810,"id":3817,"nodeType":"Return","src":"564:20:17"}]},"documentation":{"id":3802,"nodeType":"StructuredDocumentation","src":"418:67:17","text":" @dev Returns the smallest of two signed numbers."},"id":3819,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"499:3:17","nodeType":"FunctionDefinition","parameters":{"id":3807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3804,"mutability":"mutable","name":"a","nameLocation":"510:1:17","nodeType":"VariableDeclaration","scope":3819,"src":"503:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3803,"name":"int256","nodeType":"ElementaryTypeName","src":"503:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3806,"mutability":"mutable","name":"b","nameLocation":"520:1:17","nodeType":"VariableDeclaration","scope":3819,"src":"513:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3805,"name":"int256","nodeType":"ElementaryTypeName","src":"513:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"502:20:17"},"returnParameters":{"id":3810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3819,"src":"546:6:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3808,"name":"int256","nodeType":"ElementaryTypeName","src":"546:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"545:8:17"},"scope":3885,"src":"490:101:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3862,"nodeType":"Block","src":"796:162:17","statements":[{"assignments":[3830],"declarations":[{"constant":false,"id":3830,"mutability":"mutable","name":"x","nameLocation":"865:1:17","nodeType":"VariableDeclaration","scope":3862,"src":"858:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3829,"name":"int256","nodeType":"ElementaryTypeName","src":"858:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":3843,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3831,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"870:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3832,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"874:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:5:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3834,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"869:7:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3835,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"881:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3836,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"885:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"881:5:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3838,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:7:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"880:12:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3841,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"879:14:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"869:24:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"858:35:17"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3844,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"910:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3849,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"930:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"922:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3847,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:17","typeDescriptions":{}}},"id":3850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:10:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":3851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:3:17","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"922:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":3845,"name":"int256","nodeType":"ElementaryTypeName","src":"915:6:17","typeDescriptions":{}}},"id":3853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3854,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"944:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3855,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"948:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"944:5:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3857,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"943:7:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"915:35:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3859,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"914:37:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"910:41:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3828,"id":3861,"nodeType":"Return","src":"903:48:17"}]},"documentation":{"id":3820,"nodeType":"StructuredDocumentation","src":"597:126:17","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":3863,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"737:7:17","nodeType":"FunctionDefinition","parameters":{"id":3825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3822,"mutability":"mutable","name":"a","nameLocation":"752:1:17","nodeType":"VariableDeclaration","scope":3863,"src":"745:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3821,"name":"int256","nodeType":"ElementaryTypeName","src":"745:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3824,"mutability":"mutable","name":"b","nameLocation":"762:1:17","nodeType":"VariableDeclaration","scope":3863,"src":"755:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3823,"name":"int256","nodeType":"ElementaryTypeName","src":"755:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"744:20:17"},"returnParameters":{"id":3828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3863,"src":"788:6:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3826,"name":"int256","nodeType":"ElementaryTypeName","src":"788:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"787:8:17"},"scope":3885,"src":"728:230:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3883,"nodeType":"Block","src":"1102:158:17","statements":[{"id":3882,"nodeType":"UncheckedBlock","src":"1112:142:17","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3873,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3866,"src":"1227:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":3874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1227:6:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1240:2:17","subExpression":{"id":3877,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3866,"src":"1241:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1227:15:17","trueExpression":{"id":3876,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3866,"src":"1236:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3871,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:17","typeDescriptions":{}}},"id":3880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3870,"id":3881,"nodeType":"Return","src":"1212:31:17"}]}]},"documentation":{"id":3864,"nodeType":"StructuredDocumentation","src":"964:78:17","text":" @dev Returns the absolute unsigned value of a signed value."},"id":3884,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1056:3:17","nodeType":"FunctionDefinition","parameters":{"id":3867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3866,"mutability":"mutable","name":"n","nameLocation":"1067:1:17","nodeType":"VariableDeclaration","scope":3884,"src":"1060:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3865,"name":"int256","nodeType":"ElementaryTypeName","src":"1060:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1059:10:17"},"returnParameters":{"id":3870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3869,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3884,"src":"1093:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3868,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:9:17"},"scope":3885,"src":"1047:213:17","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3886,"src":"215:1047:17","usedErrors":[]}],"src":"109:1154:17"},"id":17},"contracts/AdmodConsumer.sol":{"ast":{"absolutePath":"contracts/AdmodConsumer.sol","exportedSymbols":{"AdmodConsumer":[4216],"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[1076],"ConfirmedOwner":[881],"ConfirmedOwnerWithProposal":[1043],"ENSInterface":[1156],"ENSResolver_Chainlink":[2373],"LinkTokenInterface":[1251],"Math":[3468],"OperatorInterface":[1331],"OracleInterface":[1370],"OwnableInterface":[1386],"PointerInterface":[1394],"SafeMath":[3780],"SignedMath":[3885],"Strings":[2602]},"id":4217,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3887,"literals":["solidity","0.8",".17"],"nodeType":"PragmaDirective","src":"32:23:18"},{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","file":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","id":3888,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4217,"sourceUnit":862,"src":"57:59:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","file":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","id":3889,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4217,"sourceUnit":882,"src":"117:58:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","file":"@openzeppelin/contracts/utils/math/SafeMath.sol","id":3890,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4217,"sourceUnit":3781,"src":"176:57:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","id":3891,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4217,"sourceUnit":2603,"src":"234:51:18","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3892,"name":"ChainlinkClient","nameLocations":["314:15:18"],"nodeType":"IdentifierPath","referencedDeclaration":861,"src":"314:15:18"},"id":3893,"nodeType":"InheritanceSpecifier","src":"314:15:18"},{"baseName":{"id":3894,"name":"ConfirmedOwner","nameLocations":["331:14:18"],"nodeType":"IdentifierPath","referencedDeclaration":881,"src":"331:14:18"},"id":3895,"nodeType":"InheritanceSpecifier","src":"331:14:18"}],"canonicalName":"AdmodConsumer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4216,"linearizedBaseContracts":[4216,881,1043,1386,861],"name":"AdmodConsumer","nameLocation":"297:13:18","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3899,"libraryName":{"id":3896,"name":"Chainlink","nameLocations":["358:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":268,"src":"358:9:18"},"nodeType":"UsingForDirective","src":"352:38:18","typeName":{"id":3898,"nodeType":"UserDefinedTypeName","pathNode":{"id":3897,"name":"Chainlink.Request","nameLocations":["372:9:18","382:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"372:17:18"},"referencedDeclaration":25,"src":"372:17:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"global":false,"id":3902,"libraryName":{"id":3900,"name":"SafeMath","nameLocations":["402:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":3780,"src":"402:8:18"},"nodeType":"UsingForDirective","src":"396:24:18","typeName":{"id":3901,"name":"uint","nodeType":"ElementaryTypeName","src":"415:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"functionSelector":"df78abe6","id":3904,"mutability":"mutable","name":"earning","nameLocation":"481:7:18","nodeType":"VariableDeclaration","scope":4216,"src":"466:22:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3903,"name":"uint256","nodeType":"ElementaryTypeName","src":"466:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"ea21b098","id":3906,"mutability":"mutable","name":"linkAmount","nameLocation":"577:10:18","nodeType":"VariableDeclaration","scope":4216,"src":"562:25:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3905,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"403a7761","id":3908,"mutability":"mutable","name":"ggJobId","nameLocation":"669:7:18","nodeType":"VariableDeclaration","scope":4216,"src":"654:22:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"654:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"350844ce","id":3910,"mutability":"mutable","name":"transakJobId","nameLocation":"697:12:18","nodeType":"VariableDeclaration","scope":4216,"src":"682:27:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"682:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"id":3912,"mutability":"mutable","name":"fee","nameLocation":"732:3:18","nodeType":"VariableDeclaration","scope":4216,"src":"716:19:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3911,"name":"uint256","nodeType":"ElementaryTypeName","src":"716:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"functionSelector":"9e2f9084","id":3916,"mutability":"mutable","name":"earningReports","nameLocation":"776:14:18","nodeType":"VariableDeclaration","scope":4216,"src":"741:49:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":3915,"keyType":{"id":3913,"name":"uint256","nodeType":"ElementaryTypeName","src":"749:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"741:27:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":3914,"name":"uint256","nodeType":"ElementaryTypeName","src":"760:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"43e1ca49","id":3918,"mutability":"mutable","name":"isEligible","nameLocation":"808:10:18","nodeType":"VariableDeclaration","scope":4216,"src":"796:22:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3917,"name":"bool","nodeType":"ElementaryTypeName","src":"796:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"documentation":{"id":3919,"nodeType":"StructuredDocumentation","src":"825:207:18","text":" @notice\n @beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it\n In this 0xSplits contract will contain the list of charity organizations' addresses"},"functionSelector":"38af3eed","id":3921,"mutability":"mutable","name":"beneficiary","nameLocation":"1052:11:18","nodeType":"VariableDeclaration","scope":4216,"src":"1037:26:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3920,"name":"address","nodeType":"ElementaryTypeName","src":"1037:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"eventSelector":"9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0","id":3927,"name":"RequestEarning","nameLocation":"1076:14:18","nodeType":"EventDefinition","parameters":{"id":3926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3923,"indexed":true,"mutability":"mutable","name":"requestId","nameLocation":"1107:9:18","nodeType":"VariableDeclaration","scope":3927,"src":"1091:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3922,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1091:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3925,"indexed":false,"mutability":"mutable","name":"earning","nameLocation":"1126:7:18","nodeType":"VariableDeclaration","scope":3927,"src":"1118:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3924,"name":"uint256","nodeType":"ElementaryTypeName","src":"1118:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1090:44:18"},"src":"1070:65:18"},{"anonymous":false,"eventSelector":"2e48c207bbe18ca424eae69ca096badb69cc821f8cb72b42f49599f3390a3b1c","id":3933,"name":"RequestBoughtAmount","nameLocation":"1146:19:18","nodeType":"EventDefinition","parameters":{"id":3932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3929,"indexed":true,"mutability":"mutable","name":"requestId","nameLocation":"1182:9:18","nodeType":"VariableDeclaration","scope":3933,"src":"1166:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1166:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3931,"indexed":false,"mutability":"mutable","name":"linkAmount","nameLocation":"1201:10:18","nodeType":"VariableDeclaration","scope":3933,"src":"1193:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3930,"name":"uint256","nodeType":"ElementaryTypeName","src":"1193:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1165:47:18"},"src":"1140:73:18"},{"body":{"id":3977,"nodeType":"Block","src":"1630:415:18","statements":[{"expression":{"arguments":[{"hexValue":"307833323643393737453665666338344535313262423943333066373645333063313630654430364642","id":3945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1658:42:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x326C977E6efc84E512bB9C30f76E30c160eD06FB"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3944,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"1640:17:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1640:61:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3947,"nodeType":"ExpressionStatement","src":"1640:61:18"},{"expression":{"arguments":[{"hexValue":"307861413337343733633864373846306631433836633964386145453533453842383936624342344435","id":3949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1730:42:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3948,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"1711:18:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1711:62:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3951,"nodeType":"ExpressionStatement","src":"1711:62:18"},{"expression":{"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3952,"name":"ggJobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"1783:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"6231643432636435346133613432303062316637323561363865343838383838","id":3953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1793:34:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_1279806ce6db11c89121bbea4c15608b4b52482ad47bd18e6ea9ce5893a70f51","typeString":"literal_string \"b1d42cd54a3a4200b1f725a68e488888\""},"value":"b1d42cd54a3a4200b1f725a68e488888"},"src":"1783:44:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3955,"nodeType":"ExpressionStatement","src":"1783:44:18"},{"expression":{"id":3958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3956,"name":"transakJobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"1837:12:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"6231643432636435346133613432303062316637323561363865343838393939","id":3957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1852:34:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_971f6ab21c2bcd174046ac2ee6cfcf6137c447b5d64470839e3f89d0d5e2d3a2","typeString":"literal_string \"b1d42cd54a3a4200b1f725a68e488999\""},"value":"b1d42cd54a3a4200b1f725a68e488999"},"src":"1837:49:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3959,"nodeType":"ExpressionStatement","src":"1837:49:18"},{"expression":{"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3960,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"1896:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1903:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3962,"name":"LINK_DIVISIBILITY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"1907:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1903:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3964,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1902:23:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":3965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1928:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1902:28:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1896:34:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3968,"nodeType":"ExpressionStatement","src":"1896:34:18"},{"expression":{"id":3971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3969,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"1984:11:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3970,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3938,"src":"1998:12:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1984:26:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3972,"nodeType":"ExpressionStatement","src":"1984:26:18"},{"expression":{"id":3975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3973,"name":"isEligible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"2020:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2033:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2020:18:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3976,"nodeType":"ExpressionStatement","src":"2020:18:18"}]},"documentation":{"id":3934,"nodeType":"StructuredDocumentation","src":"1220:332:18","text":" @notice Initialize the link token and target oracle\n Mumbai Testnet details:\n Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB\n Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 \n ggJobId: b1d42cd54a3a4200b1f725a68e488888\n transakJobId: b1d42cd54a3a4200b1f725a68e488999"},"id":3978,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3941,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3936,"src":"1622:6:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3942,"kind":"baseConstructorSpecifier","modifierName":{"id":3940,"name":"ConfirmedOwner","nameLocations":["1607:14:18"],"nodeType":"IdentifierPath","referencedDeclaration":881,"src":"1607:14:18"},"nodeType":"ModifierInvocation","src":"1607:22:18"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3936,"mutability":"mutable","name":"_owner","nameLocation":"1577:6:18","nodeType":"VariableDeclaration","scope":3978,"src":"1569:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3935,"name":"address","nodeType":"ElementaryTypeName","src":"1569:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3938,"mutability":"mutable","name":"_beneficiary","nameLocation":"1593:12:18","nodeType":"VariableDeclaration","scope":3978,"src":"1585:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3937,"name":"address","nodeType":"ElementaryTypeName","src":"1585:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1568:38:18"},"returnParameters":{"id":3943,"nodeType":"ParameterList","parameters":[],"src":"1630:0:18"},"scope":4216,"src":"1557:488:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4019,"nodeType":"Block","src":"2297:508:18","statements":[{"assignments":[3988],"declarations":[{"constant":false,"id":3988,"mutability":"mutable","name":"req","nameLocation":"2332:3:18","nodeType":"VariableDeclaration","scope":4019,"src":"2307:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":3987,"nodeType":"UserDefinedTypeName","pathNode":{"id":3986,"name":"Chainlink.Request","nameLocations":["2307:9:18","2317:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2307:17:18"},"referencedDeclaration":25,"src":"2307:17:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":3999,"initialValue":{"arguments":[{"id":3990,"name":"ggJobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"2373:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":3993,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2402:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$4216","typeString":"contract AdmodConsumer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AdmodConsumer_$4216","typeString":"contract AdmodConsumer"}],"id":3992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2394:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3991,"name":"address","nodeType":"ElementaryTypeName","src":"2394:7:18","typeDescriptions":{}}},"id":3994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2394:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":3995,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2421:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$4216","typeString":"contract AdmodConsumer"}},"id":3996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2426:7:18","memberName":"fulfill","nodeType":"MemberAccess","referencedDeclaration":4044,"src":"2421:12:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":3997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2434:8:18","memberName":"selector","nodeType":"MemberAccess","src":"2421:21:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":3989,"name":"buildChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"2338:21:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":3998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2338:114:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"nodeType":"VariableDeclarationStatement","src":"2307:145:18"},{"expression":{"arguments":[{"hexValue":"676574","id":4003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2537:5:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},"value":"get"},{"hexValue":"68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274","id":4004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2556:78:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_2951f46cc986317dd19e0aff69f07b81260ff04938edb6663dfc83d944c37d93","typeString":"literal_string \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\""},"value":"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},{"typeIdentifier":"t_stringliteral_2951f46cc986317dd19e0aff69f07b81260ff04938edb6663dfc83d944c37d93","typeString":"literal_string \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\""}],"expression":{"id":4000,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3988,"src":"2516:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":4002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2520:3:18","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2516:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":4005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2516:128:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4006,"nodeType":"ExpressionStatement","src":"2516:128:18"},{"expression":{"arguments":[{"hexValue":"70617468","id":4010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2663:6:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},"value":"path"},{"hexValue":"726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565","id":4011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2671:49:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dc5377b9552c5187c2f765c9772a9f30d6c0e04ce19232cb7bc0187b9472339","typeString":"literal_string \"row,metricValues,ESTIMATED_EARNINGS,microsValue\""},"value":"row,metricValues,ESTIMATED_EARNINGS,microsValue"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},{"typeIdentifier":"t_stringliteral_6dc5377b9552c5187c2f765c9772a9f30d6c0e04ce19232cb7bc0187b9472339","typeString":"literal_string \"row,metricValues,ESTIMATED_EARNINGS,microsValue\""}],"expression":{"id":4007,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3988,"src":"2655:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":4009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2659:3:18","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2655:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":4012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2655:66:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4013,"nodeType":"ExpressionStatement","src":"2655:66:18"},{"expression":{"arguments":[{"id":4015,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3988,"src":"2789:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":4016,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"2794:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4014,"name":"sendChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"2768:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":4017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2768:30:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3983,"id":4018,"nodeType":"Return","src":"2761:37:18"}]},"documentation":{"id":3979,"nodeType":"StructuredDocumentation","src":"2052:175:18","text":" Create a Chainlink request to retrieve API response, find the target\n data, then multiply by 1000000000000000000 (to remove decimal places from data)."},"functionSelector":"50ed6a95","id":4020,"implemented":true,"kind":"function","modifiers":[],"name":"requestWeekEarning","nameLocation":"2241:18:18","nodeType":"FunctionDefinition","parameters":{"id":3980,"nodeType":"ParameterList","parameters":[],"src":"2259:2:18"},"returnParameters":{"id":3983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3982,"mutability":"mutable","name":"requestId","nameLocation":"2286:9:18","nodeType":"VariableDeclaration","scope":4020,"src":"2278:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2278:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2277:19:18"},"scope":4216,"src":"2232:573:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4043,"nodeType":"Block","src":"3009:245:18","statements":[{"eventCall":{"arguments":[{"id":4032,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4023,"src":"3039:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4033,"name":"_earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"3051:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4031,"name":"RequestEarning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3927,"src":"3024:14:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3024:36:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4035,"nodeType":"EmitStatement","src":"3019:41:18"},{"documentation":"@notice earning will be a total of earning this week subtract for Transak transaction fee","expression":{"id":4038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4036,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"3192:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4037,"name":"_earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"3202:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3192:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4039,"nodeType":"ExpressionStatement","src":"3192:18:18"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4040,"name":"_requestTransakValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4127,"src":"3220:25:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_bytes32_$","typeString":"function () returns (bytes32)"}},"id":4041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3220:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4042,"nodeType":"ExpressionStatement","src":"3220:27:18"}]},"documentation":{"id":4021,"nodeType":"StructuredDocumentation","src":"2811:70:18","text":"@notice\n Receive the response in the form of uint256"},"functionSelector":"4357855e","id":4044,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4028,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4023,"src":"2997:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4029,"kind":"modifierInvocation","modifierName":{"id":4027,"name":"recordChainlinkFulfillment","nameLocations":["2970:26:18"],"nodeType":"IdentifierPath","referencedDeclaration":841,"src":"2970:26:18"},"nodeType":"ModifierInvocation","src":"2970:38:18"}],"name":"fulfill","nameLocation":"2895:7:18","nodeType":"FunctionDefinition","parameters":{"id":4026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4023,"mutability":"mutable","name":"_requestId","nameLocation":"2920:10:18","nodeType":"VariableDeclaration","scope":4044,"src":"2912:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2912:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4025,"mutability":"mutable","name":"_earning","nameLocation":"2948:8:18","nodeType":"VariableDeclaration","scope":4044,"src":"2940:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2940:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2902:60:18"},"returnParameters":{"id":4030,"nodeType":"ParameterList","parameters":[],"src":"3009:0:18"},"scope":4216,"src":"2886:368:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4126,"nodeType":"Block","src":"3333:950:18","statements":[{"assignments":[4053],"declarations":[{"constant":false,"id":4053,"mutability":"mutable","name":"req","nameLocation":"3368:3:18","nodeType":"VariableDeclaration","scope":4126,"src":"3343:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":4052,"nodeType":"UserDefinedTypeName","pathNode":{"id":4051,"name":"Chainlink.Request","nameLocations":["3343:9:18","3353:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3343:17:18"},"referencedDeclaration":25,"src":"3343:17:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":4064,"initialValue":{"arguments":[{"id":4055,"name":"transakJobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"3409:12:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":4058,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3443:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$4216","typeString":"contract AdmodConsumer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AdmodConsumer_$4216","typeString":"contract AdmodConsumer"}],"id":4057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3435:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4056,"name":"address","nodeType":"ElementaryTypeName","src":"3435:7:18","typeDescriptions":{}}},"id":4059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3435:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":4060,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3462:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$4216","typeString":"contract AdmodConsumer"}},"id":4061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3467:19:18","memberName":"fulfillTransakPrice","nodeType":"MemberAccess","referencedDeclaration":4150,"src":"3462:24:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":4062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3487:8:18","memberName":"selector","nodeType":"MemberAccess","src":"3462:33:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":4054,"name":"buildChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"3374:21:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":4063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3374:131:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"nodeType":"VariableDeclarationStatement","src":"3343:162:18"},{"assignments":[4066],"declarations":[{"constant":false,"id":4066,"mutability":"mutable","name":"headEarning","nameLocation":"3524:11:18","nodeType":"VariableDeclaration","scope":4126,"src":"3516:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4065,"name":"uint256","nodeType":"ElementaryTypeName","src":"3516:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4072,"initialValue":{"arguments":[{"id":4069,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"3551:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31303030303030","id":4070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3559:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}],"expression":{"id":4067,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3780,"src":"3538:8:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$3780_$","typeString":"type(library SafeMath)"}},"id":4068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3547:3:18","memberName":"div","nodeType":"MemberAccess","referencedDeclaration":3689,"src":"3538:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3538:29:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3516:51:18"},{"assignments":[4074],"declarations":[{"constant":false,"id":4074,"mutability":"mutable","name":"tailEarning","nameLocation":"3585:11:18","nodeType":"VariableDeclaration","scope":4126,"src":"3577:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4073,"name":"uint256","nodeType":"ElementaryTypeName","src":"3577:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4080,"initialValue":{"arguments":[{"id":4077,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"3612:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31303030303030","id":4078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3620:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}],"expression":{"id":4075,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3780,"src":"3599:8:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$3780_$","typeString":"type(library SafeMath)"}},"id":4076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3608:3:18","memberName":"mod","nodeType":"MemberAccess","referencedDeclaration":3704,"src":"3599:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3599:29:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3577:51:18"},{"assignments":[4082],"declarations":[{"constant":false,"id":4082,"mutability":"mutable","name":"apiUrl","nameLocation":"3653:6:18","nodeType":"VariableDeclaration","scope":4126,"src":"3639:20:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4081,"name":"string","nodeType":"ElementaryTypeName","src":"3639:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4099,"initialValue":{"arguments":[{"arguments":[{"hexValue":"68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f76322f63757272656e636965732f70726963653f706172746e65724170694b65793d30363235323566302d383536622d343330322d396434382d386236393062623565363334266669617443757272656e63793d5553442663727970746f43757272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f726b3d657468657265756d267061796d656e744d6574686f643d6372656469745f64656269745f636172642666696174416d6f756e743d","id":4087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3686:217:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad","typeString":"literal_string \"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount=\""},"value":"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount="},{"arguments":[{"id":4090,"name":"headEarning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"3931:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4088,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2602,"src":"3914:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$2602_$","typeString":"type(library Strings)"}},"id":4089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3922:8:18","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2432,"src":"3914:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":4091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3914:29:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e","id":4092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3944:3:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f010af653ebe3cb07d297a4ef13366103d392ceffa68dd48232e6e9ff2187bf","typeString":"literal_string \".\""},"value":"."},{"arguments":[{"id":4095,"name":"tailEarning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"3965:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4093,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2602,"src":"3948:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$2602_$","typeString":"type(library Strings)"}},"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3956:8:18","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2432,"src":"3948:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":4096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3948:29:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad","typeString":"literal_string \"https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount=\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6f010af653ebe3cb07d297a4ef13366103d392ceffa68dd48232e6e9ff2187bf","typeString":"literal_string \".\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4085,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3669:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4086,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3673:12:18","memberName":"encodePacked","nodeType":"MemberAccess","src":"3669:16:18","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3669:309:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3662:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4083,"name":"string","nodeType":"ElementaryTypeName","src":"3662:6:18","typeDescriptions":{}}},"id":4098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3662:317:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"3639:340:18"},{"expression":{"arguments":[{"hexValue":"676574","id":4103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4064:5:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},"value":"get"},{"id":4104,"name":"apiUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4082,"src":"4083:6:18","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4100,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4053,"src":"4043:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":4102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4047:3:18","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"4043:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":4105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:56:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4106,"nodeType":"ExpressionStatement","src":"4043:56:18"},{"expression":{"arguments":[{"hexValue":"70617468","id":4110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4118:6:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},"value":"path"},{"hexValue":"726573706f6e73652c63727970746f416d6f756e74","id":4111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4126:23:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_89417877b69da0454dc22ef21b25f6ba217b8a201e91f5f1812b11a2185f7bac","typeString":"literal_string \"response,cryptoAmount\""},"value":"response,cryptoAmount"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},{"typeIdentifier":"t_stringliteral_89417877b69da0454dc22ef21b25f6ba217b8a201e91f5f1812b11a2185f7bac","typeString":"literal_string \"response,cryptoAmount\""}],"expression":{"id":4107,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4053,"src":"4110:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":4109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4114:3:18","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"4110:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":4112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4110:40:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4113,"nodeType":"ExpressionStatement","src":"4110:40:18"},{"expression":{"arguments":[{"hexValue":"74696d6573","id":4117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4172:7:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bfab8028df7ddaceaf0a173b093c1269c5dd964bbe8cc0c6b210e554970802b","typeString":"literal_string \"times\""},"value":"times"},{"id":4118,"name":"LINK_DIVISIBILITY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"4181:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bfab8028df7ddaceaf0a173b093c1269c5dd964bbe8cc0c6b210e554970802b","typeString":"literal_string \"times\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4114,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4053,"src":"4160:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":4116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4164:7:18","memberName":"addUint","nodeType":"MemberAccess","referencedDeclaration":209,"src":"4160:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,uint256) pure"}},"id":4119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4160:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4120,"nodeType":"ExpressionStatement","src":"4160:39:18"},{"expression":{"arguments":[{"id":4122,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4053,"src":"4267:3:18","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":4123,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"4272:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4121,"name":"sendChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"4246:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":4124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4246:30:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4048,"id":4125,"nodeType":"Return","src":"4239:37:18"}]},"id":4127,"implemented":true,"kind":"function","modifiers":[],"name":"_requestTransakValidation","nameLocation":"3269:25:18","nodeType":"FunctionDefinition","parameters":{"id":4045,"nodeType":"ParameterList","parameters":[],"src":"3294:2:18"},"returnParameters":{"id":4048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4047,"mutability":"mutable","name":"requestId","nameLocation":"3322:9:18","nodeType":"VariableDeclaration","scope":4127,"src":"3314:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3314:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3313:19:18"},"scope":4216,"src":"3260:1023:18","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4149,"nodeType":"Block","src":"4427:255:18","statements":[{"eventCall":{"arguments":[{"id":4138,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4129,"src":"4462:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4139,"name":"_linkAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4131,"src":"4474:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4137,"name":"RequestBoughtAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"4442:19:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4442:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4141,"nodeType":"EmitStatement","src":"4437:49:18"},{"documentation":"@notice earning will be a total of earning this week subtract for Transak transaction fee","expression":{"id":4144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4142,"name":"linkAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3906,"src":"4618:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4143,"name":"_linkAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4131,"src":"4631:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4618:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4145,"nodeType":"ExpressionStatement","src":"4618:24:18"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4146,"name":"_checkEligibleEarning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4215,"src":"4652:21:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4652:23:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4148,"nodeType":"ExpressionStatement","src":"4652:23:18"}]},"functionSelector":"93232d9f","id":4150,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4134,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4129,"src":"4415:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4135,"kind":"modifierInvocation","modifierName":{"id":4133,"name":"recordChainlinkFulfillment","nameLocations":["4388:26:18"],"nodeType":"IdentifierPath","referencedDeclaration":841,"src":"4388:26:18"},"nodeType":"ModifierInvocation","src":"4388:38:18"}],"name":"fulfillTransakPrice","nameLocation":"4298:19:18","nodeType":"FunctionDefinition","parameters":{"id":4132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4129,"mutability":"mutable","name":"_requestId","nameLocation":"4335:10:18","nodeType":"VariableDeclaration","scope":4150,"src":"4327:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4327:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4131,"mutability":"mutable","name":"_linkAmount","nameLocation":"4363:11:18","nodeType":"VariableDeclaration","scope":4150,"src":"4355:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4130,"name":"uint256","nodeType":"ElementaryTypeName","src":"4355:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4317:63:18"},"returnParameters":{"id":4136,"nodeType":"ParameterList","parameters":[],"src":"4427:0:18"},"scope":4216,"src":"4289:393:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4179,"nodeType":"Block","src":"4874:218:18","statements":[{"assignments":[4158],"declarations":[{"constant":false,"id":4158,"mutability":"mutable","name":"link","nameLocation":"4903:4:18","nodeType":"VariableDeclaration","scope":4179,"src":"4884:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"},"typeName":{"id":4157,"nodeType":"UserDefinedTypeName","pathNode":{"id":4156,"name":"LinkTokenInterface","nameLocations":["4884:18:18"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"4884:18:18"},"referencedDeclaration":1251,"src":"4884:18:18","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"visibility":"internal"}],"id":4163,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4160,"name":"chainlinkTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"4929:21:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4929:23:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4159,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"4910:18:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1251_$","typeString":"type(contract LinkTokenInterface)"}},"id":4162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4910:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"nodeType":"VariableDeclarationStatement","src":"4884:69:18"},{"expression":{"arguments":[{"arguments":[{"id":4167,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"4998:11:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":4172,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5034:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$4216","typeString":"contract AdmodConsumer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AdmodConsumer_$4216","typeString":"contract AdmodConsumer"}],"id":4171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5026:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4170,"name":"address","nodeType":"ElementaryTypeName","src":"5026:7:18","typeDescriptions":{}}},"id":4173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5026:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4168,"name":"link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4158,"src":"5011:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":4169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5016:9:18","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1183,"src":"5011:14:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":4174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5011:29:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4165,"name":"link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4158,"src":"4984:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":4166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4989:8:18","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":1228,"src":"4984:13:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":4175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4984:57:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e61626c6520746f207472616e73666572","id":4176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5055:20:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1","typeString":"literal_string \"Unable to transfer\""},"value":"Unable to transfer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1","typeString":"literal_string \"Unable to transfer\""}],"id":4164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4963:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4963:122:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4178,"nodeType":"ExpressionStatement","src":"4963:122:18"}]},"documentation":{"id":4151,"nodeType":"StructuredDocumentation","src":"4688:139:18","text":"@notice\n Allow withdraw of Link tokens from the contract\n LINK will always be sent to beneficiary 0xSplits contract"},"functionSelector":"8dc654a2","id":4180,"implemented":true,"kind":"function","modifiers":[{"id":4154,"kind":"modifierInvocation","modifierName":{"id":4153,"name":"onlyOwner","nameLocations":["4864:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":1042,"src":"4864:9:18"},"nodeType":"ModifierInvocation","src":"4864:9:18"}],"name":"withdrawLink","nameLocation":"4842:12:18","nodeType":"FunctionDefinition","parameters":{"id":4152,"nodeType":"ParameterList","parameters":[],"src":"4854:2:18"},"returnParameters":{"id":4155,"nodeType":"ParameterList","parameters":[],"src":"4874:0:18"},"scope":4216,"src":"4833:259:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4214,"nodeType":"Block","src":"5139:277:18","statements":[{"assignments":[4185],"declarations":[{"constant":false,"id":4185,"mutability":"mutable","name":"link","nameLocation":"5168:4:18","nodeType":"VariableDeclaration","scope":4214,"src":"5149:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"},"typeName":{"id":4184,"nodeType":"UserDefinedTypeName","pathNode":{"id":4183,"name":"LinkTokenInterface","nameLocations":["5149:18:18"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"5149:18:18"},"referencedDeclaration":1251,"src":"5149:18:18","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"visibility":"internal"}],"id":4190,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4187,"name":"chainlinkTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"5194:21:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5194:23:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4186,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"5175:18:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1251_$","typeString":"type(contract LinkTokenInterface)"}},"id":4189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5175:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"nodeType":"VariableDeclarationStatement","src":"5149:69:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4193,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"5247:11:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4191,"name":"link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4185,"src":"5232:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":4192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5237:9:18","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1183,"src":"5232:14:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":4194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5232:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4195,"name":"linkAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3906,"src":"5263:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5232:41:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"id":4211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4209,"name":"isEligible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"5391:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5404:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5391:18:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4212,"nodeType":"ExpressionStatement","src":"5391:18:18"},"id":4213,"nodeType":"IfStatement","src":"5228:181:18","trueBody":{"id":4208,"nodeType":"Block","src":"5283:94:18","statements":[{"expression":{"id":4202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4197,"name":"earningReports","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3916,"src":"5297:14:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4200,"indexExpression":{"expression":{"id":4198,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5312:5:18","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5318:6:18","memberName":"number","nodeType":"MemberAccess","src":"5312:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5297:28:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4201,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"5328:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5297:38:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4203,"nodeType":"ExpressionStatement","src":"5297:38:18"},{"expression":{"id":4206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4204,"name":"isEligible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"5349:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5362:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5349:17:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4207,"nodeType":"ExpressionStatement","src":"5349:17:18"}]}}]},"id":4215,"implemented":true,"kind":"function","modifiers":[],"name":"_checkEligibleEarning","nameLocation":"5107:21:18","nodeType":"FunctionDefinition","parameters":{"id":4181,"nodeType":"ParameterList","parameters":[],"src":"5128:2:18"},"returnParameters":{"id":4182,"nodeType":"ParameterList","parameters":[],"src":"5139:0:18"},"scope":4216,"src":"5098:318:18","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":4217,"src":"288:5131:18","usedErrors":[]}],"src":"32:5387:18"},"id":18}},"contracts":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"Chainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220105cba522c50bcfa40d79857ca1cf61e43326a5bb6975a5f5eafaf335714c55f64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 LT 0x5C 0xBA MSTORE 0x2C POP 0xBC STATICCALL BLOCKHASH 0xD7 SWAP9 JUMPI 0xCA SHR 0xF6 0x1E NUMBER ORIGIN PUSH11 0x5BB6975A5F5EAFAF335714 0xC5 0x5F PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;293:3494:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220105cba522c50bcfa40d79857ca1cf61e43326a5bb6975a5f5eafaf335714c55f64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT 0x5C 0xBA MSTORE 0x2C POP 0xBC STATICCALL BLOCKHASH 0xD7 SWAP9 JUMPI 0xCA SHR 0xF6 0x1E NUMBER ORIGIN PUSH11 0x5BB6975A5F5EAFAF335714 0xC5 0x5F PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Uses imported CBOR library for encoding to buffer\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Library for common Chainlink functions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":\"Chainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ChainlinkClient":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ChainlinkClient contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contract writers can inherit this contract in order to create requests for the Chainlink network\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":\"ChainlinkClient\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"ConfirmedOwner":{"abi":[{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_880":{"entryPoint":null,"id":880,"parameterSlots":1,"returnSlots":0},"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":197,"id":1021,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":366,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1011:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:19","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:19"},"nodeType":"YulFunctionCall","src":"143:12:19"},"nodeType":"YulExpressionStatement","src":"143:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:19"},"nodeType":"YulFunctionCall","src":"112:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:19"},"nodeType":"YulFunctionCall","src":"108:32:19"},"nodeType":"YulIf","src":"105:52:19"},{"nodeType":"YulVariableDeclaration","src":"166:29:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:19"},"nodeType":"YulFunctionCall","src":"179:16:19"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:19"},"nodeType":"YulFunctionCall","src":"260:12:19"},"nodeType":"YulExpressionStatement","src":"260:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:19"},"nodeType":"YulFunctionCall","src":"239:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:19"},"nodeType":"YulFunctionCall","src":"235:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:19"},"nodeType":"YulFunctionCall","src":"224:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:19"},"nodeType":"YulFunctionCall","src":"214:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:19"},"nodeType":"YulFunctionCall","src":"207:50:19"},"nodeType":"YulIf","src":"204:70:19"},{"nodeType":"YulAssignment","src":"283:15:19","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:19"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:19","type":""}],"src":"14:290:19"},{"body":{"nodeType":"YulBlock","src":"483:174:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"500:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"511:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:19"},"nodeType":"YulFunctionCall","src":"493:21:19"},"nodeType":"YulExpressionStatement","src":"493:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"534:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"545:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"530:3:19"},"nodeType":"YulFunctionCall","src":"530:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"550:2:19","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"523:6:19"},"nodeType":"YulFunctionCall","src":"523:30:19"},"nodeType":"YulExpressionStatement","src":"523:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"573:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"584:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:19"},"nodeType":"YulFunctionCall","src":"569:18:19"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"589:26:19","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"562:6:19"},"nodeType":"YulFunctionCall","src":"562:54:19"},"nodeType":"YulExpressionStatement","src":"562:54:19"},{"nodeType":"YulAssignment","src":"625:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"637:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"648:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"633:3:19"},"nodeType":"YulFunctionCall","src":"633:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"625:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"460:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"474:4:19","type":""}],"src":"309:348:19"},{"body":{"nodeType":"YulBlock","src":"836:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"853:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"864:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"846:6:19"},"nodeType":"YulFunctionCall","src":"846:21:19"},"nodeType":"YulExpressionStatement","src":"846:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"887:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"898:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"883:3:19"},"nodeType":"YulFunctionCall","src":"883:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"903:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"876:6:19"},"nodeType":"YulFunctionCall","src":"876:30:19"},"nodeType":"YulExpressionStatement","src":"876:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"926:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"937:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"922:3:19"},"nodeType":"YulFunctionCall","src":"922:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"942:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"915:6:19"},"nodeType":"YulFunctionCall","src":"915:53:19"},"nodeType":"YulExpressionStatement","src":"915:53:19"},{"nodeType":"YulAssignment","src":"977:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"989:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1000:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"985:3:19"},"nodeType":"YulFunctionCall","src":"985:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"977:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"813:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"827:4:19","type":""}],"src":"662:347:19"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161045638038061045683398101604081905261002f9161016e565b8060006001600160a01b03821661008d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03848116919091179091558116156100bd576100bd816100c5565b50505061019e565b336001600160a01b0382160361011d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610084565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561018057600080fd5b81516001600160a01b038116811461019757600080fd5b9392505050565b6102a9806101ad6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea26469706673582212201739d59a9a74282c0b5b391ffbf3f28ae1e523716204ee3945844347ccadf1d664736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x456 CODESIZE SUB DUP1 PUSH2 0x456 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x16E JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH2 0xBD JUMPI PUSH2 0xBD DUP2 PUSH2 0xC5 JUMP JUMPDEST POP POP POP PUSH2 0x19E JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x11D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x84 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x197 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2A9 DUP1 PUSH2 0x1AD 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR CODECOPY 0xD5 SWAP11 SWAP11 PUSH21 0x282C0B5B391FFBF3F28AE1E523716204EE39458443 SELFBALANCE 0xCC 0xAD CALL 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"212:141:2:-:0;;;270:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;327:8;345:1;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;511:2:19;544:59:3;;;493:21:19;550:2;530:18;;;523:30;589:26;569:18;;;562:54;633:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;270:81:2;212:141;;1497:188:3;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;864:2:19;1551:52:3;;;846:21:19;903:2;883:18;;;876:30;942:25;922:18;;;915:53;985:18;;1551:52:3;662:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;14:290:19:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:19;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:19:o;662:347::-;212:141:2;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_transferOwnership_1021":{"entryPoint":410,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":325,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":130,"id":987,"parameterSlots":0,"returnSlots":0},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@transferOwnership_951":{"entryPoint":305,"id":951,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":579,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1564:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:102:19","statements":[{"nodeType":"YulAssignment","src":"125:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:19"},"nodeType":"YulFunctionCall","src":"133:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"182:6:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"198:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"203:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"194:3:19"},"nodeType":"YulFunctionCall","src":"194:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"207:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"190:3:19"},"nodeType":"YulFunctionCall","src":"190:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"178:3:19"},"nodeType":"YulFunctionCall","src":"178:32:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:19"},"nodeType":"YulFunctionCall","src":"160:51:19"},"nodeType":"YulExpressionStatement","src":"160:51:19"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:19","type":""}],"src":"14:203:19"},{"body":{"nodeType":"YulBlock","src":"292:216:19","statements":[{"body":{"nodeType":"YulBlock","src":"338:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"347:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"350:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"340:6:19"},"nodeType":"YulFunctionCall","src":"340:12:19"},"nodeType":"YulExpressionStatement","src":"340:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"313:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"309:3:19"},"nodeType":"YulFunctionCall","src":"309:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"334:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"305:3:19"},"nodeType":"YulFunctionCall","src":"305:32:19"},"nodeType":"YulIf","src":"302:52:19"},{"nodeType":"YulVariableDeclaration","src":"363:36:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"389:9:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"376:12:19"},"nodeType":"YulFunctionCall","src":"376:23:19"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"367:5:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"471:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"474:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"464:6:19"},"nodeType":"YulFunctionCall","src":"464:12:19"},"nodeType":"YulExpressionStatement","src":"464:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"421:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"432:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"447:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"452:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"443:3:19"},"nodeType":"YulFunctionCall","src":"443:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"456:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"439:3:19"},"nodeType":"YulFunctionCall","src":"439:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"428:3:19"},"nodeType":"YulFunctionCall","src":"428:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"418:2:19"},"nodeType":"YulFunctionCall","src":"418:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"411:6:19"},"nodeType":"YulFunctionCall","src":"411:50:19"},"nodeType":"YulIf","src":"408:70:19"},{"nodeType":"YulAssignment","src":"487:15:19","value":{"name":"value","nodeType":"YulIdentifier","src":"497:5:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"487:6:19"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"258:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"269:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"281:6:19","type":""}],"src":"222:286:19"},{"body":{"nodeType":"YulBlock","src":"687:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"704:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"715:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"697:6:19"},"nodeType":"YulFunctionCall","src":"697:21:19"},"nodeType":"YulExpressionStatement","src":"697:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"738:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"749:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:19"},"nodeType":"YulFunctionCall","src":"734:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"754:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:19"},"nodeType":"YulFunctionCall","src":"727:30:19"},"nodeType":"YulExpressionStatement","src":"727:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"777:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"788:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"773:3:19"},"nodeType":"YulFunctionCall","src":"773:18:19"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"793:24:19","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"766:6:19"},"nodeType":"YulFunctionCall","src":"766:52:19"},"nodeType":"YulExpressionStatement","src":"766:52:19"},{"nodeType":"YulAssignment","src":"827:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"839:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"850:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"835:3:19"},"nodeType":"YulFunctionCall","src":"835:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"827:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"664:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"678:4:19","type":""}],"src":"513:346:19"},{"body":{"nodeType":"YulBlock","src":"1038:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1066:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1048:6:19"},"nodeType":"YulFunctionCall","src":"1048:21:19"},"nodeType":"YulExpressionStatement","src":"1048:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1089:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1085:3:19"},"nodeType":"YulFunctionCall","src":"1085:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1105:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1078:6:19"},"nodeType":"YulFunctionCall","src":"1078:30:19"},"nodeType":"YulExpressionStatement","src":"1078:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1139:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1124:3:19"},"nodeType":"YulFunctionCall","src":"1124:18:19"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1144:24:19","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1117:6:19"},"nodeType":"YulFunctionCall","src":"1117:52:19"},"nodeType":"YulExpressionStatement","src":"1117:52:19"},{"nodeType":"YulAssignment","src":"1178:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1190:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1201:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1186:3:19"},"nodeType":"YulFunctionCall","src":"1186:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1178:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1015:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1029:4:19","type":""}],"src":"864:346:19"},{"body":{"nodeType":"YulBlock","src":"1389:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1417:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1399:6:19"},"nodeType":"YulFunctionCall","src":"1399:21:19"},"nodeType":"YulExpressionStatement","src":"1399:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1440:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1451:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:19"},"nodeType":"YulFunctionCall","src":"1436:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1456:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1429:6:19"},"nodeType":"YulFunctionCall","src":"1429:30:19"},"nodeType":"YulExpressionStatement","src":"1429:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1479:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1490:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:19"},"nodeType":"YulFunctionCall","src":"1475:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1495:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1468:6:19"},"nodeType":"YulFunctionCall","src":"1468:53:19"},"nodeType":"YulExpressionStatement","src":"1468:53:19"},{"nodeType":"YulAssignment","src":"1530:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1542:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1553:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1538:3:19"},"nodeType":"YulFunctionCall","src":"1538:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1530:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1366:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1380:4:19","type":""}],"src":"1215:347:19"}]},"contents":"{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea26469706673582212201739d59a9a74282c0b5b391ffbf3f28ae1e523716204ee3945844347ccadf1d664736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR CODECOPY 0xD5 SWAP11 SWAP11 PUSH21 0x282C0B5B391FFBF3F28AE1E523716204EE39458443 SELFBALANCE 0xCC 0xAD CALL 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"212:141:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:265:3;;;:::i;:::-;;1332:81;1379:7;1401;1332:81;;;-1:-1:-1;;;;;1401:7:3;;;160:51:19;;1332:81:3;;;;;148:2:19;1332:81:3;;;826:98;;;;;;:::i;:::-;;:::i;1016:265::-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;715:2:19;1067:63:3;;;697:21:19;754:2;734:18;;;727:30;-1:-1:-1;;;773:18:19;;;766:52;835:18;;1067:63:3;;;;;;;;;1137:16;1156:7;;1179:10;-1:-1:-1;;;;;;1169:20:3;;;;;;;-1:-1:-1;1195:27:3;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;;1156:7;;1234:42;;;1061:220;1016:265::o;826:98::-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;:::-;826:98:::0;:::o;1730:111::-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;1066:2:19;1780:56:3;;;1048:21:19;1105:2;1085:18;;;1078:30;-1:-1:-1;;;1124:18:19;;;1117:52;1186:18;;1780:56:3;864:346:19;1780:56:3;1730:111::o;1497:188::-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1417:2:19;1551:52:3;;;1399:21:19;1456:2;1436:18;;;1429:30;1495:25;1475:18;;;1468:53;1538:18;;1551:52:3;1215:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;222:286:19:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:19;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:19:o"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ConfirmedOwner contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"}},\"notice\":\"A contract with helpers for basic contract ownership.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":\"ConfirmedOwner\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":{\"keccak256\":\"0x99d0b0786fe368970009c703f2249bfbc56340ddf1a28b60d2915bb58c34cd72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0371c1af45db651823b9a3d5af761b08243c78f105166342eee28de356c8dd\",\"dweb:/ipfs/QmPnC9qNDKwJFd5unwLb9pxjrutoe8MWjm5EXHTxq2kJ4x\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"ConfirmedOwnerWithProposal":{"abi":[{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":193,"id":1021,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":362,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":390,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1196:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:19","statements":[{"nodeType":"YulAssignment","src":"84:22:19","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:19"},"nodeType":"YulFunctionCall","src":"93:13:19"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:19"}]},{"body":{"nodeType":"YulBlock","src":"169:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:19"},"nodeType":"YulFunctionCall","src":"171:12:19"},"nodeType":"YulExpressionStatement","src":"171:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:19"},"nodeType":"YulFunctionCall","src":"150:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:19"},"nodeType":"YulFunctionCall","src":"146:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:19"},"nodeType":"YulFunctionCall","src":"135:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:19"},"nodeType":"YulFunctionCall","src":"125:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:19"},"nodeType":"YulFunctionCall","src":"118:50:19"},"nodeType":"YulIf","src":"115:70:19"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:19","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:19","type":""}],"src":"14:177:19"},{"body":{"nodeType":"YulBlock","src":"294:195:19","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:19"},"nodeType":"YulFunctionCall","src":"342:12:19"},"nodeType":"YulExpressionStatement","src":"342:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:19"},"nodeType":"YulFunctionCall","src":"311:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:19","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:19"},"nodeType":"YulFunctionCall","src":"307:32:19"},"nodeType":"YulIf","src":"304:52:19"},{"nodeType":"YulAssignment","src":"365:50:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:19"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:19"},"nodeType":"YulFunctionCall","src":"375:40:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:19"}]},{"nodeType":"YulAssignment","src":"424:59:19","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:19"},"nodeType":"YulFunctionCall","src":"464:18:19"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:19"},"nodeType":"YulFunctionCall","src":"434:49:19"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:19"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:19","type":""}],"src":"196:293:19"},{"body":{"nodeType":"YulBlock","src":"668:174:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:19"},"nodeType":"YulFunctionCall","src":"678:21:19"},"nodeType":"YulExpressionStatement","src":"678:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:19"},"nodeType":"YulFunctionCall","src":"715:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:19","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:19"},"nodeType":"YulFunctionCall","src":"708:30:19"},"nodeType":"YulExpressionStatement","src":"708:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:19"},"nodeType":"YulFunctionCall","src":"754:18:19"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"774:26:19","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:19"},"nodeType":"YulFunctionCall","src":"747:54:19"},"nodeType":"YulExpressionStatement","src":"747:54:19"},{"nodeType":"YulAssignment","src":"810:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"822:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"833:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"818:3:19"},"nodeType":"YulFunctionCall","src":"818:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"810:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:19","type":""}],"src":"494:348:19"},{"body":{"nodeType":"YulBlock","src":"1021:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1038:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1031:6:19"},"nodeType":"YulFunctionCall","src":"1031:21:19"},"nodeType":"YulExpressionStatement","src":"1031:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1072:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1083:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1068:3:19"},"nodeType":"YulFunctionCall","src":"1068:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1088:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1061:6:19"},"nodeType":"YulFunctionCall","src":"1061:30:19"},"nodeType":"YulExpressionStatement","src":"1061:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1111:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1122:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1107:3:19"},"nodeType":"YulFunctionCall","src":"1107:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1127:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1100:6:19"},"nodeType":"YulFunctionCall","src":"1100:53:19"},"nodeType":"YulExpressionStatement","src":"1100:53:19"},{"nodeType":"YulAssignment","src":"1162:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1174:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1185:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1170:3:19"},"nodeType":"YulFunctionCall","src":"1170:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1162:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"998:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1012:4:19","type":""}],"src":"847:347:19"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161047138038061047183398101604081905261002f91610186565b6001600160a01b03821661008a5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03848116919091179091558116156100ba576100ba816100c1565b50506101b9565b336001600160a01b038216036101195760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610081565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b038116811461018157600080fd5b919050565b6000806040838503121561019957600080fd5b6101a28361016a565b91506101b06020840161016a565b90509250929050565b6102a9806101c86000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea2646970667358221220768354278908a9a8fa21a7093ee5414379b9ee80a33d9f06b906f6d52bff6b1c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x471 CODESIZE SUB DUP1 PUSH2 0x471 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x186 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH2 0xBA JUMPI PUSH2 0xBA DUP2 PUSH2 0xC1 JUMP JUMPDEST POP POP PUSH2 0x1B9 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x119 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x81 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x181 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A2 DUP4 PUSH2 0x16A JUMP JUMPDEST SWAP2 POP PUSH2 0x1B0 PUSH1 0x20 DUP5 ADD PUSH2 0x16A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A9 DUP1 PUSH2 0x1C8 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x8354278908A9A8FA21A7093EE5414379B9EE80A33D9F06 0xB9 MOD 0xF6 0xD5 0x2B SELFDESTRUCT PUSH12 0x1C64736F6C63430008110033 ","sourceMap":"213:1777:3:-:0;;;486:231;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;696:2:19;544:59:3;;;678:21:19;735:2;715:18;;;708:30;774:26;754:18;;;747:54;818:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;213:1777;;1497:188;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1049:2:19;1551:52:3;;;1031:21:19;1088:2;1068:18;;;1061:30;1127:25;1107:18;;;1100:53;1170:18;;1551:52:3;847:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;14:177:19:-;93:13;;-1:-1:-1;;;;;135:31:19;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;847:347::-;213:1777:3;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_transferOwnership_1021":{"entryPoint":410,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":325,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":130,"id":987,"parameterSlots":0,"returnSlots":0},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@transferOwnership_951":{"entryPoint":305,"id":951,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":579,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1564:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:102:19","statements":[{"nodeType":"YulAssignment","src":"125:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:19"},"nodeType":"YulFunctionCall","src":"133:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"182:6:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"198:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"203:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"194:3:19"},"nodeType":"YulFunctionCall","src":"194:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"207:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"190:3:19"},"nodeType":"YulFunctionCall","src":"190:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"178:3:19"},"nodeType":"YulFunctionCall","src":"178:32:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:19"},"nodeType":"YulFunctionCall","src":"160:51:19"},"nodeType":"YulExpressionStatement","src":"160:51:19"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:19","type":""}],"src":"14:203:19"},{"body":{"nodeType":"YulBlock","src":"292:216:19","statements":[{"body":{"nodeType":"YulBlock","src":"338:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"347:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"350:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"340:6:19"},"nodeType":"YulFunctionCall","src":"340:12:19"},"nodeType":"YulExpressionStatement","src":"340:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"313:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"309:3:19"},"nodeType":"YulFunctionCall","src":"309:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"334:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"305:3:19"},"nodeType":"YulFunctionCall","src":"305:32:19"},"nodeType":"YulIf","src":"302:52:19"},{"nodeType":"YulVariableDeclaration","src":"363:36:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"389:9:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"376:12:19"},"nodeType":"YulFunctionCall","src":"376:23:19"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"367:5:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"471:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"474:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"464:6:19"},"nodeType":"YulFunctionCall","src":"464:12:19"},"nodeType":"YulExpressionStatement","src":"464:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"421:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"432:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"447:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"452:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"443:3:19"},"nodeType":"YulFunctionCall","src":"443:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"456:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"439:3:19"},"nodeType":"YulFunctionCall","src":"439:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"428:3:19"},"nodeType":"YulFunctionCall","src":"428:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"418:2:19"},"nodeType":"YulFunctionCall","src":"418:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"411:6:19"},"nodeType":"YulFunctionCall","src":"411:50:19"},"nodeType":"YulIf","src":"408:70:19"},{"nodeType":"YulAssignment","src":"487:15:19","value":{"name":"value","nodeType":"YulIdentifier","src":"497:5:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"487:6:19"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"258:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"269:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"281:6:19","type":""}],"src":"222:286:19"},{"body":{"nodeType":"YulBlock","src":"687:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"704:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"715:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"697:6:19"},"nodeType":"YulFunctionCall","src":"697:21:19"},"nodeType":"YulExpressionStatement","src":"697:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"738:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"749:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:19"},"nodeType":"YulFunctionCall","src":"734:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"754:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:19"},"nodeType":"YulFunctionCall","src":"727:30:19"},"nodeType":"YulExpressionStatement","src":"727:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"777:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"788:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"773:3:19"},"nodeType":"YulFunctionCall","src":"773:18:19"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"793:24:19","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"766:6:19"},"nodeType":"YulFunctionCall","src":"766:52:19"},"nodeType":"YulExpressionStatement","src":"766:52:19"},{"nodeType":"YulAssignment","src":"827:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"839:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"850:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"835:3:19"},"nodeType":"YulFunctionCall","src":"835:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"827:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"664:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"678:4:19","type":""}],"src":"513:346:19"},{"body":{"nodeType":"YulBlock","src":"1038:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1066:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1048:6:19"},"nodeType":"YulFunctionCall","src":"1048:21:19"},"nodeType":"YulExpressionStatement","src":"1048:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1089:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1085:3:19"},"nodeType":"YulFunctionCall","src":"1085:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1105:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1078:6:19"},"nodeType":"YulFunctionCall","src":"1078:30:19"},"nodeType":"YulExpressionStatement","src":"1078:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1139:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1124:3:19"},"nodeType":"YulFunctionCall","src":"1124:18:19"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1144:24:19","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1117:6:19"},"nodeType":"YulFunctionCall","src":"1117:52:19"},"nodeType":"YulExpressionStatement","src":"1117:52:19"},{"nodeType":"YulAssignment","src":"1178:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1190:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1201:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1186:3:19"},"nodeType":"YulFunctionCall","src":"1186:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1178:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1015:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1029:4:19","type":""}],"src":"864:346:19"},{"body":{"nodeType":"YulBlock","src":"1389:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1417:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1399:6:19"},"nodeType":"YulFunctionCall","src":"1399:21:19"},"nodeType":"YulExpressionStatement","src":"1399:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1440:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1451:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:19"},"nodeType":"YulFunctionCall","src":"1436:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1456:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1429:6:19"},"nodeType":"YulFunctionCall","src":"1429:30:19"},"nodeType":"YulExpressionStatement","src":"1429:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1479:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1490:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:19"},"nodeType":"YulFunctionCall","src":"1475:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1495:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1468:6:19"},"nodeType":"YulFunctionCall","src":"1468:53:19"},"nodeType":"YulExpressionStatement","src":"1468:53:19"},{"nodeType":"YulAssignment","src":"1530:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1542:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1553:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1538:3:19"},"nodeType":"YulFunctionCall","src":"1538:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1530:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1366:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1380:4:19","type":""}],"src":"1215:347:19"}]},"contents":"{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea2646970667358221220768354278908a9a8fa21a7093ee5414379b9ee80a33d9f06b906f6d52bff6b1c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x8354278908A9A8FA21A7093EE5414379B9EE80A33D9F06 0xB9 MOD 0xF6 0xD5 0x2B SELFDESTRUCT PUSH12 0x1C64736F6C63430008110033 ","sourceMap":"213:1777:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:265;;;:::i;:::-;;1332:81;1379:7;1401;1332:81;;;-1:-1:-1;;;;;1401:7:3;;;160:51:19;;1332:81:3;;;;;148:2:19;1332:81:3;;;826:98;;;;;;:::i;:::-;;:::i;1016:265::-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;715:2:19;1067:63:3;;;697:21:19;754:2;734:18;;;727:30;-1:-1:-1;;;773:18:19;;;766:52;835:18;;1067:63:3;;;;;;;;;1137:16;1156:7;;1179:10;-1:-1:-1;;;;;;1169:20:3;;;;;;;-1:-1:-1;1195:27:3;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;;1156:7;;1234:42;;;1061:220;1016:265::o;826:98::-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;:::-;826:98:::0;:::o;1730:111::-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;1066:2:19;1780:56:3;;;1048:21:19;1105:2;1085:18;;;1078:30;-1:-1:-1;;;1124:18:19;;;1117:52;1186:18;;1780:56:3;864:346:19;1780:56:3;1730:111::o;1497:188::-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1417:2:19;1551:52:3;;;1399:21:19;1456:2;1436:18;;;1429:30;1495:25;1475:18;;;1468:53;1538:18;;1551:52:3;1215:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;222:286:19:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:19;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:19:o"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ConfirmedOwner contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"}},\"notice\":\"A contract with helpers for basic contract ownership.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":\"ConfirmedOwnerWithProposal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ChainlinkRequestInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":\"ChainlinkRequestInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ENSInterface":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"label","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner(bytes32)":"02571be3","resolver(bytes32)":"0178b8bf","setOwner(bytes32,address)":"5b0fc9c3","setResolver(bytes32,address)":"1896f70a","setSubnodeOwner(bytes32,bytes32,address)":"06ab5923","setTTL(bytes32,uint64)":"14ab9038","ttl(bytes32)":"16a25cbd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":\"ENSInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"LinkTokenInterface":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"decimalPlaces","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"increaseApproval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"tokenName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"tokenSymbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"totalTokensIssued","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseApproval(address,uint256)":"66188463","increaseApproval(address,uint256)":"d73dd623","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferAndCall(address,uint256,bytes)":"4000aea0","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"decimalPlaces\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalTokensIssued\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":\"LinkTokenInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"OperatorInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"distributeFunds","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"fulfillOracleRequest2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAuthorizedSenders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getForwarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes32","name":"specId","type":"bytes32"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"operatorRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ownerTransferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"senders","type":"address[]"}],"name":"setAuthorizedSenders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","distributeFunds(address[],uint256[])":"6bd59ec0","fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)":"6ae0bc76","getAuthorizedSenders()":"2408afaa","getForwarder()":"a0042526","isAuthorizedSender(address)":"fa00763a","operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes)":"3c6d41b9","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946","ownerTransferAndCall(address,uint256,bytes)":"902fc370","setAuthorizedSenders(address[])":"ee56997b","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"distributeFunds\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"fulfillOracleRequest2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuthorizedSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"specId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"operatorRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ownerTransferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"senders\",\"type\":\"address[]\"}],\"name\":\"setAuthorizedSenders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":\"OperatorInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"OracleInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","isAuthorizedSender(address)":"fa00763a","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":\"OracleInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"OwnableInterface":{"abi":[{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":\"OwnableInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"PointerInterface":{"abi":[{"inputs":[],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getAddress()":"38cc4831"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":\"PointerInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"BufferChainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e86a3ae4595e07c02fc63bb9fa7644f0282d309680ceb2c0cfb8ba039b2776bb64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0xE8 PUSH11 0x3AE4595E07C02FC63BB9FA PUSH23 0x44F0282D309680CEB2C0CFB8BA039B2776BB64736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"441:9632:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;441:9632:11;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e86a3ae4595e07c02fc63bb9fa7644f0282d309680ceb2c0cfb8ba039b2776bb64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE8 PUSH11 0x3AE4595E07C02FC63BB9FA PUSH23 0x44F0282D309680CEB2C0CFB8BA039B2776BB64736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"441:9632:11:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"A library for working with mutable byte buffers in Solidity. Byte buffers are mutable and expandable, and provide a variety of primitives for writing to them. At any time you can fetch a bytes object containing the current contents of the buffer. The bytes object should not be stored between operations, as it may change due to resizing of the buffer.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":\"BufferChainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"CBORChainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7f6205a46b5929d7528a5cbcc4e9160178d1084fdd91e38d125311819bd729164736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0xD7 0xF6 KECCAK256 GAS CHAINID 0xB5 SWAP3 SWAP14 PUSH22 0x28A5CBCC4E9160178D1084FDD91E38D125311819BD72 SWAP2 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"115:3271:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;115:3271:12;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7f6205a46b5929d7528a5cbcc4e9160178d1084fdd91e38d125311819bd729164736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 0xF6 KECCAK256 GAS CHAINID 0xB5 SWAP3 SWAP14 PUSH22 0x28A5CBCC4E9160178D1084FDD91E38D125311819BD72 SWAP2 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"115:3271:12:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":\"CBORChainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ENSResolver":{"abi":[{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"addr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addr(bytes32)":"3b3b57de"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":\"ENSResolver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220554120e6795de1095fd54992294a43b7bbd9d054b9da4b5204aea17e03b6254e64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 SSTORE COINBASE KECCAK256 0xE6 PUSH26 0x5DE1095FD54992294A43B7BBD9D054B9DA4B5204AEA17E03B625 0x4E PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"220:2559:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;220:2559:14;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220554120e6795de1095fd54992294a43b7bbd9d054b9da4b5204aea17e03b6254e64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SSTORE COINBASE KECCAK256 0xE6 PUSH26 0x5DE1095FD54992294A43B7BBD9D054B9DA4B5204AEA17E03B625 0x4E PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"220:2559:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220feec7b17524d34f3c20d4922777dea9e0c157695b6e02a8bd0951b2ebf853fa864736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 INVALID 0xEC PUSH28 0x17524D34F3C20D4922777DEA9E0C157695B6E02A8BD0951B2EBF853F 0xA8 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"202:12582:15:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12582:15;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220feec7b17524d34f3c20d4922777dea9e0c157695b6e02a8bd0951b2ebf853fa864736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID 0xEC PUSH28 0x17524D34F3C20D4922777DEA9E0C157695B6E02A8BD0951B2EBF853F 0xA8 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"202:12582:15:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"SafeMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208e77a4680532ae9e9e61e1cd4ff6be2a8d9dddec98c69552d2944258cddde66d64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 DUP15 PUSH24 0xA4680532AE9E9E61E1CD4FF6BE2A8D9DDDEC98C69552D294 TIMESTAMP PC 0xCD 0xDD 0xE6 PUSH14 0x64736F6C63430008110033000000 ","sourceMap":"482:6210:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;482:6210:16;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208e77a4680532ae9e9e61e1cd4ff6be2a8d9dddec98c69552d2944258cddde66d64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP15 PUSH24 0xA4680532AE9E9E61E1CD4FF6BE2A8D9DDDEC98C69552D294 TIMESTAMP PC 0xCD 0xDD 0xE6 PUSH14 0x64736F6C63430008110033000000 ","sourceMap":"482:6210:16:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations. NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler now has built in overflow checking.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x58b21219689909c4f8339af00813760337f7e2e7f169a97fe49e2896dcfb3b9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8e012e946dec20e59f2d4446f4b44bb098f3fa8bac103b1b5112fff777447b\",\"dweb:/ipfs/QmVTooKWcLkJ9W68yNX4MgdrbAKiAXwuRN9A7f4NkdcdtQ\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c5d6c734e147510a4cba68515ad7f9014cd66d2f51dc998c071d660dc98eca8564736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0xC5 0xD6 0xC7 CALLVALUE 0xE1 SELFBALANCE MLOAD EXP 0x4C 0xBA PUSH9 0x515AD7F9014CD66D2F MLOAD 0xDC SWAP10 DUP13 SMOD SAR PUSH7 0xDC98ECA856473 PUSH16 0x6C634300081100330000000000000000 ","sourceMap":"215:1047:17:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;215:1047:17;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c5d6c734e147510a4cba68515ad7f9014cd66d2f51dc998c071d660dc98eca8564736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0xD6 0xC7 CALLVALUE 0xE1 SELFBALANCE MLOAD EXP 0x4C 0xBA PUSH9 0x515AD7F9014CD66D2F MLOAD 0xDC SWAP10 DUP13 SMOD SAR PUSH7 0xDC98ECA856473 PUSH16 0x6C634300081100330000000000000000 ","sourceMap":"215:1047:17:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}"}},"contracts/AdmodConsumer.sol":{"AdmodConsumer":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"linkAmount","type":"uint256"}],"name":"RequestBoughtAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"earning","type":"uint256"}],"name":"RequestEarning","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"earningReports","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_requestId","type":"bytes32"},{"internalType":"uint256","name":"_earning","type":"uint256"}],"name":"fulfill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_requestId","type":"bytes32"},{"internalType":"uint256","name":"_linkAmount","type":"uint256"}],"name":"fulfillTransakPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ggJobId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isEligible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"linkAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"requestWeekEarning","outputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transakJobId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawLink","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3978":{"entryPoint":null,"id":3978,"parameterSlots":2,"returnSlots":0},"@_880":{"entryPoint":null,"id":880,"parameterSlots":1,"returnSlots":0},"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":442,"id":1021,"parameterSlots":1,"returnSlots":0},"@setChainlinkOracle_656":{"entryPoint":null,"id":656,"parameterSlots":1,"returnSlots":0},"@setChainlinkToken_669":{"entryPoint":614,"id":669,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":648,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":677,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":777,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":733,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1688:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:19","statements":[{"nodeType":"YulAssignment","src":"84:22:19","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:19"},"nodeType":"YulFunctionCall","src":"93:13:19"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:19"}]},{"body":{"nodeType":"YulBlock","src":"169:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:19"},"nodeType":"YulFunctionCall","src":"171:12:19"},"nodeType":"YulExpressionStatement","src":"171:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:19"},"nodeType":"YulFunctionCall","src":"150:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:19"},"nodeType":"YulFunctionCall","src":"146:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:19"},"nodeType":"YulFunctionCall","src":"135:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:19"},"nodeType":"YulFunctionCall","src":"125:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:19"},"nodeType":"YulFunctionCall","src":"118:50:19"},"nodeType":"YulIf","src":"115:70:19"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:19","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:19","type":""}],"src":"14:177:19"},{"body":{"nodeType":"YulBlock","src":"294:195:19","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:19"},"nodeType":"YulFunctionCall","src":"342:12:19"},"nodeType":"YulExpressionStatement","src":"342:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:19"},"nodeType":"YulFunctionCall","src":"311:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:19","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:19"},"nodeType":"YulFunctionCall","src":"307:32:19"},"nodeType":"YulIf","src":"304:52:19"},{"nodeType":"YulAssignment","src":"365:50:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:19"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:19"},"nodeType":"YulFunctionCall","src":"375:40:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:19"}]},{"nodeType":"YulAssignment","src":"424:59:19","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:19"},"nodeType":"YulFunctionCall","src":"464:18:19"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:19"},"nodeType":"YulFunctionCall","src":"434:49:19"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:19"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:19","type":""}],"src":"196:293:19"},{"body":{"nodeType":"YulBlock","src":"668:174:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:19"},"nodeType":"YulFunctionCall","src":"678:21:19"},"nodeType":"YulExpressionStatement","src":"678:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:19"},"nodeType":"YulFunctionCall","src":"715:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:19","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:19"},"nodeType":"YulFunctionCall","src":"708:30:19"},"nodeType":"YulExpressionStatement","src":"708:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:19"},"nodeType":"YulFunctionCall","src":"754:18:19"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"774:26:19","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:19"},"nodeType":"YulFunctionCall","src":"747:54:19"},"nodeType":"YulExpressionStatement","src":"747:54:19"},{"nodeType":"YulAssignment","src":"810:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"822:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"833:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"818:3:19"},"nodeType":"YulFunctionCall","src":"818:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"810:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:19","type":""}],"src":"494:348:19"},{"body":{"nodeType":"YulBlock","src":"899:213:19","statements":[{"nodeType":"YulAssignment","src":"909:20:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"924:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"927:1:19"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"920:3:19"},"nodeType":"YulFunctionCall","src":"920:9:19"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"909:7:19"}]},{"body":{"nodeType":"YulBlock","src":"995:111:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1016:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1023:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1028:10:19","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1019:3:19"},"nodeType":"YulFunctionCall","src":"1019:20:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1009:6:19"},"nodeType":"YulFunctionCall","src":"1009:31:19"},"nodeType":"YulExpressionStatement","src":"1009:31:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1060:1:19","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1063:4:19","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1053:6:19"},"nodeType":"YulFunctionCall","src":"1053:15:19"},"nodeType":"YulExpressionStatement","src":"1053:15:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1088:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1091:4:19","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1081:6:19"},"nodeType":"YulFunctionCall","src":"1081:15:19"},"nodeType":"YulExpressionStatement","src":"1081:15:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"958:1:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"951:6:19"},"nodeType":"YulFunctionCall","src":"951:9:19"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"965:1:19"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"972:7:19"},{"name":"x","nodeType":"YulIdentifier","src":"981:1:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"968:3:19"},"nodeType":"YulFunctionCall","src":"968:15:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"962:2:19"},"nodeType":"YulFunctionCall","src":"962:22:19"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"948:2:19"},"nodeType":"YulFunctionCall","src":"948:37:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"941:6:19"},"nodeType":"YulFunctionCall","src":"941:45:19"},"nodeType":"YulIf","src":"938:168:19"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"878:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"881:1:19","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"887:7:19","type":""}],"src":"847:265:19"},{"body":{"nodeType":"YulBlock","src":"1163:171:19","statements":[{"body":{"nodeType":"YulBlock","src":"1194:111:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1215:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1222:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1227:10:19","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1218:3:19"},"nodeType":"YulFunctionCall","src":"1218:20:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1208:6:19"},"nodeType":"YulFunctionCall","src":"1208:31:19"},"nodeType":"YulExpressionStatement","src":"1208:31:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1259:1:19","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1262:4:19","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1252:6:19"},"nodeType":"YulFunctionCall","src":"1252:15:19"},"nodeType":"YulExpressionStatement","src":"1252:15:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1287:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1290:4:19","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1280:6:19"},"nodeType":"YulFunctionCall","src":"1280:15:19"},"nodeType":"YulExpressionStatement","src":"1280:15:19"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1183:1:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1176:6:19"},"nodeType":"YulFunctionCall","src":"1176:9:19"},"nodeType":"YulIf","src":"1173:132:19"},{"nodeType":"YulAssignment","src":"1314:14:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1323:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"1326:1:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1319:3:19"},"nodeType":"YulFunctionCall","src":"1319:9:19"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1314:1:19"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1148:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"1151:1:19","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"1157:1:19","type":""}],"src":"1117:217:19"},{"body":{"nodeType":"YulBlock","src":"1513:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1530:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1541:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1523:6:19"},"nodeType":"YulFunctionCall","src":"1523:21:19"},"nodeType":"YulExpressionStatement","src":"1523:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1564:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1575:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1560:3:19"},"nodeType":"YulFunctionCall","src":"1560:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1580:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1553:6:19"},"nodeType":"YulFunctionCall","src":"1553:30:19"},"nodeType":"YulExpressionStatement","src":"1553:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1603:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1614:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1599:3:19"},"nodeType":"YulFunctionCall","src":"1599:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1619:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1592:6:19"},"nodeType":"YulFunctionCall","src":"1592:53:19"},"nodeType":"YulExpressionStatement","src":"1592:53:19"},{"nodeType":"YulAssignment","src":"1654:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1666:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1677:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1662:3:19"},"nodeType":"YulFunctionCall","src":"1662:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1654:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1490:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1504:4:19","type":""}],"src":"1339:347:19"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x))))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405260016004553480156200001657600080fd5b5060405162001ab638038062001ab68339810160408190526200003991620002a5565b818060006001600160a01b038216620000995760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0384811691909117909155811615620000cc57620000cc81620001ba565b505050620000f473326c977e6efc84e512bb9c30f76e30c160ed06fb6200026660201b60201c565b600380546001600160a01b03191673aa37473c8d78f0f1c86c9d8aee53e8b896bcb4d51790557f6231643432636435346133613432303062316637323561363865343838383838600a9081557f6231643432636435346133613432303062316637323561363865343838393939600b5562000179670de0b6b3a76400006001620002dd565b62000185919062000309565b600c55600e80546001600160a81b0319166101006001600160a01b03939093169290920260ff1916919091179055506200032c565b336001600160a01b03821603620002145760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000090565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b0381168114620002a057600080fd5b919050565b60008060408385031215620002b957600080fd5b620002c48362000288565b9150620002d46020840162000288565b90509250929050565b80820281158282048414176200030357634e487b7160e01b600052601160045260246000fd5b92915050565b6000826200032757634e487b7160e01b600052601260045260246000fd5b500490565b61177a806200033c6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c5780639e2f9084116100665780639e2f9084146101b2578063df78abe6146101d2578063ea21b098146101db578063f2fde38b146101e457600080fd5b80638da5cb5b146101865780638dc654a21461019757806393232d9f1461019f57600080fd5b80634357855e116100c85780634357855e1461014457806343e1ca491461015957806350ed6a951461017657806379ba50971461017e57600080fd5b8063350844ce146100ef57806338af3eed1461010b578063403a77611461013b575b600080fd5b6100f8600b5481565b6040519081526020015b60405180910390f35b600e546101239061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610102565b6100f8600a5481565b61015761015236600461121c565b6101f7565b005b600e546101669060ff1681565b6040519015158152602001610102565b6100f86102c8565b610157610374565b6006546001600160a01b0316610123565b610157610422565b6101576101ad36600461121c565b610571565b6100f86101c036600461123e565b600d6020526000908152604090205481565b6100f860085481565b6100f860095481565b6101576101f2366004611257565b610638565b60008281526005602052604090205482906001600160a01b031633146102385760405162461bcd60e51b815260040161022f90611287565b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0836040516102ad91815260200190565b60405180910390a260088290556102c2610649565b50505050565b6000806102df600a5430634357855e60e01b610781565b90506103216040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c81526020016116ca604c91398391906107a6565b610362604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001611716602f91398391906107a6565b61036e81600c546107c4565b91505090565b6007546001600160a01b031633146103c75760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161022f565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b61042a6107e7565b600061043e6002546001600160a01b031690565b600e546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb9261010090049091169083906370a0823190602401602060405180830381865afa15801561049a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104be91906112cf565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052d91906112e8565b61056e5760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161022f565b50565b60008281526005602052604090205482906001600160a01b031633146105a95760405162461bcd60e51b815260040161022f90611287565b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f2e48c207bbe18ca424eae69ca096badb69cc821f8cb72b42f49599f3390a3b1c8360405161061e91815260200190565b60405180910390a2600982905561063361083c565b505050565b6106406107e7565b61056e81610900565b600080610660600b54306393232d9f60e01b610781565b90506000610673600854620f42406109aa565b90506000610686600854620f42406109b6565b90506000610693836109c2565b61069c836109c2565b6040516020016106ad92919061132e565b60408051601f19818403018152828201909152600382526219d95d60ea1b602083015291506106de908590836107a6565b61073c604051806040016040528060048152602001630e0c2e8d60e31b815250604051806040016040528060158152602001741c995cdc1bdb9cd94b18dc9e5c1d1bd05b5bdd5b9d605a1b815250866107a69092919063ffffffff16565b60408051808201909152600581526474696d657360d81b602082015261076c908590670de0b6b3a7640000610a55565b61077884600c546107c4565b94505050505090565b6107896111e1565b6107916111e1565b61079d81868686610a73565b95945050505050565b60808301516107b59083610ab9565b60808301516106339082610ab9565b6003546000906107de906001600160a01b03168484610ad0565b90505b92915050565b6006546001600160a01b0316331461083a5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161022f565b565b60006108506002546001600160a01b031690565b600954600e546040516370a0823160e01b81526101009091046001600160a01b03908116600483015292935090918316906370a0823190602401602060405180830381865afa1580156108a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cb91906112cf565b036108f357600854436000908152600d6020526040902055600e805460ff1916600117905550565b600e805460ff1916905550565b336001600160a01b038216036109585760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161022f565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b60006107de82846114a3565b60006107de82846114b7565b606060006109cf83610b63565b600101905060008167ffffffffffffffff8111156109ef576109ef6114cb565b6040519080825280601f01601f191660200182016040528015610a19576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a2357509392505050565b6080830151610a649083610ab9565b60808301516106339082610c3b565b610a7b6111e1565b610a8b8560800151610100610c65565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b610ac68260038351610cca565b6106338282610dd9565b600454600090610ae18160016114e1565b600455835160408086015160808701515191516000936320214ca360e11b93610b199386938493923092918a91600191602401611520565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610b5986838684610e00565b9695505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ba25772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610bce576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610bec57662386f26fc10000830492506010015b6305f5e1008310610c04576305f5e100830492506008015b6127108310610c1857612710830492506004015b60648310610c2a576064830492506002015b600a83106107e15760010192915050565b67ffffffffffffffff811115610c5957610c558282610f5e565b5050565b610c5582600083610cca565b604080518082019091526060815260006020820152610c856020836114b7565b15610cad57610c956020836114b7565b610ca0906020611588565b610caa90836114e1565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff1611610cef576102c28360e0600585901b168317610f95565b60ff8167ffffffffffffffff1611610d2d57610d16836018611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166001610fba565b61ffff8167ffffffffffffffff1611610d6c57610d55836019611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166002610fba565b63ffffffff8167ffffffffffffffff1611610dad57610d9683601a611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166004610fba565b610dc283601b611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166008610fba565b6040805180820190915260608152600060208201526107de83846000015151848551610fe0565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea090610ec39088908790879060040161159b565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0691906112e8565b610ab15760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161022f565b610f698260c2610f95565b50610c558282604051602001610f8191815260200190565b6040516020818303038152906040526110ca565b6040805180820190915260608152600060208201526107de83846000015151846110d7565b604080518082019091526060815260006020820152610ab1848560000151518585611132565b604080518082019091526060815260006020820152825182111561100357600080fd5b602085015161101283866114e1565b111561104557611045856110358760200151878661103091906114e1565b6111b3565b6110409060026115c2565b6111ca565b6000808651805187602083010193508088870111156110645787860182525b505050602084015b602084106110a457805182526110836020836114e1565b91506110906020826114e1565b905061109d602085611588565b935061106c565b51815160001960208690036101000a019081169019919091161790525083949350505050565b610ac68260028351610cca565b6040805180820190915260608152600060208201528360200151831061110c5761110c848560200151600261104091906115c2565b8351805160208583010184815350808503611128576001810182525b5093949350505050565b604080518082019091526060815260006020820152602085015161115685846114e1565b111561116a5761116a8561103586856114e1565b6000600161117a846101006116bd565b6111849190611588565b90508551838682010185831982511617815250805184870111156111a85783860181525b509495945050505050565b6000818311156111c45750816107e1565b50919050565b81516111d68383610c65565b506102c28382610dd9565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000806040838503121561122f57600080fd5b50508035926020909101359150565b60006020828403121561125057600080fd5b5035919050565b60006020828403121561126957600080fd5b81356001600160a01b038116811461128057600080fd5b9392505050565b60208082526028908201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604082015267081c995c5d595cdd60c21b606082015260800190565b6000602082840312156112e157600080fd5b5051919050565b6000602082840312156112fa57600080fd5b8151801515811461128057600080fd5b60005b8381101561132557818101518382015260200161130d565b50506000910152565b7f68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f81527f76322f63757272656e636965732f70726963653f706172746e65724170694b6560208201527f793d30363235323566302d383536622d343330322d396434382d38623639306260408201527f623565363334266669617443757272656e63793d5553442663727970746f437560608201527f7272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f60808201527f726b3d657468657265756d267061796d656e744d6574686f643d63726564697460a08201527f5f64656269745f636172642666696174416d6f756e743d00000000000000000060c08201526000835161144a8160d785016020880161130a565b601760f91b60d791840191820152835161146b8160d884016020880161130a565b0160d801949350505050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826114b2576114b2611477565b500490565b6000826114c6576114c6611477565b500690565b634e487b7160e01b600052604160045260246000fd5b808201808211156107e1576107e161148d565b6000815180845261150c81602086016020860161130a565b601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e08201819052600090611579838201856114f4565b9b9a5050505050505050505050565b818103818111156107e1576107e161148d565b60018060a01b038416815282602082015260606040820152600061079d60608301846114f4565b80820281158282048414176107e1576107e161148d565b600181815b808511156116145781600019048211156115fa576115fa61148d565b8085161561160757918102915b93841c93908002906115de565b509250929050565b60008261162b575060016107e1565b81611638575060006107e1565b816001811461164e576002811461165857611674565b60019150506107e1565b60ff8411156116695761166961148d565b50506001821b6107e1565b5060208310610133831016604e8410600b8410161715611697575081810a6107e1565b6116a183836115d9565b80600019048211156116b5576116b561148d565b029392505050565b60006107de838361161c56fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a2646970667358221220229cc24227ac35cd69ee2057cfd931d5c4b6ae5b5699709a5f88b5e4ae541d9364736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1AB6 CODESIZE SUB DUP1 PUSH3 0x1AB6 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x39 SWAP2 PUSH3 0x2A5 JUMP JUMPDEST DUP2 DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH3 0xCC JUMPI PUSH3 0xCC DUP2 PUSH3 0x1BA JUMP JUMPDEST POP POP POP PUSH3 0xF4 PUSH20 0x326C977E6EFC84E512BB9C30F76E30C160ED06FB PUSH3 0x266 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH20 0xAA37473C8D78F0F1C86C9D8AEE53E8B896BCB4D5 OR SWAP1 SSTORE PUSH32 0x6231643432636435346133613432303062316637323561363865343838383838 PUSH1 0xA SWAP1 DUP2 SSTORE PUSH32 0x6231643432636435346133613432303062316637323561363865343838393939 PUSH1 0xB SSTORE PUSH3 0x179 PUSH8 0xDE0B6B3A7640000 PUSH1 0x1 PUSH3 0x2DD JUMP JUMPDEST PUSH3 0x185 SWAP2 SWAP1 PUSH3 0x309 JUMP JUMPDEST PUSH1 0xC SSTORE PUSH1 0xE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 MUL PUSH1 0xFF NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x32C JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH3 0x214 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x90 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x2B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2C4 DUP4 PUSH3 0x288 JUMP JUMPDEST SWAP2 POP PUSH3 0x2D4 PUSH1 0x20 DUP5 ADD PUSH3 0x288 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH3 0x303 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x327 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH2 0x177A DUP1 PUSH3 0x33C 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 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x9E2F9084 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x9E2F9084 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0xDF78ABE6 EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0xEA21B098 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x93232D9F EQ PUSH2 0x19F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4357855E GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x4357855E EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x43E1CA49 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x50ED6A95 EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x350844CE EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x38AF3EED EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x403A7761 EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0xE SLOAD PUSH2 0x123 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x121C JUMP JUMPDEST PUSH2 0x1F7 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x166 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x2C8 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x123 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x422 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1AD CALLDATASIZE PUSH1 0x4 PUSH2 0x121C JUMP JUMPDEST PUSH2 0x571 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x1C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x123E JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1257 JUMP JUMPDEST PUSH2 0x638 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x1287 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x9721E7802F825C56833DB455A0081C7DD8C7DA03ED285E582C2AF90DD7D442C0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2AD SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x8 DUP3 SWAP1 SSTORE PUSH2 0x2C2 PUSH2 0x649 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2DF PUSH1 0xA SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x781 JUMP JUMPDEST SWAP1 POP PUSH2 0x321 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x19D95D PUSH1 0xEA SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16CA PUSH1 0x4C SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x362 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1716 PUSH1 0x2F SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x36E DUP2 PUSH1 0xC SLOAD PUSH2 0x7C4 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP3 AND CALLER SWAP1 DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x42A PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43E PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 PUSH2 0x100 SWAP1 DIV SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x49A 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 0x4BE SWAP2 SWAP1 PUSH2 0x12CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x509 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 0x52D SWAP2 SWAP1 PUSH2 0x12E8 JUMP JUMPDEST PUSH2 0x56E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x2AB730B13632903A37903A3930B739B332B9 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5A9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x1287 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x2E48C207BBE18CA424EAE69CA096BADB69CC821F8CB72B42F49599F3390A3B1C DUP4 PUSH1 0x40 MLOAD PUSH2 0x61E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x9 DUP3 SWAP1 SSTORE PUSH2 0x633 PUSH2 0x83C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x640 PUSH2 0x7E7 JUMP JUMPDEST PUSH2 0x56E DUP2 PUSH2 0x900 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x660 PUSH1 0xB SLOAD ADDRESS PUSH4 0x93232D9F PUSH1 0xE0 SHL PUSH2 0x781 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x673 PUSH1 0x8 SLOAD PUSH3 0xF4240 PUSH2 0x9AA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x686 PUSH1 0x8 SLOAD PUSH3 0xF4240 PUSH2 0x9B6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x693 DUP4 PUSH2 0x9C2 JUMP JUMPDEST PUSH2 0x69C DUP4 PUSH2 0x9C2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x6AD SWAP3 SWAP2 SWAP1 PUSH2 0x132E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH3 0x19D95D PUSH1 0xEA SHL PUSH1 0x20 DUP4 ADD MSTORE SWAP2 POP PUSH2 0x6DE SWAP1 DUP6 SWAP1 DUP4 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x73C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH21 0x1C995CDC1BDB9CD94B18DC9E5C1D1BD05B5BDD5B9D PUSH1 0x5A SHL DUP2 MSTORE POP DUP7 PUSH2 0x7A6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH5 0x74696D6573 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x76C SWAP1 DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 PUSH2 0xA55 JUMP JUMPDEST PUSH2 0x778 DUP5 PUSH1 0xC SLOAD PUSH2 0x7C4 JUMP JUMPDEST SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x789 PUSH2 0x11E1 JUMP JUMPDEST PUSH2 0x791 PUSH2 0x11E1 JUMP JUMPDEST PUSH2 0x79D DUP2 DUP7 DUP7 DUP7 PUSH2 0xA73 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x7B5 SWAP1 DUP4 PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x633 SWAP1 DUP3 PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x7DE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0xAD0 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x83A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x850 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP1 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8A7 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 0x8CB SWAP2 SWAP1 PUSH2 0x12CF JUMP JUMPDEST SUB PUSH2 0x8F3 JUMPI PUSH1 0x8 SLOAD NUMBER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x958 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DE DUP3 DUP5 PUSH2 0x14A3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DE DUP3 DUP5 PUSH2 0x14B7 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9CF DUP4 PUSH2 0xB63 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9EF JUMPI PUSH2 0x9EF PUSH2 0x14CB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xA19 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xA23 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xA64 SWAP1 DUP4 PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x633 SWAP1 DUP3 PUSH2 0xC3B JUMP JUMPDEST PUSH2 0xA7B PUSH2 0x11E1 JUMP JUMPDEST PUSH2 0xA8B DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0xC65 JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xAC6 DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0xCCA JUMP JUMPDEST PUSH2 0x633 DUP3 DUP3 PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xAE1 DUP2 PUSH1 0x1 PUSH2 0x14E1 JUMP JUMPDEST PUSH1 0x4 SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0xB19 SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x1520 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0xB59 DUP7 DUP4 DUP7 DUP5 PUSH2 0xE00 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xBA2 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xBCE JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xBEC JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xC04 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xC18 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xC2A JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x7E1 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC59 JUMPI PUSH2 0xC55 DUP3 DUP3 PUSH2 0xF5E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC55 DUP3 PUSH1 0x0 DUP4 PUSH2 0xCCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xC85 PUSH1 0x20 DUP4 PUSH2 0x14B7 JUMP JUMPDEST ISZERO PUSH2 0xCAD JUMPI PUSH2 0xC95 PUSH1 0x20 DUP4 PUSH2 0x14B7 JUMP JUMPDEST PUSH2 0xCA0 SWAP1 PUSH1 0x20 PUSH2 0x1588 JUMP JUMPDEST PUSH2 0xCAA SWAP1 DUP4 PUSH2 0x14E1 JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xCEF JUMPI PUSH2 0x2C2 DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0xF95 JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xD2D JUMPI PUSH2 0xD16 DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xF95 JUMP JUMPDEST POP PUSH2 0x2C2 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0xFBA JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xD6C JUMPI PUSH2 0xD55 DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xF95 JUMP JUMPDEST POP PUSH2 0x2C2 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0xFBA JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xDAD JUMPI PUSH2 0xD96 DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xF95 JUMP JUMPDEST POP PUSH2 0x2C2 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0xFBA JUMP JUMPDEST PUSH2 0xDC2 DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xF95 JUMP JUMPDEST POP PUSH2 0x2C2 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0xFBA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x7DE DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xFE0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0xEC3 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x159B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEE2 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 0xF06 SWAP2 SWAP1 PUSH2 0x12E8 JUMP JUMPDEST PUSH2 0xAB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x22F JUMP JUMPDEST PUSH2 0xF69 DUP3 PUSH1 0xC2 PUSH2 0xF95 JUMP JUMPDEST POP PUSH2 0xC55 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF81 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x10CA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x7DE DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x10D7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xAB1 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1132 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0x1003 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x1012 DUP4 DUP7 PUSH2 0x14E1 JUMP JUMPDEST GT ISZERO PUSH2 0x1045 JUMPI PUSH2 0x1045 DUP6 PUSH2 0x1035 DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0x1030 SWAP2 SWAP1 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x11B3 JUMP JUMPDEST PUSH2 0x1040 SWAP1 PUSH1 0x2 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0x11CA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0x1064 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0x10A4 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0x1083 PUSH1 0x20 DUP4 PUSH2 0x14E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x1090 PUSH1 0x20 DUP3 PUSH2 0x14E1 JUMP JUMPDEST SWAP1 POP PUSH2 0x109D PUSH1 0x20 DUP6 PUSH2 0x1588 JUMP JUMPDEST SWAP4 POP PUSH2 0x106C JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xAC6 DUP3 PUSH1 0x2 DUP4 MLOAD PUSH2 0xCCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x110C JUMPI PUSH2 0x110C DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0x1040 SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 SUB PUSH2 0x1128 JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x1156 DUP6 DUP5 PUSH2 0x14E1 JUMP JUMPDEST GT ISZERO PUSH2 0x116A JUMPI PUSH2 0x116A DUP6 PUSH2 0x1035 DUP7 DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x117A DUP5 PUSH2 0x100 PUSH2 0x16BD JUMP JUMPDEST PUSH2 0x1184 SWAP2 SWAP1 PUSH2 0x1588 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0x11A8 JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x11C4 JUMPI POP DUP2 PUSH2 0x7E1 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x11D6 DUP4 DUP4 PUSH2 0xC65 JUMP JUMPDEST POP PUSH2 0x2C2 DUP4 DUP3 PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x122F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1250 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x40 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1325 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x130D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x68747470733A2F2F6170692D7374672E7472616E73616B2E636F6D2F6170692F DUP2 MSTORE PUSH32 0x76322F63757272656E636965732F70726963653F706172746E65724170694B65 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x793D30363235323566302D383536622D343330322D396434382D386236393062 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x623565363334266669617443757272656E63793D5553442663727970746F4375 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x7272656E63793D4554482669734275794F7253656C6C3D425559266E6574776F PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x726B3D657468657265756D267061796D656E744D6574686F643D637265646974 PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x5F64656269745F636172642666696174416D6F756E743D000000000000000000 PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x144A DUP2 PUSH1 0xD7 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x130A JUMP JUMPDEST PUSH1 0x17 PUSH1 0xF9 SHL PUSH1 0xD7 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x146B DUP2 PUSH1 0xD8 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x130A JUMP JUMPDEST ADD PUSH1 0xD8 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x14B2 JUMPI PUSH2 0x14B2 PUSH2 0x1477 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x14C6 JUMPI PUSH2 0x14C6 PUSH2 0x1477 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x7E1 JUMPI PUSH2 0x7E1 PUSH2 0x148D JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x150C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x130A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1579 DUP4 DUP3 ADD DUP6 PUSH2 0x14F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x7E1 JUMPI PUSH2 0x7E1 PUSH2 0x148D JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x79D PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x14F4 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x7E1 JUMPI PUSH2 0x7E1 PUSH2 0x148D JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0x1614 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x15FA JUMPI PUSH2 0x15FA PUSH2 0x148D JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0x1607 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0x15DE JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x162B JUMPI POP PUSH1 0x1 PUSH2 0x7E1 JUMP JUMPDEST DUP2 PUSH2 0x1638 JUMPI POP PUSH1 0x0 PUSH2 0x7E1 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x164E JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1658 JUMPI PUSH2 0x1674 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x7E1 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1669 JUMPI PUSH2 0x1669 PUSH2 0x148D JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x7E1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1697 JUMPI POP DUP2 DUP2 EXP PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x16A1 DUP4 DUP4 PUSH2 0x15D9 JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x16B5 JUMPI PUSH2 0x16B5 PUSH2 0x148D JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DE DUP4 DUP4 PUSH2 0x161C JUMP INVALID PUSH9 0x747470733A2F2F7465 PUSH20 0x746170692E696F2F6170692F48617964656E2F76 BALANCE 0x2F PUSH2 0x6363 PUSH16 0x756E74732F7075622D39393838373736 CALLDATASIZE CALLDATALOAD CALLDATALOAD CALLVALUE CALLVALUE CALLER CALLER ORIGIN ORIGIN 0x2F PUSH15 0x6574776F726B5265706F7274726F77 0x2C PUSH14 0x657472696356616C7565732C4553 SLOAD 0x49 0x4D COINBASE SLOAD GASLIMIT DIFFICULTY 0x5F GASLIMIT COINBASE MSTORE 0x4E 0x49 0x4E SELFBALANCE MSTORE8 0x2C PUSH14 0x6963726F7356616C7565A2646970 PUSH7 0x7358221220229C 0xC2 TIMESTAMP 0x27 0xAC CALLDATALOAD 0xCD PUSH10 0xEE2057CFD931D5C4B6AE JUMPDEST JUMP SWAP10 PUSH17 0x9A5F88B5E4AE541D9364736F6C63430008 GT STOP CALLER ","sourceMap":"288:5131:18:-:0;;;1291:1:1;1258:34;;1557:488:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1622:6;;345:1:2;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;696:2:19;544:59:3;;;678:21:19;735:2;715:18;;;708:30;774:26;754:18;;;747:54;818:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;270:81:2;1640:61:18::1;1658:42;1640:17;;;:61;;:::i;:::-;8457:8:1::0;:43;;-1:-1:-1;;;;;;8457:43:1;1730:42:18::1;8457:43:1::0;;;1783:44:18::1;:7;:44:::0;;;1837:49:::1;:12;:49:::0;1903:21:::1;675:6:1;1903:1:18;:21;:::i;:::-;1902:28;;;;:::i;:::-;1896:3;:34:::0;1984:11:::1;:26:::0;;-1:-1:-1;;;;;;2020:18:18;1984:26:::1;-1:-1:-1::0;;;;;1984:26:18;;;::::1;::::0;;;::::1;-1:-1:-1::0;;2020:18:18;;;;;;;-1:-1:-1;288:5131:18;;1497:188:3;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1541:2:19;1551:52:3;;;1523:21:19;1580:2;1560:18;;;1553:30;1619:25;1599:18;;;1592:53;1662:18;;1551:52:3;1339:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;1668:7;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;;1641:39:3;1497:188;:::o;8625:108:1:-;8688:6;:40;;-1:-1:-1;;;;;;8688:40:1;-1:-1:-1;;;;;8688:40:1;;;;;;;;;;8625:108::o;14:177:19:-;93:13;;-1:-1:-1;;;;;135:31:19;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;847:265::-;920:9;;;951;;968:15;;;962:22;;948:37;938:168;;1028:10;1023:3;1019:20;1016:1;1009:31;1063:4;1060:1;1053:15;1091:4;1088:1;1081:15;938:168;847:265;;;;:::o;1117:217::-;1157:1;1183;1173:132;;1227:10;1222:3;1218:20;1215:1;1208:31;1262:4;1259:1;1252:15;1290:4;1287:1;1280:15;1173:132;-1:-1:-1;1319:9:19;;1117:217::o;1339:347::-;288:5131:18;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkEligibleEarning_4215":{"entryPoint":2108,"id":4215,"parameterSlots":0,"returnSlots":0},"@_rawRequest_594":{"entryPoint":3584,"id":594,"parameterSlots":4,"returnSlots":1},"@_requestTransakValidation_4127":{"entryPoint":1609,"id":4127,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1021":{"entryPoint":2304,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":2023,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":884,"id":987,"parameterSlots":0,"returnSlots":0},"@addUint_209":{"entryPoint":2645,"id":209,"parameterSlots":3,"returnSlots":0},"@add_125":{"entryPoint":1958,"id":125,"parameterSlots":3,"returnSlots":0},"@appendInt_1915":{"entryPoint":4026,"id":1915,"parameterSlots":3,"returnSlots":1},"@appendUint8_1712":{"entryPoint":3989,"id":1712,"parameterSlots":2,"returnSlots":1},"@append_1659":{"entryPoint":3545,"id":1659,"parameterSlots":2,"returnSlots":1},"@beneficiary_3921":{"entryPoint":null,"id":3921,"parameterSlots":0,"returnSlots":0},"@buildChainlinkRequest_373":{"entryPoint":1921,"id":373,"parameterSlots":3,"returnSlots":1},"@chainlinkTokenAddress_694":{"entryPoint":null,"id":694,"parameterSlots":0,"returnSlots":1},"@div_3689":{"entryPoint":2474,"id":3689,"parameterSlots":2,"returnSlots":1},"@earningReports_3916":{"entryPoint":null,"id":3916,"parameterSlots":0,"returnSlots":0},"@earning_3904":{"entryPoint":null,"id":3904,"parameterSlots":0,"returnSlots":0},"@encodeBigNum_2258":{"entryPoint":3934,"id":2258,"parameterSlots":2,"returnSlots":0},"@encodeBytes_2227":{"entryPoint":4298,"id":2227,"parameterSlots":2,"returnSlots":0},"@encodeFixedNumeric_2084":{"entryPoint":3274,"id":2084,"parameterSlots":3,"returnSlots":0},"@encodeString_2326":{"entryPoint":2745,"id":2326,"parameterSlots":2,"returnSlots":0},"@encodeUInt_2136":{"entryPoint":3131,"id":2136,"parameterSlots":2,"returnSlots":0},"@fulfillTransakPrice_4150":{"entryPoint":1393,"id":4150,"parameterSlots":2,"returnSlots":0},"@fulfill_4044":{"entryPoint":503,"id":4044,"parameterSlots":2,"returnSlots":0},"@ggJobId_3908":{"entryPoint":null,"id":3908,"parameterSlots":0,"returnSlots":0},"@init_1440":{"entryPoint":3173,"id":1440,"parameterSlots":2,"returnSlots":1},"@initialize_70":{"entryPoint":2675,"id":70,"parameterSlots":4,"returnSlots":1},"@isEligible_3918":{"entryPoint":null,"id":3918,"parameterSlots":0,"returnSlots":0},"@linkAmount_3906":{"entryPoint":null,"id":3906,"parameterSlots":0,"returnSlots":0},"@log10_3305":{"entryPoint":2915,"id":3305,"parameterSlots":1,"returnSlots":1},"@max_1512":{"entryPoint":4531,"id":1512,"parameterSlots":2,"returnSlots":1},"@mod_3704":{"entryPoint":2486,"id":3704,"parameterSlots":2,"returnSlots":1},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@requestWeekEarning_4020":{"entryPoint":712,"id":4020,"parameterSlots":0,"returnSlots":1},"@resize_1493":{"entryPoint":4554,"id":1493,"parameterSlots":2,"returnSlots":0},"@sendChainlinkRequestTo_477":{"entryPoint":2768,"id":477,"parameterSlots":3,"returnSlots":1},"@sendChainlinkRequest_422":{"entryPoint":1988,"id":422,"parameterSlots":2,"returnSlots":1},"@toString_2432":{"entryPoint":2498,"id":2432,"parameterSlots":1,"returnSlots":1},"@transakJobId_3910":{"entryPoint":null,"id":3910,"parameterSlots":0,"returnSlots":0},"@transferOwnership_951":{"entryPoint":1592,"id":951,"parameterSlots":1,"returnSlots":0},"@withdrawLink_4180":{"entryPoint":1058,"id":4180,"parameterSlots":0,"returnSlots":0},"@writeInt_1891":{"entryPoint":4402,"id":1891,"parameterSlots":4,"returnSlots":1},"@writeUint8_1691":{"entryPoint":4311,"id":1691,"parameterSlots":3,"returnSlots":1},"@write_1612":{"entryPoint":4064,"id":1612,"parameterSlots":4,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4695,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4840,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":4636,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":4670,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":4815,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":5364,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad_t_string_memory_ptr_t_stringliteral_6f010af653ebe3cb07d297a4ef13366103d392ceffa68dd48232e6e9ff2187bf_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4910,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5408,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5531,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4743,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":5345,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":5283,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":5593,"id":null,"parameterSlots":2,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":5821,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":5660,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":5570,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":5512,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4874,"id":null,"parameterSlots":3,"returnSlots":0},"mod_t_uint256":{"entryPoint":5303,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":5261,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":5239,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5323,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:10178:19","statements":[{"nodeType":"YulBlock","src":"6:3:19","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:76:19","statements":[{"nodeType":"YulAssignment","src":"125:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:19"},"nodeType":"YulFunctionCall","src":"133:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:19"},{"name":"value0","nodeType":"YulIdentifier","src":"178:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:19"},"nodeType":"YulFunctionCall","src":"160:25:19"},"nodeType":"YulExpressionStatement","src":"160:25:19"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:19","type":""}],"src":"14:177:19"},{"body":{"nodeType":"YulBlock","src":"297:102:19","statements":[{"nodeType":"YulAssignment","src":"307:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"319:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"330:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"315:3:19"},"nodeType":"YulFunctionCall","src":"315:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"307:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"364:6:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"380:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"385:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"376:3:19"},"nodeType":"YulFunctionCall","src":"376:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"389:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"372:3:19"},"nodeType":"YulFunctionCall","src":"372:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"360:3:19"},"nodeType":"YulFunctionCall","src":"360:32:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"342:6:19"},"nodeType":"YulFunctionCall","src":"342:51:19"},"nodeType":"YulExpressionStatement","src":"342:51:19"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"266:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"277:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"288:4:19","type":""}],"src":"196:203:19"},{"body":{"nodeType":"YulBlock","src":"491:161:19","statements":[{"body":{"nodeType":"YulBlock","src":"537:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"549:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"539:6:19"},"nodeType":"YulFunctionCall","src":"539:12:19"},"nodeType":"YulExpressionStatement","src":"539:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"512:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"521:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"508:3:19"},"nodeType":"YulFunctionCall","src":"508:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"533:2:19","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"504:3:19"},"nodeType":"YulFunctionCall","src":"504:32:19"},"nodeType":"YulIf","src":"501:52:19"},{"nodeType":"YulAssignment","src":"562:33:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"585:9:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"572:12:19"},"nodeType":"YulFunctionCall","src":"572:23:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"562:6:19"}]},{"nodeType":"YulAssignment","src":"604:42:19","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"631:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"642:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"627:3:19"},"nodeType":"YulFunctionCall","src":"627:18:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"614:12:19"},"nodeType":"YulFunctionCall","src":"614:32:19"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"604:6:19"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"449:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"460:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"472:6:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"480:6:19","type":""}],"src":"404:248:19"},{"body":{"nodeType":"YulBlock","src":"752:92:19","statements":[{"nodeType":"YulAssignment","src":"762:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"774:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"785:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"770:3:19"},"nodeType":"YulFunctionCall","src":"770:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"762:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"804:9:19"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"829:6:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"822:6:19"},"nodeType":"YulFunctionCall","src":"822:14:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"815:6:19"},"nodeType":"YulFunctionCall","src":"815:22:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"797:6:19"},"nodeType":"YulFunctionCall","src":"797:41:19"},"nodeType":"YulExpressionStatement","src":"797:41:19"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"721:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"732:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"743:4:19","type":""}],"src":"657:187:19"},{"body":{"nodeType":"YulBlock","src":"919:110:19","statements":[{"body":{"nodeType":"YulBlock","src":"965:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"974:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"977:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"967:6:19"},"nodeType":"YulFunctionCall","src":"967:12:19"},"nodeType":"YulExpressionStatement","src":"967:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"940:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"949:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"936:3:19"},"nodeType":"YulFunctionCall","src":"936:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"961:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"932:3:19"},"nodeType":"YulFunctionCall","src":"932:32:19"},"nodeType":"YulIf","src":"929:52:19"},{"nodeType":"YulAssignment","src":"990:33:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1013:9:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1000:12:19"},"nodeType":"YulFunctionCall","src":"1000:23:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"990:6:19"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"885:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"896:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"908:6:19","type":""}],"src":"849:180:19"},{"body":{"nodeType":"YulBlock","src":"1135:76:19","statements":[{"nodeType":"YulAssignment","src":"1145:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1157:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1168:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1153:3:19"},"nodeType":"YulFunctionCall","src":"1153:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1145:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1187:9:19"},{"name":"value0","nodeType":"YulIdentifier","src":"1198:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1180:6:19"},"nodeType":"YulFunctionCall","src":"1180:25:19"},"nodeType":"YulExpressionStatement","src":"1180:25:19"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1104:9:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1115:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1126:4:19","type":""}],"src":"1034:177:19"},{"body":{"nodeType":"YulBlock","src":"1286:216:19","statements":[{"body":{"nodeType":"YulBlock","src":"1332:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1341:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1344:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1334:6:19"},"nodeType":"YulFunctionCall","src":"1334:12:19"},"nodeType":"YulExpressionStatement","src":"1334:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1307:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"1316:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1303:3:19"},"nodeType":"YulFunctionCall","src":"1303:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"1328:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1299:3:19"},"nodeType":"YulFunctionCall","src":"1299:32:19"},"nodeType":"YulIf","src":"1296:52:19"},{"nodeType":"YulVariableDeclaration","src":"1357:36:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1383:9:19"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1370:12:19"},"nodeType":"YulFunctionCall","src":"1370:23:19"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1361:5:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"1456:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1465:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1468:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1458:6:19"},"nodeType":"YulFunctionCall","src":"1458:12:19"},"nodeType":"YulExpressionStatement","src":"1458:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1415:5:19"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1426:5:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1441:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1446:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1437:3:19"},"nodeType":"YulFunctionCall","src":"1437:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"1450:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1433:3:19"},"nodeType":"YulFunctionCall","src":"1433:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1422:3:19"},"nodeType":"YulFunctionCall","src":"1422:31:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1412:2:19"},"nodeType":"YulFunctionCall","src":"1412:42:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1405:6:19"},"nodeType":"YulFunctionCall","src":"1405:50:19"},"nodeType":"YulIf","src":"1402:70:19"},{"nodeType":"YulAssignment","src":"1481:15:19","value":{"name":"value","nodeType":"YulIdentifier","src":"1491:5:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1481:6:19"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1252:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1263:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1275:6:19","type":""}],"src":"1216:286:19"},{"body":{"nodeType":"YulBlock","src":"1681:230:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1698:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1709:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1691:6:19"},"nodeType":"YulFunctionCall","src":"1691:21:19"},"nodeType":"YulExpressionStatement","src":"1691:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1732:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1743:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1728:3:19"},"nodeType":"YulFunctionCall","src":"1728:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"1748:2:19","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1721:6:19"},"nodeType":"YulFunctionCall","src":"1721:30:19"},"nodeType":"YulExpressionStatement","src":"1721:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1771:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1782:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1767:3:19"},"nodeType":"YulFunctionCall","src":"1767:18:19"},{"hexValue":"536f75726365206d75737420626520746865206f7261636c65206f6620746865","kind":"string","nodeType":"YulLiteral","src":"1787:34:19","type":"","value":"Source must be the oracle of the"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1760:6:19"},"nodeType":"YulFunctionCall","src":"1760:62:19"},"nodeType":"YulExpressionStatement","src":"1760:62:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1842:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1838:3:19"},"nodeType":"YulFunctionCall","src":"1838:18:19"},{"hexValue":"2072657175657374","kind":"string","nodeType":"YulLiteral","src":"1858:10:19","type":"","value":" request"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1831:6:19"},"nodeType":"YulFunctionCall","src":"1831:38:19"},"nodeType":"YulExpressionStatement","src":"1831:38:19"},{"nodeType":"YulAssignment","src":"1878:27:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1890:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"1901:3:19","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1886:3:19"},"nodeType":"YulFunctionCall","src":"1886:19:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1878:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1658:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1672:4:19","type":""}],"src":"1507:404:19"},{"body":{"nodeType":"YulBlock","src":"2090:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2107:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2118:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2100:6:19"},"nodeType":"YulFunctionCall","src":"2100:21:19"},"nodeType":"YulExpressionStatement","src":"2100:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2141:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2152:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2137:3:19"},"nodeType":"YulFunctionCall","src":"2137:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"2157:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2130:6:19"},"nodeType":"YulFunctionCall","src":"2130:30:19"},"nodeType":"YulExpressionStatement","src":"2130:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2180:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2191:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2176:3:19"},"nodeType":"YulFunctionCall","src":"2176:18:19"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"2196:24:19","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2169:6:19"},"nodeType":"YulFunctionCall","src":"2169:52:19"},"nodeType":"YulExpressionStatement","src":"2169:52:19"},{"nodeType":"YulAssignment","src":"2230:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2242:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2253:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2238:3:19"},"nodeType":"YulFunctionCall","src":"2238:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2230:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2067:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2081:4:19","type":""}],"src":"1916:346:19"},{"body":{"nodeType":"YulBlock","src":"2348:103:19","statements":[{"body":{"nodeType":"YulBlock","src":"2394:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2403:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2406:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2396:6:19"},"nodeType":"YulFunctionCall","src":"2396:12:19"},"nodeType":"YulExpressionStatement","src":"2396:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2369:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"2378:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2365:3:19"},"nodeType":"YulFunctionCall","src":"2365:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2361:3:19"},"nodeType":"YulFunctionCall","src":"2361:32:19"},"nodeType":"YulIf","src":"2358:52:19"},{"nodeType":"YulAssignment","src":"2419:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2435:9:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2429:5:19"},"nodeType":"YulFunctionCall","src":"2429:16:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2419:6:19"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2314:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2325:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2337:6:19","type":""}],"src":"2267:184:19"},{"body":{"nodeType":"YulBlock","src":"2585:145:19","statements":[{"nodeType":"YulAssignment","src":"2595:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2607:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2618:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2603:3:19"},"nodeType":"YulFunctionCall","src":"2603:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2595:4:19"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2637:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2652:6:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2668:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2673:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2664:3:19"},"nodeType":"YulFunctionCall","src":"2664:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"2677:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2660:3:19"},"nodeType":"YulFunctionCall","src":"2660:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2648:3:19"},"nodeType":"YulFunctionCall","src":"2648:32:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2630:6:19"},"nodeType":"YulFunctionCall","src":"2630:51:19"},"nodeType":"YulExpressionStatement","src":"2630:51:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2701:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"2712:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2697:3:19"},"nodeType":"YulFunctionCall","src":"2697:18:19"},{"name":"value1","nodeType":"YulIdentifier","src":"2717:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2690:6:19"},"nodeType":"YulFunctionCall","src":"2690:34:19"},"nodeType":"YulExpressionStatement","src":"2690:34:19"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2546:9:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2557:6:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2565:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2576:4:19","type":""}],"src":"2456:274:19"},{"body":{"nodeType":"YulBlock","src":"2813:199:19","statements":[{"body":{"nodeType":"YulBlock","src":"2859:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2868:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2871:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2861:6:19"},"nodeType":"YulFunctionCall","src":"2861:12:19"},"nodeType":"YulExpressionStatement","src":"2861:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2834:7:19"},{"name":"headStart","nodeType":"YulIdentifier","src":"2843:9:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2830:3:19"},"nodeType":"YulFunctionCall","src":"2830:23:19"},{"kind":"number","nodeType":"YulLiteral","src":"2855:2:19","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2826:3:19"},"nodeType":"YulFunctionCall","src":"2826:32:19"},"nodeType":"YulIf","src":"2823:52:19"},{"nodeType":"YulVariableDeclaration","src":"2884:29:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2903:9:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2897:5:19"},"nodeType":"YulFunctionCall","src":"2897:16:19"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2888:5:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"2966:16:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2975:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2978:1:19","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2968:6:19"},"nodeType":"YulFunctionCall","src":"2968:12:19"},"nodeType":"YulExpressionStatement","src":"2968:12:19"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2935:5:19"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2956:5:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2949:6:19"},"nodeType":"YulFunctionCall","src":"2949:13:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2942:6:19"},"nodeType":"YulFunctionCall","src":"2942:21:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2932:2:19"},"nodeType":"YulFunctionCall","src":"2932:32:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2925:6:19"},"nodeType":"YulFunctionCall","src":"2925:40:19"},"nodeType":"YulIf","src":"2922:60:19"},{"nodeType":"YulAssignment","src":"2991:15:19","value":{"name":"value","nodeType":"YulIdentifier","src":"3001:5:19"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2991:6:19"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2779:9:19","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2790:7:19","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2802:6:19","type":""}],"src":"2735:277:19"},{"body":{"nodeType":"YulBlock","src":"3191:168:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3208:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"3219:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3201:6:19"},"nodeType":"YulFunctionCall","src":"3201:21:19"},"nodeType":"YulExpressionStatement","src":"3201:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3242:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"3253:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3238:3:19"},"nodeType":"YulFunctionCall","src":"3238:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"3258:2:19","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3231:6:19"},"nodeType":"YulFunctionCall","src":"3231:30:19"},"nodeType":"YulExpressionStatement","src":"3231:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3281:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"3292:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3277:3:19"},"nodeType":"YulFunctionCall","src":"3277:18:19"},{"hexValue":"556e61626c6520746f207472616e73666572","kind":"string","nodeType":"YulLiteral","src":"3297:20:19","type":"","value":"Unable to transfer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3270:6:19"},"nodeType":"YulFunctionCall","src":"3270:48:19"},"nodeType":"YulExpressionStatement","src":"3270:48:19"},{"nodeType":"YulAssignment","src":"3327:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3339:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"3350:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3335:3:19"},"nodeType":"YulFunctionCall","src":"3335:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3327:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3168:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3182:4:19","type":""}],"src":"3017:342:19"},{"body":{"nodeType":"YulBlock","src":"3430:184:19","statements":[{"nodeType":"YulVariableDeclaration","src":"3440:10:19","value":{"kind":"number","nodeType":"YulLiteral","src":"3449:1:19","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3444:1:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"3509:63:19","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3534:3:19"},{"name":"i","nodeType":"YulIdentifier","src":"3539:1:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3530:3:19"},"nodeType":"YulFunctionCall","src":"3530:11:19"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3553:3:19"},{"name":"i","nodeType":"YulIdentifier","src":"3558:1:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3549:3:19"},"nodeType":"YulFunctionCall","src":"3549:11:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3543:5:19"},"nodeType":"YulFunctionCall","src":"3543:18:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3523:6:19"},"nodeType":"YulFunctionCall","src":"3523:39:19"},"nodeType":"YulExpressionStatement","src":"3523:39:19"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3470:1:19"},{"name":"length","nodeType":"YulIdentifier","src":"3473:6:19"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3467:2:19"},"nodeType":"YulFunctionCall","src":"3467:13:19"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3481:19:19","statements":[{"nodeType":"YulAssignment","src":"3483:15:19","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3492:1:19"},{"kind":"number","nodeType":"YulLiteral","src":"3495:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3488:3:19"},"nodeType":"YulFunctionCall","src":"3488:10:19"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3483:1:19"}]}]},"pre":{"nodeType":"YulBlock","src":"3463:3:19","statements":[]},"src":"3459:113:19"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3592:3:19"},{"name":"length","nodeType":"YulIdentifier","src":"3597:6:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3588:3:19"},"nodeType":"YulFunctionCall","src":"3588:16:19"},{"kind":"number","nodeType":"YulLiteral","src":"3606:1:19","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3581:6:19"},"nodeType":"YulFunctionCall","src":"3581:27:19"},"nodeType":"YulExpressionStatement","src":"3581:27:19"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3408:3:19","type":""},{"name":"dst","nodeType":"YulTypedName","src":"3413:3:19","type":""},{"name":"length","nodeType":"YulTypedName","src":"3418:6:19","type":""}],"src":"3364:250:19"},{"body":{"nodeType":"YulBlock","src":"4008:800:19","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4025:3:19"},{"hexValue":"68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f","kind":"string","nodeType":"YulLiteral","src":"4030:34:19","type":"","value":"https://api-stg.transak.com/api/"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4018:6:19"},"nodeType":"YulFunctionCall","src":"4018:47:19"},"nodeType":"YulExpressionStatement","src":"4018:47:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4085:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4090:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4081:3:19"},"nodeType":"YulFunctionCall","src":"4081:12:19"},{"hexValue":"76322f63757272656e636965732f70726963653f706172746e65724170694b65","kind":"string","nodeType":"YulLiteral","src":"4095:34:19","type":"","value":"v2/currencies/price?partnerApiKe"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4074:6:19"},"nodeType":"YulFunctionCall","src":"4074:56:19"},"nodeType":"YulExpressionStatement","src":"4074:56:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4150:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4155:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4146:3:19"},"nodeType":"YulFunctionCall","src":"4146:12:19"},{"hexValue":"793d30363235323566302d383536622d343330322d396434382d386236393062","kind":"string","nodeType":"YulLiteral","src":"4160:34:19","type":"","value":"y=062525f0-856b-4302-9d48-8b690b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4139:6:19"},"nodeType":"YulFunctionCall","src":"4139:56:19"},"nodeType":"YulExpressionStatement","src":"4139:56:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4215:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4220:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4211:3:19"},"nodeType":"YulFunctionCall","src":"4211:12:19"},{"hexValue":"623565363334266669617443757272656e63793d5553442663727970746f4375","kind":"string","nodeType":"YulLiteral","src":"4225:34:19","type":"","value":"b5e634&fiatCurrency=USD&cryptoCu"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4204:6:19"},"nodeType":"YulFunctionCall","src":"4204:56:19"},"nodeType":"YulExpressionStatement","src":"4204:56:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4280:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4285:3:19","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4276:3:19"},"nodeType":"YulFunctionCall","src":"4276:13:19"},{"hexValue":"7272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f","kind":"string","nodeType":"YulLiteral","src":"4291:34:19","type":"","value":"rrency=ETH&isBuyOrSell=BUY&netwo"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4269:6:19"},"nodeType":"YulFunctionCall","src":"4269:57:19"},"nodeType":"YulExpressionStatement","src":"4269:57:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4346:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4351:3:19","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4342:3:19"},"nodeType":"YulFunctionCall","src":"4342:13:19"},{"hexValue":"726b3d657468657265756d267061796d656e744d6574686f643d637265646974","kind":"string","nodeType":"YulLiteral","src":"4357:34:19","type":"","value":"rk=ethereum&paymentMethod=credit"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4335:6:19"},"nodeType":"YulFunctionCall","src":"4335:57:19"},"nodeType":"YulExpressionStatement","src":"4335:57:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4412:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4417:3:19","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4408:3:19"},"nodeType":"YulFunctionCall","src":"4408:13:19"},{"hexValue":"5f64656269745f636172642666696174416d6f756e743d","kind":"string","nodeType":"YulLiteral","src":"4423:25:19","type":"","value":"_debit_card&fiatAmount="}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4401:6:19"},"nodeType":"YulFunctionCall","src":"4401:48:19"},"nodeType":"YulExpressionStatement","src":"4401:48:19"},{"nodeType":"YulVariableDeclaration","src":"4458:27:19","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4478:6:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4472:5:19"},"nodeType":"YulFunctionCall","src":"4472:13:19"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4462:6:19","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4533:6:19"},{"kind":"number","nodeType":"YulLiteral","src":"4541:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4529:3:19"},"nodeType":"YulFunctionCall","src":"4529:15:19"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4550:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"4555:3:19","type":"","value":"215"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4546:3:19"},"nodeType":"YulFunctionCall","src":"4546:13:19"},{"name":"length","nodeType":"YulIdentifier","src":"4561:6:19"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4494:34:19"},"nodeType":"YulFunctionCall","src":"4494:74:19"},"nodeType":"YulExpressionStatement","src":"4494:74:19"},{"nodeType":"YulVariableDeclaration","src":"4577:26:19","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4591:3:19"},{"name":"length","nodeType":"YulIdentifier","src":"4596:6:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4587:3:19"},"nodeType":"YulFunctionCall","src":"4587:16:19"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4581:2:19","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4623:2:19"},{"kind":"number","nodeType":"YulLiteral","src":"4627:3:19","type":"","value":"215"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4619:3:19"},"nodeType":"YulFunctionCall","src":"4619:12:19"},{"hexValue":"2e","kind":"string","nodeType":"YulLiteral","src":"4633:3:19","type":"","value":"."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4612:6:19"},"nodeType":"YulFunctionCall","src":"4612:25:19"},"nodeType":"YulExpressionStatement","src":"4612:25:19"},{"nodeType":"YulVariableDeclaration","src":"4646:29:19","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4668:6:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4662:5:19"},"nodeType":"YulFunctionCall","src":"4662:13:19"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"4650:8:19","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4723:6:19"},{"kind":"number","nodeType":"YulLiteral","src":"4731:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4719:3:19"},"nodeType":"YulFunctionCall","src":"4719:15:19"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4740:2:19"},{"kind":"number","nodeType":"YulLiteral","src":"4744:3:19","type":"","value":"216"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4736:3:19"},"nodeType":"YulFunctionCall","src":"4736:12:19"},{"name":"length_1","nodeType":"YulIdentifier","src":"4750:8:19"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4684:34:19"},"nodeType":"YulFunctionCall","src":"4684:75:19"},"nodeType":"YulExpressionStatement","src":"4684:75:19"},{"nodeType":"YulAssignment","src":"4768:34:19","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4783:2:19"},{"name":"length_1","nodeType":"YulIdentifier","src":"4787:8:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4779:3:19"},"nodeType":"YulFunctionCall","src":"4779:17:19"},{"kind":"number","nodeType":"YulLiteral","src":"4798:3:19","type":"","value":"216"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4775:3:19"},"nodeType":"YulFunctionCall","src":"4775:27:19"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4768:3:19"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad_t_string_memory_ptr_t_stringliteral_6f010af653ebe3cb07d297a4ef13366103d392ceffa68dd48232e6e9ff2187bf_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3976:3:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3981:6:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3989:6:19","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4000:3:19","type":""}],"src":"3619:1189:19"},{"body":{"nodeType":"YulBlock","src":"4987:172:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5004:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5015:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4997:6:19"},"nodeType":"YulFunctionCall","src":"4997:21:19"},"nodeType":"YulExpressionStatement","src":"4997:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5038:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5049:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5034:3:19"},"nodeType":"YulFunctionCall","src":"5034:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"5054:2:19","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5027:6:19"},"nodeType":"YulFunctionCall","src":"5027:30:19"},"nodeType":"YulExpressionStatement","src":"5027:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5077:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5088:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5073:3:19"},"nodeType":"YulFunctionCall","src":"5073:18:19"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"5093:24:19","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5066:6:19"},"nodeType":"YulFunctionCall","src":"5066:52:19"},"nodeType":"YulExpressionStatement","src":"5066:52:19"},{"nodeType":"YulAssignment","src":"5127:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5139:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5150:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5135:3:19"},"nodeType":"YulFunctionCall","src":"5135:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5127:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4964:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4978:4:19","type":""}],"src":"4813:346:19"},{"body":{"nodeType":"YulBlock","src":"5338:173:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5355:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5366:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5348:6:19"},"nodeType":"YulFunctionCall","src":"5348:21:19"},"nodeType":"YulExpressionStatement","src":"5348:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5389:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5400:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5385:3:19"},"nodeType":"YulFunctionCall","src":"5385:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"5405:2:19","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5378:6:19"},"nodeType":"YulFunctionCall","src":"5378:30:19"},"nodeType":"YulExpressionStatement","src":"5378:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5428:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5439:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5424:3:19"},"nodeType":"YulFunctionCall","src":"5424:18:19"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"5444:25:19","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5417:6:19"},"nodeType":"YulFunctionCall","src":"5417:53:19"},"nodeType":"YulExpressionStatement","src":"5417:53:19"},{"nodeType":"YulAssignment","src":"5479:26:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5491:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"5502:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5487:3:19"},"nodeType":"YulFunctionCall","src":"5487:18:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5479:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5315:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5329:4:19","type":""}],"src":"5164:347:19"},{"body":{"nodeType":"YulBlock","src":"5548:95:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5565:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5572:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5577:10:19","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5568:3:19"},"nodeType":"YulFunctionCall","src":"5568:20:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5558:6:19"},"nodeType":"YulFunctionCall","src":"5558:31:19"},"nodeType":"YulExpressionStatement","src":"5558:31:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5605:1:19","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5608:4:19","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5598:6:19"},"nodeType":"YulFunctionCall","src":"5598:15:19"},"nodeType":"YulExpressionStatement","src":"5598:15:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5629:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5632:4:19","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5622:6:19"},"nodeType":"YulFunctionCall","src":"5622:15:19"},"nodeType":"YulExpressionStatement","src":"5622:15:19"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"5516:127:19"},{"body":{"nodeType":"YulBlock","src":"5680:95:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5697:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5704:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5709:10:19","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5700:3:19"},"nodeType":"YulFunctionCall","src":"5700:20:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5690:6:19"},"nodeType":"YulFunctionCall","src":"5690:31:19"},"nodeType":"YulExpressionStatement","src":"5690:31:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5737:1:19","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5740:4:19","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5730:6:19"},"nodeType":"YulFunctionCall","src":"5730:15:19"},"nodeType":"YulExpressionStatement","src":"5730:15:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5761:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5764:4:19","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5754:6:19"},"nodeType":"YulFunctionCall","src":"5754:15:19"},"nodeType":"YulExpressionStatement","src":"5754:15:19"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"5648:127:19"},{"body":{"nodeType":"YulBlock","src":"5826:74:19","statements":[{"body":{"nodeType":"YulBlock","src":"5849:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"5851:16:19"},"nodeType":"YulFunctionCall","src":"5851:18:19"},"nodeType":"YulExpressionStatement","src":"5851:18:19"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5846:1:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5839:6:19"},"nodeType":"YulFunctionCall","src":"5839:9:19"},"nodeType":"YulIf","src":"5836:35:19"},{"nodeType":"YulAssignment","src":"5880:14:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5889:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"5892:1:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5885:3:19"},"nodeType":"YulFunctionCall","src":"5885:9:19"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5880:1:19"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5811:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"5814:1:19","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"5820:1:19","type":""}],"src":"5780:120:19"},{"body":{"nodeType":"YulBlock","src":"5943:74:19","statements":[{"body":{"nodeType":"YulBlock","src":"5966:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"5968:16:19"},"nodeType":"YulFunctionCall","src":"5968:18:19"},"nodeType":"YulExpressionStatement","src":"5968:18:19"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5963:1:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5956:6:19"},"nodeType":"YulFunctionCall","src":"5956:9:19"},"nodeType":"YulIf","src":"5953:35:19"},{"nodeType":"YulAssignment","src":"5997:14:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6006:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"6009:1:19"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"6002:3:19"},"nodeType":"YulFunctionCall","src":"6002:9:19"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5997:1:19"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5928:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"5931:1:19","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"5937:1:19","type":""}],"src":"5905:112:19"},{"body":{"nodeType":"YulBlock","src":"6054:95:19","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6071:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6078:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6083:10:19","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6074:3:19"},"nodeType":"YulFunctionCall","src":"6074:20:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6064:6:19"},"nodeType":"YulFunctionCall","src":"6064:31:19"},"nodeType":"YulExpressionStatement","src":"6064:31:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6111:1:19","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6114:4:19","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6104:6:19"},"nodeType":"YulFunctionCall","src":"6104:15:19"},"nodeType":"YulExpressionStatement","src":"6104:15:19"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6135:1:19","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6138:4:19","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6128:6:19"},"nodeType":"YulFunctionCall","src":"6128:15:19"},"nodeType":"YulExpressionStatement","src":"6128:15:19"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"6022:127:19"},{"body":{"nodeType":"YulBlock","src":"6202:77:19","statements":[{"nodeType":"YulAssignment","src":"6212:16:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6223:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"6226:1:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6219:3:19"},"nodeType":"YulFunctionCall","src":"6219:9:19"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"6212:3:19"}]},{"body":{"nodeType":"YulBlock","src":"6251:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6253:16:19"},"nodeType":"YulFunctionCall","src":"6253:18:19"},"nodeType":"YulExpressionStatement","src":"6253:18:19"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6243:1:19"},{"name":"sum","nodeType":"YulIdentifier","src":"6246:3:19"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6240:2:19"},"nodeType":"YulFunctionCall","src":"6240:10:19"},"nodeType":"YulIf","src":"6237:36:19"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6185:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"6188:1:19","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"6194:3:19","type":""}],"src":"6154:125:19"},{"body":{"nodeType":"YulBlock","src":"6333:221:19","statements":[{"nodeType":"YulVariableDeclaration","src":"6343:26:19","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6363:5:19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6357:5:19"},"nodeType":"YulFunctionCall","src":"6357:12:19"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6347:6:19","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6385:3:19"},{"name":"length","nodeType":"YulIdentifier","src":"6390:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6378:6:19"},"nodeType":"YulFunctionCall","src":"6378:19:19"},"nodeType":"YulExpressionStatement","src":"6378:19:19"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6445:5:19"},{"kind":"number","nodeType":"YulLiteral","src":"6452:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6441:3:19"},"nodeType":"YulFunctionCall","src":"6441:16:19"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6463:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"6468:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6459:3:19"},"nodeType":"YulFunctionCall","src":"6459:14:19"},{"name":"length","nodeType":"YulIdentifier","src":"6475:6:19"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6406:34:19"},"nodeType":"YulFunctionCall","src":"6406:76:19"},"nodeType":"YulExpressionStatement","src":"6406:76:19"},{"nodeType":"YulAssignment","src":"6491:57:19","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6506:3:19"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6519:6:19"},{"kind":"number","nodeType":"YulLiteral","src":"6527:2:19","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6515:3:19"},"nodeType":"YulFunctionCall","src":"6515:15:19"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6536:2:19","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6532:3:19"},"nodeType":"YulFunctionCall","src":"6532:7:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6511:3:19"},"nodeType":"YulFunctionCall","src":"6511:29:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6502:3:19"},"nodeType":"YulFunctionCall","src":"6502:39:19"},{"kind":"number","nodeType":"YulLiteral","src":"6543:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6498:3:19"},"nodeType":"YulFunctionCall","src":"6498:50:19"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6491:3:19"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6310:5:19","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6317:3:19","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6325:3:19","type":""}],"src":"6284:270:19"},{"body":{"nodeType":"YulBlock","src":"6872:508:19","statements":[{"nodeType":"YulVariableDeclaration","src":"6882:13:19","value":{"kind":"number","nodeType":"YulLiteral","src":"6892:3:19","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6886:2:19","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6904:29:19","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6922:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6927:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6918:3:19"},"nodeType":"YulFunctionCall","src":"6918:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"6931:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6914:3:19"},"nodeType":"YulFunctionCall","src":"6914:19:19"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6908:2:19","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6949:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6964:6:19"},{"name":"_2","nodeType":"YulIdentifier","src":"6972:2:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6960:3:19"},"nodeType":"YulFunctionCall","src":"6960:15:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6942:6:19"},"nodeType":"YulFunctionCall","src":"6942:34:19"},"nodeType":"YulExpressionStatement","src":"6942:34:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6996:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"7007:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6992:3:19"},"nodeType":"YulFunctionCall","src":"6992:18:19"},{"name":"value1","nodeType":"YulIdentifier","src":"7012:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6985:6:19"},"nodeType":"YulFunctionCall","src":"6985:34:19"},"nodeType":"YulExpressionStatement","src":"6985:34:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7039:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"7050:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7035:3:19"},"nodeType":"YulFunctionCall","src":"7035:18:19"},{"name":"value2","nodeType":"YulIdentifier","src":"7055:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7028:6:19"},"nodeType":"YulFunctionCall","src":"7028:34:19"},"nodeType":"YulExpressionStatement","src":"7028:34:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7082:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"7093:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7078:3:19"},"nodeType":"YulFunctionCall","src":"7078:18:19"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7102:6:19"},{"name":"_2","nodeType":"YulIdentifier","src":"7110:2:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7098:3:19"},"nodeType":"YulFunctionCall","src":"7098:15:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7071:6:19"},"nodeType":"YulFunctionCall","src":"7071:43:19"},"nodeType":"YulExpressionStatement","src":"7071:43:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7134:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"7145:3:19","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7130:3:19"},"nodeType":"YulFunctionCall","src":"7130:19:19"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"7155:6:19"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7167:3:19","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7172:10:19","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7163:3:19"},"nodeType":"YulFunctionCall","src":"7163:20:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7151:3:19"},"nodeType":"YulFunctionCall","src":"7151:33:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7123:6:19"},"nodeType":"YulFunctionCall","src":"7123:62:19"},"nodeType":"YulExpressionStatement","src":"7123:62:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7205:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"7216:3:19","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7201:3:19"},"nodeType":"YulFunctionCall","src":"7201:19:19"},{"name":"value5","nodeType":"YulIdentifier","src":"7222:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7194:6:19"},"nodeType":"YulFunctionCall","src":"7194:35:19"},"nodeType":"YulExpressionStatement","src":"7194:35:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7249:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"7260:3:19","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7245:3:19"},"nodeType":"YulFunctionCall","src":"7245:19:19"},{"name":"value6","nodeType":"YulIdentifier","src":"7266:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7238:6:19"},"nodeType":"YulFunctionCall","src":"7238:35:19"},"nodeType":"YulExpressionStatement","src":"7238:35:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7293:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"7304:3:19","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7289:3:19"},"nodeType":"YulFunctionCall","src":"7289:19:19"},{"name":"_1","nodeType":"YulIdentifier","src":"7310:2:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7282:6:19"},"nodeType":"YulFunctionCall","src":"7282:31:19"},"nodeType":"YulExpressionStatement","src":"7282:31:19"},{"nodeType":"YulAssignment","src":"7322:52:19","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"7347:6:19"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7359:9:19"},{"name":"_1","nodeType":"YulIdentifier","src":"7370:2:19"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7355:3:19"},"nodeType":"YulFunctionCall","src":"7355:18:19"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7330:16:19"},"nodeType":"YulFunctionCall","src":"7330:44:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7322:4:19"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6785:9:19","type":""},{"name":"value7","nodeType":"YulTypedName","src":"6796:6:19","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6804:6:19","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6812:6:19","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6820:6:19","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6828:6:19","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6836:6:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6844:6:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6852:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6863:4:19","type":""}],"src":"6559:821:19"},{"body":{"nodeType":"YulBlock","src":"7434:79:19","statements":[{"nodeType":"YulAssignment","src":"7444:17:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7456:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"7459:1:19"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7452:3:19"},"nodeType":"YulFunctionCall","src":"7452:9:19"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"7444:4:19"}]},{"body":{"nodeType":"YulBlock","src":"7485:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7487:16:19"},"nodeType":"YulFunctionCall","src":"7487:18:19"},"nodeType":"YulExpressionStatement","src":"7487:18:19"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"7476:4:19"},{"name":"x","nodeType":"YulIdentifier","src":"7482:1:19"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7473:2:19"},"nodeType":"YulFunctionCall","src":"7473:11:19"},"nodeType":"YulIf","src":"7470:37:19"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7416:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"7419:1:19","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"7425:4:19","type":""}],"src":"7385:128:19"},{"body":{"nodeType":"YulBlock","src":"7688:147:19","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7705:3:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7718:2:19","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"7722:6:19"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7714:3:19"},"nodeType":"YulFunctionCall","src":"7714:15:19"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7735:26:19","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7731:3:19"},"nodeType":"YulFunctionCall","src":"7731:31:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7710:3:19"},"nodeType":"YulFunctionCall","src":"7710:53:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7698:6:19"},"nodeType":"YulFunctionCall","src":"7698:66:19"},"nodeType":"YulExpressionStatement","src":"7698:66:19"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7784:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"7789:2:19","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7780:3:19"},"nodeType":"YulFunctionCall","src":"7780:12:19"},{"name":"value1","nodeType":"YulIdentifier","src":"7794:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7773:6:19"},"nodeType":"YulFunctionCall","src":"7773:28:19"},"nodeType":"YulExpressionStatement","src":"7773:28:19"},{"nodeType":"YulAssignment","src":"7810:19:19","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7821:3:19"},{"kind":"number","nodeType":"YulLiteral","src":"7826:2:19","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7817:3:19"},"nodeType":"YulFunctionCall","src":"7817:12:19"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7810:3:19"}]}]},"name":"abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"7656:3:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7661:6:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7669:6:19","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7680:3:19","type":""}],"src":"7518:317:19"},{"body":{"nodeType":"YulBlock","src":"8015:210:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8032:9:19"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8047:6:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8063:3:19","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8068:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8059:3:19"},"nodeType":"YulFunctionCall","src":"8059:11:19"},{"kind":"number","nodeType":"YulLiteral","src":"8072:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8055:3:19"},"nodeType":"YulFunctionCall","src":"8055:19:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8043:3:19"},"nodeType":"YulFunctionCall","src":"8043:32:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8025:6:19"},"nodeType":"YulFunctionCall","src":"8025:51:19"},"nodeType":"YulExpressionStatement","src":"8025:51:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8096:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8107:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8092:3:19"},"nodeType":"YulFunctionCall","src":"8092:18:19"},{"name":"value1","nodeType":"YulIdentifier","src":"8112:6:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8085:6:19"},"nodeType":"YulFunctionCall","src":"8085:34:19"},"nodeType":"YulExpressionStatement","src":"8085:34:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8139:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8150:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8135:3:19"},"nodeType":"YulFunctionCall","src":"8135:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"8155:2:19","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8128:6:19"},"nodeType":"YulFunctionCall","src":"8128:30:19"},"nodeType":"YulExpressionStatement","src":"8128:30:19"},{"nodeType":"YulAssignment","src":"8167:52:19","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8192:6:19"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8204:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8215:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8200:3:19"},"nodeType":"YulFunctionCall","src":"8200:18:19"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8175:16:19"},"nodeType":"YulFunctionCall","src":"8175:44:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8167:4:19"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7968:9:19","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7979:6:19","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7987:6:19","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7995:6:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8006:4:19","type":""}],"src":"7840:385:19"},{"body":{"nodeType":"YulBlock","src":"8404:225:19","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8421:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8432:2:19","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8414:6:19"},"nodeType":"YulFunctionCall","src":"8414:21:19"},"nodeType":"YulExpressionStatement","src":"8414:21:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8455:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8466:2:19","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8451:3:19"},"nodeType":"YulFunctionCall","src":"8451:18:19"},{"kind":"number","nodeType":"YulLiteral","src":"8471:2:19","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8444:6:19"},"nodeType":"YulFunctionCall","src":"8444:30:19"},"nodeType":"YulExpressionStatement","src":"8444:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8494:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8505:2:19","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8490:3:19"},"nodeType":"YulFunctionCall","src":"8490:18:19"},{"hexValue":"756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261","kind":"string","nodeType":"YulLiteral","src":"8510:34:19","type":"","value":"unable to transferAndCall to ora"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8483:6:19"},"nodeType":"YulFunctionCall","src":"8483:62:19"},"nodeType":"YulExpressionStatement","src":"8483:62:19"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8565:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8576:2:19","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8561:3:19"},"nodeType":"YulFunctionCall","src":"8561:18:19"},{"hexValue":"636c65","kind":"string","nodeType":"YulLiteral","src":"8581:5:19","type":"","value":"cle"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8554:6:19"},"nodeType":"YulFunctionCall","src":"8554:33:19"},"nodeType":"YulExpressionStatement","src":"8554:33:19"},{"nodeType":"YulAssignment","src":"8596:27:19","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8608:9:19"},{"kind":"number","nodeType":"YulLiteral","src":"8619:3:19","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8604:3:19"},"nodeType":"YulFunctionCall","src":"8604:19:19"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8596:4:19"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8381:9:19","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8395:4:19","type":""}],"src":"8230:399:19"},{"body":{"nodeType":"YulBlock","src":"8686:116:19","statements":[{"nodeType":"YulAssignment","src":"8696:20:19","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8711:1:19"},{"name":"y","nodeType":"YulIdentifier","src":"8714:1:19"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8707:3:19"},"nodeType":"YulFunctionCall","src":"8707:9:19"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"8696:7:19"}]},{"body":{"nodeType":"YulBlock","src":"8774:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8776:16:19"},"nodeType":"YulFunctionCall","src":"8776:18:19"},"nodeType":"YulExpressionStatement","src":"8776:18:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8745:1:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8738:6:19"},"nodeType":"YulFunctionCall","src":"8738:9:19"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8752:1:19"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"8759:7:19"},{"name":"x","nodeType":"YulIdentifier","src":"8768:1:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8755:3:19"},"nodeType":"YulFunctionCall","src":"8755:15:19"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8749:2:19"},"nodeType":"YulFunctionCall","src":"8749:22:19"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"8735:2:19"},"nodeType":"YulFunctionCall","src":"8735:37:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8728:6:19"},"nodeType":"YulFunctionCall","src":"8728:45:19"},"nodeType":"YulIf","src":"8725:71:19"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8665:1:19","type":""},{"name":"y","nodeType":"YulTypedName","src":"8668:1:19","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"8674:7:19","type":""}],"src":"8634:168:19"},{"body":{"nodeType":"YulBlock","src":"8871:358:19","statements":[{"nodeType":"YulVariableDeclaration","src":"8881:16:19","value":{"kind":"number","nodeType":"YulLiteral","src":"8896:1:19","type":"","value":"1"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"8885:7:19","type":""}]},{"nodeType":"YulAssignment","src":"8906:16:19","value":{"name":"power_1","nodeType":"YulIdentifier","src":"8915:7:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8906:5:19"}]},{"nodeType":"YulAssignment","src":"8931:13:19","value":{"name":"_base","nodeType":"YulIdentifier","src":"8939:5:19"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"8931:4:19"}]},{"body":{"nodeType":"YulBlock","src":"8995:228:19","statements":[{"body":{"nodeType":"YulBlock","src":"9040:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9042:16:19"},"nodeType":"YulFunctionCall","src":"9042:18:19"},"nodeType":"YulExpressionStatement","src":"9042:18:19"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9015:4:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9029:1:19","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9025:3:19"},"nodeType":"YulFunctionCall","src":"9025:6:19"},{"name":"base","nodeType":"YulIdentifier","src":"9033:4:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9021:3:19"},"nodeType":"YulFunctionCall","src":"9021:17:19"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9012:2:19"},"nodeType":"YulFunctionCall","src":"9012:27:19"},"nodeType":"YulIf","src":"9009:53:19"},{"body":{"nodeType":"YulBlock","src":"9101:29:19","statements":[{"nodeType":"YulAssignment","src":"9103:25:19","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"9116:5:19"},{"name":"base","nodeType":"YulIdentifier","src":"9123:4:19"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"9112:3:19"},"nodeType":"YulFunctionCall","src":"9112:16:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9103:5:19"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9082:8:19"},{"name":"power_1","nodeType":"YulIdentifier","src":"9092:7:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9078:3:19"},"nodeType":"YulFunctionCall","src":"9078:22:19"},"nodeType":"YulIf","src":"9075:55:19"},{"nodeType":"YulAssignment","src":"9143:23:19","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9155:4:19"},{"name":"base","nodeType":"YulIdentifier","src":"9161:4:19"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"9151:3:19"},"nodeType":"YulFunctionCall","src":"9151:15:19"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"9143:4:19"}]},{"nodeType":"YulAssignment","src":"9179:34:19","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"9195:7:19"},{"name":"exponent","nodeType":"YulIdentifier","src":"9204:8:19"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"9191:3:19"},"nodeType":"YulFunctionCall","src":"9191:22:19"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"9179:8:19"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"8964:8:19"},{"name":"power_1","nodeType":"YulIdentifier","src":"8974:7:19"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8961:2:19"},"nodeType":"YulFunctionCall","src":"8961:21:19"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8983:3:19","statements":[]},"pre":{"nodeType":"YulBlock","src":"8957:3:19","statements":[]},"src":"8953:270:19"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nodeType":"YulTypedName","src":"8835:5:19","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"8842:8:19","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"8855:5:19","type":""},{"name":"base","nodeType":"YulTypedName","src":"8862:4:19","type":""}],"src":"8807:422:19"},{"body":{"nodeType":"YulBlock","src":"9293:747:19","statements":[{"body":{"nodeType":"YulBlock","src":"9331:52:19","statements":[{"nodeType":"YulAssignment","src":"9345:10:19","value":{"kind":"number","nodeType":"YulLiteral","src":"9354:1:19","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9345:5:19"}]},{"nodeType":"YulLeave","src":"9368:5:19"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9313:8:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9306:6:19"},"nodeType":"YulFunctionCall","src":"9306:16:19"},"nodeType":"YulIf","src":"9303:80:19"},{"body":{"nodeType":"YulBlock","src":"9416:52:19","statements":[{"nodeType":"YulAssignment","src":"9430:10:19","value":{"kind":"number","nodeType":"YulLiteral","src":"9439:1:19","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9430:5:19"}]},{"nodeType":"YulLeave","src":"9453:5:19"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9402:4:19"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9395:6:19"},"nodeType":"YulFunctionCall","src":"9395:12:19"},"nodeType":"YulIf","src":"9392:76:19"},{"cases":[{"body":{"nodeType":"YulBlock","src":"9504:52:19","statements":[{"nodeType":"YulAssignment","src":"9518:10:19","value":{"kind":"number","nodeType":"YulLiteral","src":"9527:1:19","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9518:5:19"}]},{"nodeType":"YulLeave","src":"9541:5:19"}]},"nodeType":"YulCase","src":"9497:59:19","value":{"kind":"number","nodeType":"YulLiteral","src":"9502:1:19","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"9572:123:19","statements":[{"body":{"nodeType":"YulBlock","src":"9607:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9609:16:19"},"nodeType":"YulFunctionCall","src":"9609:18:19"},"nodeType":"YulExpressionStatement","src":"9609:18:19"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9592:8:19"},{"kind":"number","nodeType":"YulLiteral","src":"9602:3:19","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9589:2:19"},"nodeType":"YulFunctionCall","src":"9589:17:19"},"nodeType":"YulIf","src":"9586:43:19"},{"nodeType":"YulAssignment","src":"9642:25:19","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9655:8:19"},{"kind":"number","nodeType":"YulLiteral","src":"9665:1:19","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9651:3:19"},"nodeType":"YulFunctionCall","src":"9651:16:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9642:5:19"}]},{"nodeType":"YulLeave","src":"9680:5:19"}]},"nodeType":"YulCase","src":"9565:130:19","value":{"kind":"number","nodeType":"YulLiteral","src":"9570:1:19","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"9484:4:19"},"nodeType":"YulSwitch","src":"9477:218:19"},{"body":{"nodeType":"YulBlock","src":"9793:70:19","statements":[{"nodeType":"YulAssignment","src":"9807:28:19","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9820:4:19"},{"name":"exponent","nodeType":"YulIdentifier","src":"9826:8:19"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"9816:3:19"},"nodeType":"YulFunctionCall","src":"9816:19:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"9807:5:19"}]},{"nodeType":"YulLeave","src":"9848:5:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9717:4:19"},{"kind":"number","nodeType":"YulLiteral","src":"9723:2:19","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9714:2:19"},"nodeType":"YulFunctionCall","src":"9714:12:19"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9731:8:19"},{"kind":"number","nodeType":"YulLiteral","src":"9741:2:19","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9728:2:19"},"nodeType":"YulFunctionCall","src":"9728:16:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9710:3:19"},"nodeType":"YulFunctionCall","src":"9710:35:19"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9754:4:19"},{"kind":"number","nodeType":"YulLiteral","src":"9760:3:19","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9751:2:19"},"nodeType":"YulFunctionCall","src":"9751:13:19"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"9769:8:19"},{"kind":"number","nodeType":"YulLiteral","src":"9779:2:19","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9766:2:19"},"nodeType":"YulFunctionCall","src":"9766:16:19"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9747:3:19"},"nodeType":"YulFunctionCall","src":"9747:36:19"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9707:2:19"},"nodeType":"YulFunctionCall","src":"9707:77:19"},"nodeType":"YulIf","src":"9704:159:19"},{"nodeType":"YulVariableDeclaration","src":"9872:57:19","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"9914:4:19"},{"name":"exponent","nodeType":"YulIdentifier","src":"9920:8:19"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"9895:18:19"},"nodeType":"YulFunctionCall","src":"9895:34:19"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"9876:7:19","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"9885:6:19","type":""}]},{"body":{"nodeType":"YulBlock","src":"9974:22:19","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9976:16:19"},"nodeType":"YulFunctionCall","src":"9976:18:19"},"nodeType":"YulExpressionStatement","src":"9976:18:19"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"9944:7:19"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9961:1:19","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9957:3:19"},"nodeType":"YulFunctionCall","src":"9957:6:19"},{"name":"base_1","nodeType":"YulIdentifier","src":"9965:6:19"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9953:3:19"},"nodeType":"YulFunctionCall","src":"9953:19:19"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9941:2:19"},"nodeType":"YulFunctionCall","src":"9941:32:19"},"nodeType":"YulIf","src":"9938:58:19"},{"nodeType":"YulAssignment","src":"10005:29:19","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"10018:7:19"},{"name":"base_1","nodeType":"YulIdentifier","src":"10027:6:19"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"10014:3:19"},"nodeType":"YulFunctionCall","src":"10014:20:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"10005:5:19"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"9264:4:19","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"9270:8:19","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"9283:5:19","type":""}],"src":"9234:806:19"},{"body":{"nodeType":"YulBlock","src":"10115:61:19","statements":[{"nodeType":"YulAssignment","src":"10125:45:19","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"10155:4:19"},{"name":"exponent","nodeType":"YulIdentifier","src":"10161:8:19"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"10134:20:19"},"nodeType":"YulFunctionCall","src":"10134:36:19"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"10125:5:19"}]}]},"name":"checked_exp_t_uint256_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"10086:4:19","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"10092:8:19","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"10105:5:19","type":""}],"src":"10045:131:19"}]},"contents":"{\n { }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"Source must be the oracle of the\")\n mstore(add(headStart, 96), \" request\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Unable to transfer\")\n tail := add(headStart, 96)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_tuple_packed_t_stringliteral_b5d07dc9f1a3e354514e8ea0c17d5db93094d279898d8f54b4fa59c535979dad_t_string_memory_ptr_t_stringliteral_6f010af653ebe3cb07d297a4ef13366103d392ceffa68dd48232e6e9ff2187bf_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, \"https://api-stg.transak.com/api/\")\n mstore(add(pos, 32), \"v2/currencies/price?partnerApiKe\")\n mstore(add(pos, 64), \"y=062525f0-856b-4302-9d48-8b690b\")\n mstore(add(pos, 96), \"b5e634&fiatCurrency=USD&cryptoCu\")\n mstore(add(pos, 128), \"rrency=ETH&isBuyOrSell=BUY&netwo\")\n mstore(add(pos, 160), \"rk=ethereum&paymentMethod=credit\")\n mstore(add(pos, 192), \"_debit_card&fiatAmount=\")\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 32), add(pos, 215), length)\n let _1 := add(pos, length)\n mstore(add(_1, 215), \".\")\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 32), add(_1, 216), length_1)\n end := add(add(_1, length_1), 216)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 256\n let _2 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _2))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, shl(224, 0xffffffff)))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), _1)\n tail := abi_encode_bytes(value7, add(headStart, _1))\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), value1)\n end := add(pos, 52)\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"unable to transferAndCall to ora\")\n mstore(add(headStart, 96), \"cle\")\n tail := add(headStart, 128)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function checked_exp_helper(_base, exponent) -> power, base\n {\n let power_1 := 1\n power := power_1\n base := _base\n for { } gt(exponent, power_1) { }\n {\n if gt(base, div(not(0), base)) { panic_error_0x11() }\n if and(exponent, power_1) { power := mul(power, base) }\n base := mul(base, base)\n exponent := shr(power_1, exponent)\n }\n }\n function checked_exp_unsigned(base, exponent) -> power\n {\n if iszero(exponent)\n {\n power := 1\n leave\n }\n if iszero(base)\n {\n power := 0\n leave\n }\n switch base\n case 1 {\n power := 1\n leave\n }\n case 2 {\n if gt(exponent, 255) { panic_error_0x11() }\n power := shl(exponent, 1)\n leave\n }\n if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n {\n power := exp(base, exponent)\n leave\n }\n let power_1, base_1 := checked_exp_helper(base, exponent)\n if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n power := mul(power_1, base_1)\n }\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power\n {\n power := checked_exp_unsigned(base, exponent)\n }\n}","id":19,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c5780639e2f9084116100665780639e2f9084146101b2578063df78abe6146101d2578063ea21b098146101db578063f2fde38b146101e457600080fd5b80638da5cb5b146101865780638dc654a21461019757806393232d9f1461019f57600080fd5b80634357855e116100c85780634357855e1461014457806343e1ca491461015957806350ed6a951461017657806379ba50971461017e57600080fd5b8063350844ce146100ef57806338af3eed1461010b578063403a77611461013b575b600080fd5b6100f8600b5481565b6040519081526020015b60405180910390f35b600e546101239061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610102565b6100f8600a5481565b61015761015236600461121c565b6101f7565b005b600e546101669060ff1681565b6040519015158152602001610102565b6100f86102c8565b610157610374565b6006546001600160a01b0316610123565b610157610422565b6101576101ad36600461121c565b610571565b6100f86101c036600461123e565b600d6020526000908152604090205481565b6100f860085481565b6100f860095481565b6101576101f2366004611257565b610638565b60008281526005602052604090205482906001600160a01b031633146102385760405162461bcd60e51b815260040161022f90611287565b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0836040516102ad91815260200190565b60405180910390a260088290556102c2610649565b50505050565b6000806102df600a5430634357855e60e01b610781565b90506103216040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c81526020016116ca604c91398391906107a6565b610362604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001611716602f91398391906107a6565b61036e81600c546107c4565b91505090565b6007546001600160a01b031633146103c75760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161022f565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b61042a6107e7565b600061043e6002546001600160a01b031690565b600e546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb9261010090049091169083906370a0823190602401602060405180830381865afa15801561049a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104be91906112cf565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052d91906112e8565b61056e5760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161022f565b50565b60008281526005602052604090205482906001600160a01b031633146105a95760405162461bcd60e51b815260040161022f90611287565b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f2e48c207bbe18ca424eae69ca096badb69cc821f8cb72b42f49599f3390a3b1c8360405161061e91815260200190565b60405180910390a2600982905561063361083c565b505050565b6106406107e7565b61056e81610900565b600080610660600b54306393232d9f60e01b610781565b90506000610673600854620f42406109aa565b90506000610686600854620f42406109b6565b90506000610693836109c2565b61069c836109c2565b6040516020016106ad92919061132e565b60408051601f19818403018152828201909152600382526219d95d60ea1b602083015291506106de908590836107a6565b61073c604051806040016040528060048152602001630e0c2e8d60e31b815250604051806040016040528060158152602001741c995cdc1bdb9cd94b18dc9e5c1d1bd05b5bdd5b9d605a1b815250866107a69092919063ffffffff16565b60408051808201909152600581526474696d657360d81b602082015261076c908590670de0b6b3a7640000610a55565b61077884600c546107c4565b94505050505090565b6107896111e1565b6107916111e1565b61079d81868686610a73565b95945050505050565b60808301516107b59083610ab9565b60808301516106339082610ab9565b6003546000906107de906001600160a01b03168484610ad0565b90505b92915050565b6006546001600160a01b0316331461083a5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161022f565b565b60006108506002546001600160a01b031690565b600954600e546040516370a0823160e01b81526101009091046001600160a01b03908116600483015292935090918316906370a0823190602401602060405180830381865afa1580156108a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cb91906112cf565b036108f357600854436000908152600d6020526040902055600e805460ff1916600117905550565b600e805460ff1916905550565b336001600160a01b038216036109585760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161022f565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b60006107de82846114a3565b60006107de82846114b7565b606060006109cf83610b63565b600101905060008167ffffffffffffffff8111156109ef576109ef6114cb565b6040519080825280601f01601f191660200182016040528015610a19576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a2357509392505050565b6080830151610a649083610ab9565b60808301516106339082610c3b565b610a7b6111e1565b610a8b8560800151610100610c65565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b610ac68260038351610cca565b6106338282610dd9565b600454600090610ae18160016114e1565b600455835160408086015160808701515191516000936320214ca360e11b93610b199386938493923092918a91600191602401611520565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610b5986838684610e00565b9695505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ba25772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610bce576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610bec57662386f26fc10000830492506010015b6305f5e1008310610c04576305f5e100830492506008015b6127108310610c1857612710830492506004015b60648310610c2a576064830492506002015b600a83106107e15760010192915050565b67ffffffffffffffff811115610c5957610c558282610f5e565b5050565b610c5582600083610cca565b604080518082019091526060815260006020820152610c856020836114b7565b15610cad57610c956020836114b7565b610ca0906020611588565b610caa90836114e1565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff1611610cef576102c28360e0600585901b168317610f95565b60ff8167ffffffffffffffff1611610d2d57610d16836018611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166001610fba565b61ffff8167ffffffffffffffff1611610d6c57610d55836019611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166002610fba565b63ffffffff8167ffffffffffffffff1611610dad57610d9683601a611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166004610fba565b610dc283601b611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166008610fba565b6040805180820190915260608152600060208201526107de83846000015151848551610fe0565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea090610ec39088908790879060040161159b565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0691906112e8565b610ab15760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161022f565b610f698260c2610f95565b50610c558282604051602001610f8191815260200190565b6040516020818303038152906040526110ca565b6040805180820190915260608152600060208201526107de83846000015151846110d7565b604080518082019091526060815260006020820152610ab1848560000151518585611132565b604080518082019091526060815260006020820152825182111561100357600080fd5b602085015161101283866114e1565b111561104557611045856110358760200151878661103091906114e1565b6111b3565b6110409060026115c2565b6111ca565b6000808651805187602083010193508088870111156110645787860182525b505050602084015b602084106110a457805182526110836020836114e1565b91506110906020826114e1565b905061109d602085611588565b935061106c565b51815160001960208690036101000a019081169019919091161790525083949350505050565b610ac68260028351610cca565b6040805180820190915260608152600060208201528360200151831061110c5761110c848560200151600261104091906115c2565b8351805160208583010184815350808503611128576001810182525b5093949350505050565b604080518082019091526060815260006020820152602085015161115685846114e1565b111561116a5761116a8561103586856114e1565b6000600161117a846101006116bd565b6111849190611588565b90508551838682010185831982511617815250805184870111156111a85783860181525b509495945050505050565b6000818311156111c45750816107e1565b50919050565b81516111d68383610c65565b506102c28382610dd9565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000806040838503121561122f57600080fd5b50508035926020909101359150565b60006020828403121561125057600080fd5b5035919050565b60006020828403121561126957600080fd5b81356001600160a01b038116811461128057600080fd5b9392505050565b60208082526028908201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604082015267081c995c5d595cdd60c21b606082015260800190565b6000602082840312156112e157600080fd5b5051919050565b6000602082840312156112fa57600080fd5b8151801515811461128057600080fd5b60005b8381101561132557818101518382015260200161130d565b50506000910152565b7f68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f81527f76322f63757272656e636965732f70726963653f706172746e65724170694b6560208201527f793d30363235323566302d383536622d343330322d396434382d38623639306260408201527f623565363334266669617443757272656e63793d5553442663727970746f437560608201527f7272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f60808201527f726b3d657468657265756d267061796d656e744d6574686f643d63726564697460a08201527f5f64656269745f636172642666696174416d6f756e743d00000000000000000060c08201526000835161144a8160d785016020880161130a565b601760f91b60d791840191820152835161146b8160d884016020880161130a565b0160d801949350505050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826114b2576114b2611477565b500490565b6000826114c6576114c6611477565b500690565b634e487b7160e01b600052604160045260246000fd5b808201808211156107e1576107e161148d565b6000815180845261150c81602086016020860161130a565b601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e08201819052600090611579838201856114f4565b9b9a5050505050505050505050565b818103818111156107e1576107e161148d565b60018060a01b038416815282602082015260606040820152600061079d60608301846114f4565b80820281158282048414176107e1576107e161148d565b600181815b808511156116145781600019048211156115fa576115fa61148d565b8085161561160757918102915b93841c93908002906115de565b509250929050565b60008261162b575060016107e1565b81611638575060006107e1565b816001811461164e576002811461165857611674565b60019150506107e1565b60ff8411156116695761166961148d565b50506001821b6107e1565b5060208310610133831016604e8410600b8410161715611697575081810a6107e1565b6116a183836115d9565b80600019048211156116b5576116b561148d565b029392505050565b60006107de838361161c56fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a2646970667358221220229cc24227ac35cd69ee2057cfd931d5c4b6ae5b5699709a5f88b5e4ae541d9364736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x9E2F9084 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x9E2F9084 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0xDF78ABE6 EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0xEA21B098 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x93232D9F EQ PUSH2 0x19F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4357855E GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x4357855E EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x43E1CA49 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x50ED6A95 EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x350844CE EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x38AF3EED EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x403A7761 EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0xE SLOAD PUSH2 0x123 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x121C JUMP JUMPDEST PUSH2 0x1F7 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x166 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x2C8 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x123 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x422 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1AD CALLDATASIZE PUSH1 0x4 PUSH2 0x121C JUMP JUMPDEST PUSH2 0x571 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x1C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x123E JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1257 JUMP JUMPDEST PUSH2 0x638 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x1287 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x9721E7802F825C56833DB455A0081C7DD8C7DA03ED285E582C2AF90DD7D442C0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2AD SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x8 DUP3 SWAP1 SSTORE PUSH2 0x2C2 PUSH2 0x649 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2DF PUSH1 0xA SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x781 JUMP JUMPDEST SWAP1 POP PUSH2 0x321 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x19D95D PUSH1 0xEA SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16CA PUSH1 0x4C SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x362 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1716 PUSH1 0x2F SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x36E DUP2 PUSH1 0xC SLOAD PUSH2 0x7C4 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP3 AND CALLER SWAP1 DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x42A PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43E PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 PUSH2 0x100 SWAP1 DIV SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x49A 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 0x4BE SWAP2 SWAP1 PUSH2 0x12CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x509 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 0x52D SWAP2 SWAP1 PUSH2 0x12E8 JUMP JUMPDEST PUSH2 0x56E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x2AB730B13632903A37903A3930B739B332B9 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5A9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F SWAP1 PUSH2 0x1287 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x2E48C207BBE18CA424EAE69CA096BADB69CC821F8CB72B42F49599F3390A3B1C DUP4 PUSH1 0x40 MLOAD PUSH2 0x61E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x9 DUP3 SWAP1 SSTORE PUSH2 0x633 PUSH2 0x83C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x640 PUSH2 0x7E7 JUMP JUMPDEST PUSH2 0x56E DUP2 PUSH2 0x900 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x660 PUSH1 0xB SLOAD ADDRESS PUSH4 0x93232D9F PUSH1 0xE0 SHL PUSH2 0x781 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x673 PUSH1 0x8 SLOAD PUSH3 0xF4240 PUSH2 0x9AA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x686 PUSH1 0x8 SLOAD PUSH3 0xF4240 PUSH2 0x9B6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x693 DUP4 PUSH2 0x9C2 JUMP JUMPDEST PUSH2 0x69C DUP4 PUSH2 0x9C2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x6AD SWAP3 SWAP2 SWAP1 PUSH2 0x132E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH3 0x19D95D PUSH1 0xEA SHL PUSH1 0x20 DUP4 ADD MSTORE SWAP2 POP PUSH2 0x6DE SWAP1 DUP6 SWAP1 DUP4 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x73C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH21 0x1C995CDC1BDB9CD94B18DC9E5C1D1BD05B5BDD5B9D PUSH1 0x5A SHL DUP2 MSTORE POP DUP7 PUSH2 0x7A6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH5 0x74696D6573 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x76C SWAP1 DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 PUSH2 0xA55 JUMP JUMPDEST PUSH2 0x778 DUP5 PUSH1 0xC SLOAD PUSH2 0x7C4 JUMP JUMPDEST SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x789 PUSH2 0x11E1 JUMP JUMPDEST PUSH2 0x791 PUSH2 0x11E1 JUMP JUMPDEST PUSH2 0x79D DUP2 DUP7 DUP7 DUP7 PUSH2 0xA73 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x7B5 SWAP1 DUP4 PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x633 SWAP1 DUP3 PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x7DE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0xAD0 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x83A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x850 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP1 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8A7 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 0x8CB SWAP2 SWAP1 PUSH2 0x12CF JUMP JUMPDEST SUB PUSH2 0x8F3 JUMPI PUSH1 0x8 SLOAD NUMBER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x958 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DE DUP3 DUP5 PUSH2 0x14A3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DE DUP3 DUP5 PUSH2 0x14B7 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9CF DUP4 PUSH2 0xB63 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9EF JUMPI PUSH2 0x9EF PUSH2 0x14CB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xA19 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xA23 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xA64 SWAP1 DUP4 PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x633 SWAP1 DUP3 PUSH2 0xC3B JUMP JUMPDEST PUSH2 0xA7B PUSH2 0x11E1 JUMP JUMPDEST PUSH2 0xA8B DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0xC65 JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xAC6 DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0xCCA JUMP JUMPDEST PUSH2 0x633 DUP3 DUP3 PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xAE1 DUP2 PUSH1 0x1 PUSH2 0x14E1 JUMP JUMPDEST PUSH1 0x4 SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0xB19 SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x1520 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0xB59 DUP7 DUP4 DUP7 DUP5 PUSH2 0xE00 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xBA2 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xBCE JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xBEC JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xC04 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xC18 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xC2A JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x7E1 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC59 JUMPI PUSH2 0xC55 DUP3 DUP3 PUSH2 0xF5E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC55 DUP3 PUSH1 0x0 DUP4 PUSH2 0xCCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xC85 PUSH1 0x20 DUP4 PUSH2 0x14B7 JUMP JUMPDEST ISZERO PUSH2 0xCAD JUMPI PUSH2 0xC95 PUSH1 0x20 DUP4 PUSH2 0x14B7 JUMP JUMPDEST PUSH2 0xCA0 SWAP1 PUSH1 0x20 PUSH2 0x1588 JUMP JUMPDEST PUSH2 0xCAA SWAP1 DUP4 PUSH2 0x14E1 JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xCEF JUMPI PUSH2 0x2C2 DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0xF95 JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xD2D JUMPI PUSH2 0xD16 DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xF95 JUMP JUMPDEST POP PUSH2 0x2C2 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0xFBA JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xD6C JUMPI PUSH2 0xD55 DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xF95 JUMP JUMPDEST POP PUSH2 0x2C2 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0xFBA JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0xDAD JUMPI PUSH2 0xD96 DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xF95 JUMP JUMPDEST POP PUSH2 0x2C2 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0xFBA JUMP JUMPDEST PUSH2 0xDC2 DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xF95 JUMP JUMPDEST POP PUSH2 0x2C2 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0xFBA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x7DE DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xFE0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0xEC3 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x159B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEE2 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 0xF06 SWAP2 SWAP1 PUSH2 0x12E8 JUMP JUMPDEST PUSH2 0xAB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x22F JUMP JUMPDEST PUSH2 0xF69 DUP3 PUSH1 0xC2 PUSH2 0xF95 JUMP JUMPDEST POP PUSH2 0xC55 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF81 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x10CA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x7DE DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x10D7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xAB1 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1132 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0x1003 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x1012 DUP4 DUP7 PUSH2 0x14E1 JUMP JUMPDEST GT ISZERO PUSH2 0x1045 JUMPI PUSH2 0x1045 DUP6 PUSH2 0x1035 DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0x1030 SWAP2 SWAP1 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x11B3 JUMP JUMPDEST PUSH2 0x1040 SWAP1 PUSH1 0x2 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0x11CA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0x1064 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0x10A4 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0x1083 PUSH1 0x20 DUP4 PUSH2 0x14E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x1090 PUSH1 0x20 DUP3 PUSH2 0x14E1 JUMP JUMPDEST SWAP1 POP PUSH2 0x109D PUSH1 0x20 DUP6 PUSH2 0x1588 JUMP JUMPDEST SWAP4 POP PUSH2 0x106C JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xAC6 DUP3 PUSH1 0x2 DUP4 MLOAD PUSH2 0xCCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x110C JUMPI PUSH2 0x110C DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0x1040 SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 SUB PUSH2 0x1128 JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x1156 DUP6 DUP5 PUSH2 0x14E1 JUMP JUMPDEST GT ISZERO PUSH2 0x116A JUMPI PUSH2 0x116A DUP6 PUSH2 0x1035 DUP7 DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x117A DUP5 PUSH2 0x100 PUSH2 0x16BD JUMP JUMPDEST PUSH2 0x1184 SWAP2 SWAP1 PUSH2 0x1588 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0x11A8 JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x11C4 JUMPI POP DUP2 PUSH2 0x7E1 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x11D6 DUP4 DUP4 PUSH2 0xC65 JUMP JUMPDEST POP PUSH2 0x2C2 DUP4 DUP3 PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x122F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1250 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x40 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1325 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x130D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x68747470733A2F2F6170692D7374672E7472616E73616B2E636F6D2F6170692F DUP2 MSTORE PUSH32 0x76322F63757272656E636965732F70726963653F706172746E65724170694B65 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x793D30363235323566302D383536622D343330322D396434382D386236393062 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x623565363334266669617443757272656E63793D5553442663727970746F4375 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x7272656E63793D4554482669734275794F7253656C6C3D425559266E6574776F PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x726B3D657468657265756D267061796D656E744D6574686F643D637265646974 PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x5F64656269745F636172642666696174416D6F756E743D000000000000000000 PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x144A DUP2 PUSH1 0xD7 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x130A JUMP JUMPDEST PUSH1 0x17 PUSH1 0xF9 SHL PUSH1 0xD7 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x146B DUP2 PUSH1 0xD8 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x130A JUMP JUMPDEST ADD PUSH1 0xD8 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x14B2 JUMPI PUSH2 0x14B2 PUSH2 0x1477 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x14C6 JUMPI PUSH2 0x14C6 PUSH2 0x1477 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x7E1 JUMPI PUSH2 0x7E1 PUSH2 0x148D JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x150C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x130A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1579 DUP4 DUP3 ADD DUP6 PUSH2 0x14F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x7E1 JUMPI PUSH2 0x7E1 PUSH2 0x148D JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x79D PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x14F4 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x7E1 JUMPI PUSH2 0x7E1 PUSH2 0x148D JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0x1614 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x15FA JUMPI PUSH2 0x15FA PUSH2 0x148D JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0x1607 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0x15DE JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x162B JUMPI POP PUSH1 0x1 PUSH2 0x7E1 JUMP JUMPDEST DUP2 PUSH2 0x1638 JUMPI POP PUSH1 0x0 PUSH2 0x7E1 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x164E JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1658 JUMPI PUSH2 0x1674 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x7E1 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1669 JUMPI PUSH2 0x1669 PUSH2 0x148D JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x7E1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1697 JUMPI POP DUP2 DUP2 EXP PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x16A1 DUP4 DUP4 PUSH2 0x15D9 JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x16B5 JUMPI PUSH2 0x16B5 PUSH2 0x148D JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DE DUP4 DUP4 PUSH2 0x161C JUMP INVALID PUSH9 0x747470733A2F2F7465 PUSH20 0x746170692E696F2F6170692F48617964656E2F76 BALANCE 0x2F PUSH2 0x6363 PUSH16 0x756E74732F7075622D39393838373736 CALLDATASIZE CALLDATALOAD CALLDATALOAD CALLVALUE CALLVALUE CALLER CALLER ORIGIN ORIGIN 0x2F PUSH15 0x6574776F726B5265706F7274726F77 0x2C PUSH14 0x657472696356616C7565732C4553 SLOAD 0x49 0x4D COINBASE SLOAD GASLIMIT DIFFICULTY 0x5F GASLIMIT COINBASE MSTORE 0x4E 0x49 0x4E SELFBALANCE MSTORE8 0x2C PUSH14 0x6963726F7356616C7565A2646970 PUSH7 0x7358221220229C 0xC2 TIMESTAMP 0x27 0xAC CALLDATALOAD 0xCD PUSH10 0xEE2057CFD931D5C4B6AE JUMPDEST JUMP SWAP10 PUSH17 0x9A5F88B5E4AE541D9364736F6C63430008 GT STOP CALLER ","sourceMap":"288:5131:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;682:27;;;;;;;;;160:25:19;;;148:2;133:18;682:27:18;;;;;;;;1037:26;;;;;;;;-1:-1:-1;;;;;1037:26:18;;;;;;-1:-1:-1;;;;;360:32:19;;;342:51;;330:2;315:18;1037:26:18;196:203:19;654:22:18;;;;;;2886:368;;;;;;:::i;:::-;;:::i;:::-;;796:22;;;;;;;;;;;;822:14:19;;815:22;797:41;;785:2;770:18;796:22:18;657:187:19;2232:573:18;;;:::i;1016:265:3:-;;;:::i;1332:81::-;1401:7;;-1:-1:-1;;;;;1401:7:3;1332:81;;4833:259:18;;;:::i;4289:393::-;;;;;;:::i;:::-;;:::i;741:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;466:22;;;;;;562:25;;;;;;826:98:3;;;;;;:::i;:::-;;:::i;2886:368:18:-;11663:28:1;;;;:17;:28;;;;;;;;-1:-1:-1;;;;;11663:28:1;11649:10;:42;11641:95;;;;-1:-1:-1;;;11641:95:1;;;;;;;:::i;:::-;;;;;;;;;11749:28;;;;:17;:28;;;;;;11742:35;;-1:-1:-1;;;;;;11742:35:1;;;11788:29;11767:9;;11788:29;;;3039:10:18::1;3024:36;3051:8;3024:36;;;;160:25:19::0;;148:2;133:18;;14:177;3024:36:18::1;;;;;;;;3192:7;:18:::0;;;3220:27:::1;:25;:27::i;:::-;;2886:368:::0;;;:::o;2232:573::-;2278:17;2307:28;2338:114;2373:7;;2402:4;2421:21;;;2338;:114::i;:::-;2307:145;;2516:128;;;;;;;;;;;;;;-1:-1:-1;;;2516:128:18;;;;;;;;;;;;;;;;;;;;:3;;:128;:7;:128::i;:::-;2655:66;;;;;;;;;;;;;;-1:-1:-1;;;2655:66:18;;;;;;;;;;;;;;;;;;;;:3;;:66;:7;:66::i;:::-;2768:30;2789:3;2794;;2768:20;:30::i;:::-;2761:37;;;2232:573;:::o;1016:265:3:-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;2118:2:19;1067:63:3;;;2100:21:19;2157:2;2137:18;;;2130:30;-1:-1:-1;;;2176:18:19;;;2169:52;2238:18;;1067:63:3;1916:346:19;1067:63:3;1156:7;;;-1:-1:-1;;;;;;1169:20:3;;;1179:10;1169:20;;;;;;1195:14;:27;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;1156:7;;1234:42;;1137:16;;1234:42;1061:220;1016:265::o;4833:259:18:-;1956:20:3;:18;:20::i;:::-;4884:23:18::1;4929;9184:6:1::0;;-1:-1:-1;;;;;9184:6:1;;9098:98;4929:23:18::1;4998:11;::::0;5011:29:::1;::::0;-1:-1:-1;;;5011:29:18;;5034:4:::1;5011:29;::::0;::::1;342:51:19::0;4884:69:18;;-1:-1:-1;;;;;;4984:13:18;;::::1;::::0;::::1;::::0;4998:11:::1;::::0;::::1;::::0;;::::1;::::0;4984:13;;5011:14:::1;::::0;315:18:19;;5011:29:18::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4984:57;::::0;-1:-1:-1;;;;;;4984:57:18::1;::::0;;;;;;-1:-1:-1;;;;;2648:32:19;;;4984:57:18::1;::::0;::::1;2630:51:19::0;2697:18;;;2690:34;2603:18;;4984:57:18::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4963:122;;;::::0;-1:-1:-1;;;4963:122:18;;3219:2:19;4963:122:18::1;::::0;::::1;3201:21:19::0;3258:2;3238:18;;;3231:30;-1:-1:-1;;;3277:18:19;;;3270:48;3335:18;;4963:122:18::1;3017:342:19::0;4963:122:18::1;4874:218;4833:259::o:0;4289:393::-;11663:28:1;;;;:17;:28;;;;;;;;-1:-1:-1;;;;;11663:28:1;11649:10;:42;11641:95;;;;-1:-1:-1;;;11641:95:1;;;;;;;:::i;:::-;11749:28;;;;:17;:28;;;;;;11742:35;;-1:-1:-1;;;;;;11742:35:1;;;11788:29;11767:9;;11788:29;;;4462:10:18::1;4442:44;4474:11;4442:44;;;;160:25:19::0;;148:2;133:18;;14:177;4442:44:18::1;;;;;;;;4618:10;:24:::0;;;4652:23:::1;:21;:23::i;:::-;4289:393:::0;;;:::o;826:98:3:-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;3260:1023:18:-:0;3314:17;3343:28;3374:131;3409:12;;3443:4;3462:33;;;3374:21;:131::i;:::-;3343:162;;3516:19;3538:29;3551:7;;3559;3538:12;:29::i;:::-;3516:51;;3577:19;3599:29;3612:7;;3620;3599:12;:29::i;:::-;3577:51;;3639:20;3914:29;3931:11;3914:16;:29::i;:::-;3948;3965:11;3948:16;:29::i;:::-;3669:309;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3669:309:18;;;;;;4043:56;;;;;;;;;-1:-1:-1;;;3669:309:18;4043:56;;;3669:309;-1:-1:-1;4043:56:18;;:3;;3669:309;4043:7;:56::i;:::-;4110:40;;;;;;;;;;;;;;-1:-1:-1;;;4110:40:18;;;;;;;;;;;;;;;;-1:-1:-1;;;4110:40:18;;;:3;:7;;:40;;;;;:::i;:::-;4160:39;;;;;;;;;;;;-1:-1:-1;;;4160:39:18;;;;;;:3;;675:6:1;4160:11:18;:39::i;:::-;4246:30;4267:3;4272;;4246:20;:30::i;:::-;4239:37;;;;;;3260:1023;:::o;1850:283:1:-;1992:24;;:::i;:::-;2024:28;;:::i;:::-;2065:63;:3;2080:6;2088:12;2102:25;2065:14;:63::i;:::-;2058:70;1850:283;-1:-1:-1;;;;;1850:283:1:o;1951:175:0:-;2061:8;;;;:26;;2083:3;2061:21;:26::i;:::-;2093:8;;;;:28;;2115:5;2093:21;:28::i;2992:177:1:-;3140:8;;3087:7;;3109:55;;-1:-1:-1;;;;;3140:8:1;3151:3;3156:7;3109:22;:55::i;:::-;3102:62;;2992:177;;;;;:::o;1730:111:3:-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;5015:2:19;1780:56:3;;;4997:21:19;5054:2;5034:18;;;5027:30;-1:-1:-1;;;5073:18:19;;;5066:52;5135:18;;1780:56:3;4813:346:19;1780:56:3;1730:111::o;5098:318:18:-;5149:23;5194;9184:6:1;;-1:-1:-1;;;;;9184:6:1;;9098:98;5194:23:18;5263:10;;5247:11;;5232:27;;-1:-1:-1;;;5232:27:18;;5247:11;;;;-1:-1:-1;;;;;5247:11:18;;;5232:27;;;342:51:19;5149:69:18;;-1:-1:-1;5263:10:18;;5232:14;;;;;315:18:19;;5232:27:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;5228:181;;5328:7;;5312:12;5297:28;;;;:14;:28;;;;;:38;5349:10;:17;;-1:-1:-1;;5349:17:18;5362:4;5349:17;;;4874:218:::1;4833:259::o:0;5228:181::-;5391:10;:18;;-1:-1:-1;;5391:18:18;;;5139:277;5098:318::o;1497:188:3:-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;5366:2:19;1551:52:3;;;5348:21:19;5405:2;5385:18;;;5378:30;5444:25;5424:18;;;5417:53;5487:18;;1551:52:3;5164:347:19;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;1668:7;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;;1641:39:3;1497:188;:::o;3850:96:16:-;3908:7;3934:5;3938:1;3934;:5;:::i;4399:96::-;4457:7;4483:5;4487:1;4483;:5;:::i;447:696:14:-;503:13;552:14;569:17;580:5;569:10;:17::i;:::-;589:1;569:21;552:38;;604:20;638:6;627:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;627:18:14;-1:-1:-1;604:41:14;-1:-1:-1;765:28:14;;;781:2;765:28;820:280;-1:-1:-1;;851:5:14;-1:-1:-1;;;985:2:14;974:14;;969:30;851:5;956:44;1044:2;1035:11;;;-1:-1:-1;1064:21:14;820:280;1064:21;-1:-1:-1;1120:6:14;447:696;-1:-1:-1;;;447:696:14:o;3087:171:0:-;3195:8;;;;:26;;3217:3;3195:21;:26::i;:::-;3227:8;;;;:26;;3247:5;3227:19;:26::i;987:351::-;1129:24;;:::i;:::-;1161:49;1182:4;:8;;;361:3;1161:20;:49::i;:::-;-1:-1:-1;;1216:15:0;;;-1:-1:-1;;;;;1237:35:0;;:20;;;:35;-1:-1:-1;;;;;;1278:38:0;;:23;;;:38;1216:4;987:351;;;;;;;:::o;2777:204:12:-;2875:71;2894:3;383:1;2931:5;2925:19;2875:18;:71::i;:::-;2952:24;:3;2969:5;2952:10;:24::i;3687:756:1:-;3864:14;;3823:17;;3901:9;3864:14;3909:1;3901:9;:::i;:::-;3884:14;:26;4245:6;;4280:22;;;;;4350:7;;;;:11;3946:421;;3916:27;;-1:-1:-1;;;3976:48:1;3946:421;;3916:27;;;;4245:6;4267:4;;4280:22;4310:5;;837:1;;3946:421;;;:::i;:::-;;;;-1:-1:-1;;3946:421:1;;;;;;;;;;;;;;-1:-1:-1;;;;;3946:421:1;-1:-1:-1;;;;;;3946:421:1;;;;;;;;;;;-1:-1:-1;4380:58:1;4392:13;4407:5;4414:7;3946:421;4380:11;:58::i;:::-;4373:65;3687:756;-1:-1:-1;;;;;;3687:756:1:o;10139:916:15:-;10192:7;;-1:-1:-1;;;10267:17:15;;10263:103;;-1:-1:-1;;;10304:17:15;;;-1:-1:-1;10349:2:15;10339:12;10263:103;10392:8;10383:5;:17;10379:103;;10429:8;10420:17;;;-1:-1:-1;10465:2:15;10455:12;10379:103;10508:8;10499:5;:17;10495:103;;10545:8;10536:17;;;-1:-1:-1;10581:2:15;10571:12;10495:103;10624:7;10615:5;:16;10611:100;;10660:7;10651:16;;;-1:-1:-1;10695:1:15;10685:11;10611:100;10737:7;10728:5;:16;10724:100;;10773:7;10764:16;;;-1:-1:-1;10808:1:15;10798:11;10724:100;10850:7;10841:5;:16;10837:100;;10886:7;10877:16;;;-1:-1:-1;10921:1:15;10911:11;10837:100;10963:7;10954:5;:16;10950:66;;11000:1;10990:11;11042:6;10139:916;-1:-1:-1;;10139:916:15:o;1464:236:12:-;1562:18;1554:5;:26;1551:145;;;1590:24;1603:3;1608:5;1590:12;:24::i;:::-;1464:236;;:::o;1551:145::-;1635:54;1654:3;234:1;1682:5;1635:18;:54::i;1001:399:11:-;-1:-1:-1;;;;;;;;;;;;;;;;;1100:13:11;1111:2;1100:8;:13;:::i;:::-;:18;1096:71;;1146:13;1157:2;1146:8;:13;:::i;:::-;1140:20;;:2;:20;:::i;:::-;1128:32;;;;:::i;:::-;;;1096:71;-1:-1:-1;1214:12:11;;;;:23;;;1277:4;1271:11;;1289:16;;;-1:-1:-1;1312:14:11;;1354:18;;;1346:27;1333:41;;1214:12;1001:399::o;682:625:12:-;803:2;794:5;:11;;;791:512;;815:44;:3;837:20;847:1;838:10;;;837:20;;;815:15;:44::i;791:512::-;885:4;876:5;:13;;;872:431;;899:41;:3;936:2;922:10;931:1;922:10;;;;921:17;899:15;:41::i;:::-;-1:-1:-1;948:23:12;:3;:23;;;969:1;948:13;:23::i;872:431::-;997:6;988:5;:15;;;984:319;;1013:41;:3;1050:2;1036:10;1045:1;1036:10;;;;1035:17;1013:15;:41::i;:::-;-1:-1:-1;1062:23:12;:3;:23;;;1083:1;1062:13;:23::i;984:319::-;1111:10;1102:5;:19;;;1098:205;;1131:41;:3;1168:2;1154:10;1163:1;1154:10;;;;1153:17;1131:15;:41::i;:::-;-1:-1:-1;1180:23:12;:3;:23;;;1201:1;1180:13;:23::i;1098:205::-;1224:41;:3;1261:2;1247:10;1256:1;1247:10;;;;1246:17;1224:15;:41::i;:::-;-1:-1:-1;1273:23:12;:3;:23;;;1294:1;1273:13;:23::i;4692:155:11:-;-1:-1:-1;;;;;;;;;;;;;;;;;4797:45:11;4803:3;4808;:7;;;:14;4824:4;4830;:11;4797:5;:45::i;6629:430:1:-;6818:29;;-1:-1:-1;;6835:4:1;7718:2:19;7714:15;7710:53;6818:29:1;;;7698:66:19;7780:12;;;7773:28;;;6771:17:1;;7817:12:19;;6818:29:1;;;;;;-1:-1:-1;;6818:29:1;;;;;;6808:40;;6818:29;6808:40;;;;6854:28;;;;:17;:28;;;;;;:44;;-1:-1:-1;;;;;;6854:44:1;-1:-1:-1;;;;;6854:44:1;;;;;6808:40;;-1:-1:-1;6808:40:1;;6909:29;;6854:28;6909:29;6952:6;;:62;;-1:-1:-1;;;6952:62:1;;-1:-1:-1;;;;;6952:6:1;;;;:22;;:62;;6975:13;;6990:7;;6999:14;;6952:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6944:110;;;;-1:-1:-1;;;6944:110:1;;8432:2:19;6944:110:1;;;8414:21:19;8471:2;8451:18;;;8444:30;8510:34;8490:18;;;8483:62;-1:-1:-1;;;8561:18:19;;;8554:33;8604:19;;6944:110:1;8230:399:19;2345:198:12;2434:63;:3;2456:39;2434:15;:63::i;:::-;;2503:35;2515:3;2531:5;2520:17;;;;;;160:25:19;;148:2;133:18;;14:177;2520:17:12;;;;;;;;;;;;;2503:11;:35::i;6040:145:11:-;-1:-1:-1;;;;;;;;;;;;;;;;;6143:37:11;6154:3;6159;:7;;;:14;6175:4;6143:10;:37::i;9894:177::-;-1:-1:-1;;;;;;;;;;;;;;;;;10026:40:11;10035:3;10040;:7;;;:14;10056:4;10062:3;10026:8;:40::i;2745:1210::-;-1:-1:-1;;;;;;;;;;;;;;;;;2903:4:11;:11;2896:3;:18;;2888:27;;;;;;2938:12;;;;2926:9;2932:3;2926;:9;:::i;:::-;:24;2922:90;;;2960:45;2967:3;2972:28;2976:3;:12;;;2996:3;2990;:9;;;;:::i;:::-;2972:3;:28::i;:::-;:32;;3003:1;2972:32;:::i;:::-;2960:6;:45::i;:::-;3018:12;3036:11;3133:3;3127:10;3204:6;3198:13;3320:3;3315:2;3307:6;3303:15;3299:25;3291:33;;3404:6;3398:3;3393;3389:13;3386:25;3383:76;;;3446:3;3441;3437:13;3429:6;3422:29;3383:76;-1:-1:-1;;;3483:2:11;3473:13;;3544:129;3558:2;3551:3;:9;3544:129;;3613:10;;3600:24;;3639:10;3647:2;3607:4;3639:10;:::i;:::-;;-1:-1:-1;3657:9:11;3664:2;3657:9;;:::i;:::-;;-1:-1:-1;3562:9:11;3569:2;3562:9;;:::i;:::-;;;3544:129;;;3807:10;3858:11;;-1:-1:-1;;3747:2:11;:8;;;3741:3;:15;3740:21;3854:22;;;3819:9;;3803:26;;;;3898:21;3885:35;;-1:-1:-1;3947:3:11;2745:1210;;;;;;:::o;2154:187:12:-;2250:63;2269:3;335:1;2299:5;:12;2250:18;:63::i;5148:639:11:-;-1:-1:-1;;;;;;;;;;;;;;;;;5283:3:11;:12;;;5276:3;:19;5272:69;;5305:29;5312:3;5317;:12;;;5332:1;5317:16;;;;:::i;5305:29::-;5427:3;5421:10;5498:6;5492:13;5610:2;5604:3;5596:6;5592:16;5588:25;5634:4;5628;5620:19;;5705:6;5700:3;5697:15;5694:67;;5750:1;5742:6;5738:14;5730:6;5723:30;5694:67;-1:-1:-1;5779:3:11;;5148:639;-1:-1:-1;;;;5148:639:11:o;8974:675::-;-1:-1:-1;;;;;;;;;;;;;;;;;9130:12:11;;;;9118:9;9124:3;9118;:9;:::i;:::-;:24;9114:73;;;9152:28;9159:3;9165:9;9171:3;9165;:9;:::i;9152:28::-;9193:12;9221:1;9209:8;9214:3;9209;:8;:::i;:::-;9208:14;;;;:::i;:::-;9193:29;;9308:3;9302:10;9423:3;9417;9409:6;9405:16;9401:26;9479:4;9471;9467:9;9460:4;9454:11;9450:27;9447:37;9441:4;9434:51;;9567:6;9561:13;9555:3;9550;9546:13;9543:32;9540:83;;;9610:3;9605;9601:13;9593:6;9586:29;9540:83;-1:-1:-1;9641:3:11;;8974:675;-1:-1:-1;;;;;8974:675:11:o;1961:124::-;2018:7;2041:1;2037;:5;2033:34;;;-1:-1:-1;2059:1:11;2052:8;;2033:34;-1:-1:-1;2079:1:11;1961:124;-1:-1:-1;1961:124:11:o;1801:156::-;1895:7;;1908:19;1895:3;1918:8;1908:4;:19::i;:::-;;1933;1940:3;1945:6;1933;:19::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;404:248:19:-;472:6;480;533:2;521:9;512:7;508:23;504:32;501:52;;;549:1;546;539:12;501:52;-1:-1:-1;;572:23:19;;;642:2;627:18;;;614:32;;-1:-1:-1;404:248:19:o;849:180::-;908:6;961:2;949:9;940:7;936:23;932:32;929:52;;;977:1;974;967:12;929:52;-1:-1:-1;1000:23:19;;849:180;-1:-1:-1;849:180:19:o;1216:286::-;1275:6;1328:2;1316:9;1307:7;1303:23;1299:32;1296:52;;;1344:1;1341;1334:12;1296:52;1370:23;;-1:-1:-1;;;;;1422:31:19;;1412:42;;1402:70;;1468:1;1465;1458:12;1402:70;1491:5;1216:286;-1:-1:-1;;;1216:286:19:o;1507:404::-;1709:2;1691:21;;;1748:2;1728:18;;;1721:30;1787:34;1782:2;1767:18;;1760:62;-1:-1:-1;;;1853:2:19;1838:18;;1831:38;1901:3;1886:19;;1507:404::o;2267:184::-;2337:6;2390:2;2378:9;2369:7;2365:23;2361:32;2358:52;;;2406:1;2403;2396:12;2358:52;-1:-1:-1;2429:16:19;;2267:184;-1:-1:-1;2267:184:19:o;2735:277::-;2802:6;2855:2;2843:9;2834:7;2830:23;2826:32;2823:52;;;2871:1;2868;2861:12;2823:52;2903:9;2897:16;2956:5;2949:13;2942:21;2935:5;2932:32;2922:60;;2978:1;2975;2968:12;3364:250;3449:1;3459:113;3473:6;3470:1;3467:13;3459:113;;;3549:11;;;3543:18;3530:11;;;3523:39;3495:2;3488:10;3459:113;;;-1:-1:-1;;3606:1:19;3588:16;;3581:27;3364:250::o;3619:1189::-;4030:34;4025:3;4018:47;4095:34;4090:2;4085:3;4081:12;4074:56;4160:34;4155:2;4150:3;4146:12;4139:56;4225:34;4220:2;4215:3;4211:12;4204:56;4291:34;4285:3;4280;4276:13;4269:57;4357:34;4351:3;4346;4342:13;4335:57;4423:25;4417:3;4412;4408:13;4401:48;4000:3;4478:6;4472:13;4494:74;4561:6;4555:3;4550;4546:13;4541:2;4533:6;4529:15;4494:74;:::i;:::-;-1:-1:-1;;;4627:3:19;4587:16;;;4619:12;;;4612:25;4662:13;;4684:75;4662:13;4744:3;4736:12;;4731:2;4719:15;;4684:75;:::i;:::-;4779:17;4798:3;4775:27;;3619:1189;-1:-1:-1;;;;3619:1189:19:o;5516:127::-;5577:10;5572:3;5568:20;5565:1;5558:31;5608:4;5605:1;5598:15;5632:4;5629:1;5622:15;5648:127;5709:10;5704:3;5700:20;5697:1;5690:31;5740:4;5737:1;5730:15;5764:4;5761:1;5754:15;5780:120;5820:1;5846;5836:35;;5851:18;;:::i;:::-;-1:-1:-1;5885:9:19;;5780:120::o;5905:112::-;5937:1;5963;5953:35;;5968:18;;:::i;:::-;-1:-1:-1;6002:9:19;;5905:112::o;6022:127::-;6083:10;6078:3;6074:20;6071:1;6064:31;6114:4;6111:1;6104:15;6138:4;6135:1;6128:15;6154:125;6219:9;;;6240:10;;;6237:36;;;6253:18;;:::i;6284:270::-;6325:3;6363:5;6357:12;6390:6;6385:3;6378:19;6406:76;6475:6;6468:4;6463:3;6459:14;6452:4;6445:5;6441:16;6406:76;:::i;:::-;6536:2;6515:15;-1:-1:-1;;6511:29:19;6502:39;;;;6543:4;6498:50;;6284:270;-1:-1:-1;;6284:270:19:o;6559:821::-;-1:-1:-1;;;;;6960:15:19;;;6942:34;;7007:2;6992:18;;6985:34;;;7050:2;7035:18;;7028:34;;;7098:15;;7093:2;7078:18;;7071:43;-1:-1:-1;;;;;;7151:33:19;;7145:3;7130:19;;7123:62;6922:3;7201:19;;7194:35;;;7260:3;7245:19;;7238:35;;;6892:3;7167;7289:19;;7282:31;;;6863:4;;7330:44;7355:18;;;7347:6;7330:44;:::i;:::-;7322:52;6559:821;-1:-1:-1;;;;;;;;;;;6559:821:19:o;7385:128::-;7452:9;;;7473:11;;;7470:37;;;7487:18;;:::i;7840:385::-;8072:1;8068;8063:3;8059:11;8055:19;8047:6;8043:32;8032:9;8025:51;8112:6;8107:2;8096:9;8092:18;8085:34;8155:2;8150;8139:9;8135:18;8128:30;8006:4;8175:44;8215:2;8204:9;8200:18;8192:6;8175:44;:::i;8634:168::-;8707:9;;;8738;;8755:15;;;8749:22;;8735:37;8725:71;;8776:18;;:::i;8807:422::-;8896:1;8939:5;8896:1;8953:270;8974:7;8964:8;8961:21;8953:270;;;9033:4;9029:1;9025:6;9021:17;9015:4;9012:27;9009:53;;;9042:18;;:::i;:::-;9092:7;9082:8;9078:22;9075:55;;;9112:16;;;;9075:55;9191:22;;;;9151:15;;;;8953:270;;;8957:3;8807:422;;;;;:::o;9234:806::-;9283:5;9313:8;9303:80;;-1:-1:-1;9354:1:19;9368:5;;9303:80;9402:4;9392:76;;-1:-1:-1;9439:1:19;9453:5;;9392:76;9484:4;9502:1;9497:59;;;;9570:1;9565:130;;;;9477:218;;9497:59;9527:1;9518:10;;9541:5;;;9565:130;9602:3;9592:8;9589:17;9586:43;;;9609:18;;:::i;:::-;-1:-1:-1;;9665:1:19;9651:16;;9680:5;;9477:218;;9779:2;9769:8;9766:16;9760:3;9754:4;9751:13;9747:36;9741:2;9731:8;9728:16;9723:2;9717:4;9714:12;9710:35;9707:77;9704:159;;;-1:-1:-1;9816:19:19;;;9848:5;;9704:159;9895:34;9920:8;9914:4;9895:34;:::i;:::-;9965:6;9961:1;9957:6;9953:19;9944:7;9941:32;9938:58;;;9976:18;;:::i;:::-;10014:20;;9234:806;-1:-1:-1;;;9234:806:19:o;10045:131::-;10105:5;10134:36;10161:8;10155:4;10134:36;:::i"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","beneficiary()":"38af3eed","earning()":"df78abe6","earningReports(uint256)":"9e2f9084","fulfill(bytes32,uint256)":"4357855e","fulfillTransakPrice(bytes32,uint256)":"93232d9f","ggJobId()":"403a7761","isEligible()":"43e1ca49","linkAmount()":"ea21b098","owner()":"8da5cb5b","requestWeekEarning()":"50ed6a95","transakJobId()":"350844ce","transferOwnership(address)":"f2fde38b","withdrawLink()":"8dc654a2"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"linkAmount\",\"type\":\"uint256\"}],\"name\":\"RequestBoughtAmount\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"earning\",\"type\":\"uint256\"}],\"name\":\"RequestEarning\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beneficiary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"earning\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"earningReports\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_earning\",\"type\":\"uint256\"}],\"name\":\"fulfill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_linkAmount\",\"type\":\"uint256\"}],\"name\":\"fulfillTransakPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ggJobId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isEligible\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"linkAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestWeekEarning\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transakJobId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawLink\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"beneficiary()\":{\"notice\":\"@beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it In this 0xSplits contract will contain the list of charity organizations' addresses\"},\"constructor\":{\"notice\":\"Initialize the link token and target oracle Mumbai Testnet details: Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 ggJobId: b1d42cd54a3a4200b1f725a68e488888 transakJobId: b1d42cd54a3a4200b1f725a68e488999\"},\"fulfill(bytes32,uint256)\":{\"notice\":\"Receive the response in the form of uint256\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"requestWeekEarning()\":{\"notice\":\"Create a Chainlink request to retrieve API response, find the target data, then multiply by 1000000000000000000 (to remove decimal places from data).\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"},\"withdrawLink()\":{\"notice\":\"Allow withdraw of Link tokens from the contract LINK will always be sent to beneficiary 0xSplits contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/AdmodConsumer.sol\":\"AdmodConsumer\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":{\"keccak256\":\"0x99d0b0786fe368970009c703f2249bfbc56340ddf1a28b60d2915bb58c34cd72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0371c1af45db651823b9a3d5af761b08243c78f105166342eee28de356c8dd\",\"dweb:/ipfs/QmPnC9qNDKwJFd5unwLb9pxjrutoe8MWjm5EXHTxq2kJ4x\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x58b21219689909c4f8339af00813760337f7e2e7f169a97fe49e2896dcfb3b9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8e012e946dec20e59f2d4446f4b44bb098f3fa8bac103b1b5112fff777447b\",\"dweb:/ipfs/QmVTooKWcLkJ9W68yNX4MgdrbAKiAXwuRN9A7f4NkdcdtQ\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"contracts/AdmodConsumer.sol\":{\"keccak256\":\"0x6c35774cf65a9f58245f5e75bedc11bfe516c563548d7daa6c9bd0a6c7936e5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67142a8e617732d96afa75740308a92a37f7fc243c7186efe26c6af2516ab53d\",\"dweb:/ipfs/Qmbsbx8LFiv13bE6sZtrJEPRA7YRMi7PeFqUoiLyac27eC\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/build-info/ffff62e34f1018458229b74fccd2a227.json b/artifacts/build-info/ffff62e34f1018458229b74fccd2a227.json deleted file mode 100644 index 6d36147..0000000 --- a/artifacts/build-info/ffff62e34f1018458229b74fccd2a227.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"ffff62e34f1018458229b74fccd2a227","_format":"hh-sol-build-info-1","solcVersion":"0.8.17","solcLongVersion":"0.8.17+commit.8df45f5f","input":{"language":"Solidity","sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {CBORChainlink} from \"./vendor/CBORChainlink.sol\";\nimport {BufferChainlink} from \"./vendor/BufferChainlink.sol\";\n\n/**\n * @title Library for common Chainlink functions\n * @dev Uses imported CBOR library for encoding to buffer\n */\nlibrary Chainlink {\n uint256 internal constant defaultBufferSize = 256; // solhint-disable-line const-name-snakecase\n\n using CBORChainlink for BufferChainlink.buffer;\n\n struct Request {\n bytes32 id;\n address callbackAddress;\n bytes4 callbackFunctionId;\n uint256 nonce;\n BufferChainlink.buffer buf;\n }\n\n /**\n * @notice Initializes a Chainlink request\n * @dev Sets the ID, callback address, and callback function signature on the request\n * @param self The uninitialized request\n * @param jobId The Job Specification ID\n * @param callbackAddr The callback address\n * @param callbackFunc The callback function signature\n * @return The initialized request\n */\n function initialize(\n Request memory self,\n bytes32 jobId,\n address callbackAddr,\n bytes4 callbackFunc\n ) internal pure returns (Chainlink.Request memory) {\n BufferChainlink.init(self.buf, defaultBufferSize);\n self.id = jobId;\n self.callbackAddress = callbackAddr;\n self.callbackFunctionId = callbackFunc;\n return self;\n }\n\n /**\n * @notice Sets the data for the buffer without encoding CBOR on-chain\n * @dev CBOR can be closed with curly-brackets {} or they can be left off\n * @param self The initialized request\n * @param data The CBOR data\n */\n function setBuffer(Request memory self, bytes memory data) internal pure {\n BufferChainlink.init(self.buf, data.length);\n BufferChainlink.append(self.buf, data);\n }\n\n /**\n * @notice Adds a string value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The string value to add\n */\n function add(\n Request memory self,\n string memory key,\n string memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeString(value);\n }\n\n /**\n * @notice Adds a bytes value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The bytes value to add\n */\n function addBytes(\n Request memory self,\n string memory key,\n bytes memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeBytes(value);\n }\n\n /**\n * @notice Adds a int256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The int256 value to add\n */\n function addInt(\n Request memory self,\n string memory key,\n int256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeInt(value);\n }\n\n /**\n * @notice Adds a uint256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The uint256 value to add\n */\n function addUint(\n Request memory self,\n string memory key,\n uint256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeUInt(value);\n }\n\n /**\n * @notice Adds an array of strings to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param values The array of string values to add\n */\n function addStringArray(\n Request memory self,\n string memory key,\n string[] memory values\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.startArray();\n for (uint256 i = 0; i < values.length; i++) {\n self.buf.encodeString(values[i]);\n }\n self.buf.endSequence();\n }\n}\n"},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./Chainlink.sol\";\nimport \"./interfaces/ENSInterface.sol\";\nimport \"./interfaces/LinkTokenInterface.sol\";\nimport \"./interfaces/ChainlinkRequestInterface.sol\";\nimport \"./interfaces/OperatorInterface.sol\";\nimport \"./interfaces/PointerInterface.sol\";\nimport {ENSResolver as ENSResolver_Chainlink} from \"./vendor/ENSResolver.sol\";\n\n/**\n * @title The ChainlinkClient contract\n * @notice Contract writers can inherit this contract in order to create requests for the\n * Chainlink network\n */\nabstract contract ChainlinkClient {\n using Chainlink for Chainlink.Request;\n\n uint256 internal constant LINK_DIVISIBILITY = 10**18;\n uint256 private constant AMOUNT_OVERRIDE = 0;\n address private constant SENDER_OVERRIDE = address(0);\n uint256 private constant ORACLE_ARGS_VERSION = 1;\n uint256 private constant OPERATOR_ARGS_VERSION = 2;\n bytes32 private constant ENS_TOKEN_SUBNAME = keccak256(\"link\");\n bytes32 private constant ENS_ORACLE_SUBNAME = keccak256(\"oracle\");\n address private constant LINK_TOKEN_POINTER = 0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571;\n\n ENSInterface private s_ens;\n bytes32 private s_ensNode;\n LinkTokenInterface private s_link;\n OperatorInterface private s_oracle;\n uint256 private s_requestCount = 1;\n mapping(bytes32 => address) private s_pendingRequests;\n\n event ChainlinkRequested(bytes32 indexed id);\n event ChainlinkFulfilled(bytes32 indexed id);\n event ChainlinkCancelled(bytes32 indexed id);\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackAddr address to operate the callback on\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildChainlinkRequest(\n bytes32 specId,\n address callbackAddr,\n bytes4 callbackFunctionSignature\n ) internal pure returns (Chainlink.Request memory) {\n Chainlink.Request memory req;\n return req.initialize(specId, callbackAddr, callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildOperatorRequest(bytes32 specId, bytes4 callbackFunctionSignature)\n internal\n view\n returns (Chainlink.Request memory)\n {\n Chainlink.Request memory req;\n return req.initialize(specId, address(this), callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev Calls `chainlinkRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendChainlinkRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n ChainlinkRequestInterface.oracleRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n address(this),\n req.callbackFunctionId,\n nonce,\n ORACLE_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev This function supports multi-word response\n * @dev Calls `sendOperatorRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendOperatorRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev This function supports multi-word response\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n OperatorInterface.operatorRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n req.callbackFunctionId,\n nonce,\n OPERATOR_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Make a request to an oracle\n * @param oracleAddress The address of the oracle for the request\n * @param nonce used to generate the request ID\n * @param payment The amount of LINK to send for the request\n * @param encodedRequest data encoded for request type specific format\n * @return requestId The request ID\n */\n function _rawRequest(\n address oracleAddress,\n uint256 nonce,\n uint256 payment,\n bytes memory encodedRequest\n ) private returns (bytes32 requestId) {\n requestId = keccak256(abi.encodePacked(this, nonce));\n s_pendingRequests[requestId] = oracleAddress;\n emit ChainlinkRequested(requestId);\n require(s_link.transferAndCall(oracleAddress, payment, encodedRequest), \"unable to transferAndCall to oracle\");\n }\n\n /**\n * @notice Allows a request to be cancelled if it has not been fulfilled\n * @dev Requires keeping track of the expiration value emitted from the oracle contract.\n * Deletes the request from the `pendingRequests` mapping.\n * Emits ChainlinkCancelled event.\n * @param requestId The request ID\n * @param payment The amount of LINK sent for the request\n * @param callbackFunc The callback function specified for the request\n * @param expiration The time of the expiration for the request\n */\n function cancelChainlinkRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunc,\n uint256 expiration\n ) internal {\n OperatorInterface requested = OperatorInterface(s_pendingRequests[requestId]);\n delete s_pendingRequests[requestId];\n emit ChainlinkCancelled(requestId);\n requested.cancelOracleRequest(requestId, payment, callbackFunc, expiration);\n }\n\n /**\n * @notice the next request count to be used in generating a nonce\n * @dev starts at 1 in order to ensure consistent gas cost\n * @return returns the next request count to be used in a nonce\n */\n function getNextRequestCount() internal view returns (uint256) {\n return s_requestCount;\n }\n\n /**\n * @notice Sets the stored oracle address\n * @param oracleAddress The address of the oracle contract\n */\n function setChainlinkOracle(address oracleAddress) internal {\n s_oracle = OperatorInterface(oracleAddress);\n }\n\n /**\n * @notice Sets the LINK token address\n * @param linkAddress The address of the LINK token contract\n */\n function setChainlinkToken(address linkAddress) internal {\n s_link = LinkTokenInterface(linkAddress);\n }\n\n /**\n * @notice Sets the Chainlink token address for the public\n * network as given by the Pointer contract\n */\n function setPublicChainlinkToken() internal {\n setChainlinkToken(PointerInterface(LINK_TOKEN_POINTER).getAddress());\n }\n\n /**\n * @notice Retrieves the stored address of the LINK token\n * @return The address of the LINK token\n */\n function chainlinkTokenAddress() internal view returns (address) {\n return address(s_link);\n }\n\n /**\n * @notice Retrieves the stored address of the oracle contract\n * @return The address of the oracle contract\n */\n function chainlinkOracleAddress() internal view returns (address) {\n return address(s_oracle);\n }\n\n /**\n * @notice Allows for a request which was created on another contract to be fulfilled\n * on this contract\n * @param oracleAddress The address of the oracle contract that will fulfill the request\n * @param requestId The request ID used for the response\n */\n function addChainlinkExternalRequest(address oracleAddress, bytes32 requestId) internal notPendingRequest(requestId) {\n s_pendingRequests[requestId] = oracleAddress;\n }\n\n /**\n * @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n * @dev Accounts for subnodes having different resolvers\n * @param ensAddress The address of the ENS contract\n * @param node The ENS node hash\n */\n function useChainlinkWithENS(address ensAddress, bytes32 node) internal {\n s_ens = ENSInterface(ensAddress);\n s_ensNode = node;\n bytes32 linkSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_TOKEN_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(linkSubnode));\n setChainlinkToken(resolver.addr(linkSubnode));\n updateChainlinkOracleWithENS();\n }\n\n /**\n * @notice Sets the stored oracle contract with the address resolved by ENS\n * @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously\n */\n function updateChainlinkOracleWithENS() internal {\n bytes32 oracleSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_ORACLE_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(oracleSubnode));\n setChainlinkOracle(resolver.addr(oracleSubnode));\n }\n\n /**\n * @notice Ensures that the fulfillment is valid for this contract\n * @dev Use if the contract developer prefers methods instead of modifiers for validation\n * @param requestId The request ID for fulfillment\n */\n function validateChainlinkCallback(bytes32 requestId)\n internal\n recordChainlinkFulfillment(requestId)\n // solhint-disable-next-line no-empty-blocks\n {\n\n }\n\n /**\n * @dev Reverts if the sender is not the oracle of the request.\n * Emits ChainlinkFulfilled event.\n * @param requestId The request ID for fulfillment\n */\n modifier recordChainlinkFulfillment(bytes32 requestId) {\n require(msg.sender == s_pendingRequests[requestId], \"Source must be the oracle of the request\");\n delete s_pendingRequests[requestId];\n emit ChainlinkFulfilled(requestId);\n _;\n }\n\n /**\n * @dev Reverts if the request is already pending\n * @param requestId The request ID for fulfillment\n */\n modifier notPendingRequest(bytes32 requestId) {\n require(s_pendingRequests[requestId] == address(0), \"Request is already pending\");\n _;\n }\n}\n"},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./ConfirmedOwnerWithProposal.sol\";\n\n/**\n * @title The ConfirmedOwner contract\n * @notice A contract with helpers for basic contract ownership.\n */\ncontract ConfirmedOwner is ConfirmedOwnerWithProposal {\n constructor(address newOwner) ConfirmedOwnerWithProposal(newOwner, address(0)) {}\n}\n"},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./interfaces/OwnableInterface.sol\";\n\n/**\n * @title The ConfirmedOwner contract\n * @notice A contract with helpers for basic contract ownership.\n */\ncontract ConfirmedOwnerWithProposal is OwnableInterface {\n address private s_owner;\n address private s_pendingOwner;\n\n event OwnershipTransferRequested(address indexed from, address indexed to);\n event OwnershipTransferred(address indexed from, address indexed to);\n\n constructor(address newOwner, address pendingOwner) {\n require(newOwner != address(0), \"Cannot set owner to zero\");\n\n s_owner = newOwner;\n if (pendingOwner != address(0)) {\n _transferOwnership(pendingOwner);\n }\n }\n\n /**\n * @notice Allows an owner to begin transferring ownership to a new address,\n * pending.\n */\n function transferOwnership(address to) public override onlyOwner {\n _transferOwnership(to);\n }\n\n /**\n * @notice Allows an ownership transfer to be completed by the recipient.\n */\n function acceptOwnership() external override {\n require(msg.sender == s_pendingOwner, \"Must be proposed owner\");\n\n address oldOwner = s_owner;\n s_owner = msg.sender;\n s_pendingOwner = address(0);\n\n emit OwnershipTransferred(oldOwner, msg.sender);\n }\n\n /**\n * @notice Get the current owner\n */\n function owner() public view override returns (address) {\n return s_owner;\n }\n\n /**\n * @notice validate, transfer ownership, and emit relevant events\n */\n function _transferOwnership(address to) private {\n require(to != msg.sender, \"Cannot transfer to self\");\n\n s_pendingOwner = to;\n\n emit OwnershipTransferRequested(s_owner, to);\n }\n\n /**\n * @notice validate access\n */\n function _validateOwnership() internal view {\n require(msg.sender == s_owner, \"Only callable by owner\");\n }\n\n /**\n * @notice Reverts if called by anyone other than the contract owner.\n */\n modifier onlyOwner() {\n _validateOwnership();\n _;\n }\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ChainlinkRequestInterface {\n function oracleRequest(\n address sender,\n uint256 requestPrice,\n bytes32 serviceAgreementID,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function cancelOracleRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunctionId,\n uint256 expiration\n ) external;\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ENSInterface {\n // Logged when the owner of a node assigns a new owner to a subnode.\n event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);\n\n // Logged when the owner of a node transfers ownership to a new account.\n event Transfer(bytes32 indexed node, address owner);\n\n // Logged when the resolver for a node changes.\n event NewResolver(bytes32 indexed node, address resolver);\n\n // Logged when the TTL of a node changes\n event NewTTL(bytes32 indexed node, uint64 ttl);\n\n function setSubnodeOwner(\n bytes32 node,\n bytes32 label,\n address owner\n ) external;\n\n function setResolver(bytes32 node, address resolver) external;\n\n function setOwner(bytes32 node, address owner) external;\n\n function setTTL(bytes32 node, uint64 ttl) external;\n\n function owner(bytes32 node) external view returns (address);\n\n function resolver(bytes32 node) external view returns (address);\n\n function ttl(bytes32 node) external view returns (uint64);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface LinkTokenInterface {\n function allowance(address owner, address spender) external view returns (uint256 remaining);\n\n function approve(address spender, uint256 value) external returns (bool success);\n\n function balanceOf(address owner) external view returns (uint256 balance);\n\n function decimals() external view returns (uint8 decimalPlaces);\n\n function decreaseApproval(address spender, uint256 addedValue) external returns (bool success);\n\n function increaseApproval(address spender, uint256 subtractedValue) external;\n\n function name() external view returns (string memory tokenName);\n\n function symbol() external view returns (string memory tokenSymbol);\n\n function totalSupply() external view returns (uint256 totalTokensIssued);\n\n function transfer(address to, uint256 value) external returns (bool success);\n\n function transferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool success);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./OracleInterface.sol\";\nimport \"./ChainlinkRequestInterface.sol\";\n\ninterface OperatorInterface is OracleInterface, ChainlinkRequestInterface {\n function operatorRequest(\n address sender,\n uint256 payment,\n bytes32 specId,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function fulfillOracleRequest2(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes calldata data\n ) external returns (bool);\n\n function ownerTransferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function distributeFunds(address payable[] calldata receivers, uint256[] calldata amounts) external payable;\n\n function getAuthorizedSenders() external returns (address[] memory);\n\n function setAuthorizedSenders(address[] calldata senders) external;\n\n function getForwarder() external returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface OracleInterface {\n function fulfillOracleRequest(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes32 data\n ) external returns (bool);\n\n function isAuthorizedSender(address node) external view returns (bool);\n\n function withdraw(address recipient, uint256 amount) external;\n\n function withdrawable() external view returns (uint256);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface OwnableInterface {\n function owner() external returns (address);\n\n function transferOwnership(address recipient) external;\n\n function acceptOwnership() external;\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface PointerInterface {\n function getAddress() external view returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/**\n * @dev A library for working with mutable byte buffers in Solidity.\n *\n * Byte buffers are mutable and expandable, and provide a variety of primitives\n * for writing to them. At any time you can fetch a bytes object containing the\n * current contents of the buffer. The bytes object should not be stored between\n * operations, as it may change due to resizing of the buffer.\n */\nlibrary BufferChainlink {\n /**\n * @dev Represents a mutable buffer. Buffers have a current value (buf) and\n * a capacity. The capacity may be longer than the current value, in\n * which case it can be extended without the need to allocate more memory.\n */\n struct buffer {\n bytes buf;\n uint256 capacity;\n }\n\n /**\n * @dev Initializes a buffer with an initial capacity.\n * @param buf The buffer to initialize.\n * @param capacity The number of bytes of space to allocate the buffer.\n * @return The buffer, for chaining.\n */\n function init(buffer memory buf, uint256 capacity) internal pure returns (buffer memory) {\n if (capacity % 32 != 0) {\n capacity += 32 - (capacity % 32);\n }\n // Allocate space for the buffer data\n buf.capacity = capacity;\n assembly {\n let ptr := mload(0x40)\n mstore(buf, ptr)\n mstore(ptr, 0)\n mstore(0x40, add(32, add(ptr, capacity)))\n }\n return buf;\n }\n\n /**\n * @dev Initializes a new buffer from an existing bytes object.\n * Changes to the buffer may mutate the original value.\n * @param b The bytes object to initialize the buffer with.\n * @return A new buffer.\n */\n function fromBytes(bytes memory b) internal pure returns (buffer memory) {\n buffer memory buf;\n buf.buf = b;\n buf.capacity = b.length;\n return buf;\n }\n\n function resize(buffer memory buf, uint256 capacity) private pure {\n bytes memory oldbuf = buf.buf;\n init(buf, capacity);\n append(buf, oldbuf);\n }\n\n function max(uint256 a, uint256 b) private pure returns (uint256) {\n if (a > b) {\n return a;\n }\n return b;\n }\n\n /**\n * @dev Sets buffer length to 0.\n * @param buf The buffer to truncate.\n * @return The original buffer, for chaining..\n */\n function truncate(buffer memory buf) internal pure returns (buffer memory) {\n assembly {\n let bufptr := mload(buf)\n mstore(bufptr, 0)\n }\n return buf;\n }\n\n /**\n * @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The start offset to write to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n require(len <= data.length);\n\n if (off + len > buf.capacity) {\n resize(buf, max(buf.capacity, len + off) * 2);\n }\n\n uint256 dest;\n uint256 src;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Start address = buffer address + offset + sizeof(buffer length)\n dest := add(add(bufptr, 32), off)\n // Update buffer length if we're extending it\n if gt(add(len, off), buflen) {\n mstore(bufptr, add(len, off))\n }\n src := add(data, 32)\n }\n\n // Copy word-length chunks while possible\n for (; len >= 32; len -= 32) {\n assembly {\n mstore(dest, mload(src))\n }\n dest += 32;\n src += 32;\n }\n\n // Copy remaining bytes\n unchecked {\n uint256 mask = (256**(32 - len)) - 1;\n assembly {\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n }\n }\n\n return buf;\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function append(\n buffer memory buf,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, len);\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function append(buffer memory buf, bytes memory data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, data.length);\n }\n\n /**\n * @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write the byte at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeUint8(\n buffer memory buf,\n uint256 off,\n uint8 data\n ) internal pure returns (buffer memory) {\n if (off >= buf.capacity) {\n resize(buf, buf.capacity * 2);\n }\n\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Address = buffer address + sizeof(buffer length) + off\n let dest := add(add(bufptr, off), 32)\n mstore8(dest, data)\n // Update buffer length if we extended it\n if eq(off, buflen) {\n mstore(bufptr, add(buflen, 1))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendUint8(buffer memory buf, uint8 data) internal pure returns (buffer memory) {\n return writeUint8(buf, buf.buf.length, data);\n }\n\n /**\n * @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (left-aligned).\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes32 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n unchecked {\n uint256 mask = (256**len) - 1;\n // Right-align data\n data = data >> (8 * (32 - len));\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + sizeof(buffer length) + off + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n }\n return buf;\n }\n\n /**\n * @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeBytes20(\n buffer memory buf,\n uint256 off,\n bytes20 data\n ) internal pure returns (buffer memory) {\n return write(buf, off, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chhaining.\n */\n function appendBytes20(buffer memory buf, bytes20 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendBytes32(buffer memory buf, bytes32 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, 32);\n }\n\n /**\n * @dev Writes an integer to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (right-aligned).\n * @return The original buffer, for chaining.\n */\n function writeInt(\n buffer memory buf,\n uint256 off,\n uint256 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n uint256 mask = (256**len) - 1;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + off + sizeof(buffer length) + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the end of the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer.\n */\n function appendInt(\n buffer memory buf,\n uint256 data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return writeInt(buf, buf.buf.length, data, len);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.4.19;\n\nimport {BufferChainlink} from \"./BufferChainlink.sol\";\n\nlibrary CBORChainlink {\n using BufferChainlink for BufferChainlink.buffer;\n\n uint8 private constant MAJOR_TYPE_INT = 0;\n uint8 private constant MAJOR_TYPE_NEGATIVE_INT = 1;\n uint8 private constant MAJOR_TYPE_BYTES = 2;\n uint8 private constant MAJOR_TYPE_STRING = 3;\n uint8 private constant MAJOR_TYPE_ARRAY = 4;\n uint8 private constant MAJOR_TYPE_MAP = 5;\n uint8 private constant MAJOR_TYPE_TAG = 6;\n uint8 private constant MAJOR_TYPE_CONTENT_FREE = 7;\n\n uint8 private constant TAG_TYPE_BIGNUM = 2;\n uint8 private constant TAG_TYPE_NEGATIVE_BIGNUM = 3;\n\n function encodeFixedNumeric(BufferChainlink.buffer memory buf, uint8 major, uint64 value) private pure {\n if(value <= 23) {\n buf.appendUint8(uint8((major << 5) | value));\n } else if (value <= 0xFF) {\n buf.appendUint8(uint8((major << 5) | 24));\n buf.appendInt(value, 1);\n } else if (value <= 0xFFFF) {\n buf.appendUint8(uint8((major << 5) | 25));\n buf.appendInt(value, 2);\n } else if (value <= 0xFFFFFFFF) {\n buf.appendUint8(uint8((major << 5) | 26));\n buf.appendInt(value, 4);\n } else {\n buf.appendUint8(uint8((major << 5) | 27));\n buf.appendInt(value, 8);\n }\n }\n\n function encodeIndefiniteLengthType(BufferChainlink.buffer memory buf, uint8 major) private pure {\n buf.appendUint8(uint8((major << 5) | 31));\n }\n\n function encodeUInt(BufferChainlink.buffer memory buf, uint value) internal pure {\n if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, value);\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(value));\n }\n }\n\n function encodeInt(BufferChainlink.buffer memory buf, int value) internal pure {\n if(value < -0x10000000000000000) {\n encodeSignedBigNum(buf, value);\n } else if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, uint(value));\n } else if(value >= 0) {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(uint256(value)));\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_NEGATIVE_INT, uint64(uint256(-1 - value)));\n }\n }\n\n function encodeBytes(BufferChainlink.buffer memory buf, bytes memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_BYTES, uint64(value.length));\n buf.append(value);\n }\n\n function encodeBigNum(BufferChainlink.buffer memory buf, uint value) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_BIGNUM));\n encodeBytes(buf, abi.encode(value));\n }\n\n function encodeSignedBigNum(BufferChainlink.buffer memory buf, int input) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_NEGATIVE_BIGNUM));\n encodeBytes(buf, abi.encode(uint256(-1 - input)));\n }\n\n function encodeString(BufferChainlink.buffer memory buf, string memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_STRING, uint64(bytes(value).length));\n buf.append(bytes(value));\n }\n\n function startArray(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_ARRAY);\n }\n\n function startMap(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_MAP);\n }\n\n function endSequence(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_CONTENT_FREE);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nabstract contract ENSResolver {\n function addr(bytes32 node) public view virtual returns (address);\n}\n"},"contracts/AdmodConsumer.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.17;\n\nimport \"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\";\nimport \"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\";\n\ncontract AdmodConsumer is ChainlinkClient, ConfirmedOwner {\n using Chainlink for Chainlink.Request;\n\n // the earning amount of this week\n uint256 public earning;\n\n bytes32 private jobId;\n uint256 private fee;\n\n /** \n * @notice\n * @beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it\n * In this 0xSplits contract will contain the list of charity organizations' addresses\n */\n address public beneficiary;\n\n event RequestEarning(bytes32 indexed requestId, uint256 earning);\n\n /**\n * @notice Initialize the link token and target oracle\n *\n * Mumbai Testnet details:\n * Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB\n * Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 \n * jobId: b1d42cd54a3a4200b1f725a68e488888\n *\n */\n constructor(address _owner, address _beneficiary) ConfirmedOwner(_owner) {\n setChainlinkToken(0x326C977E6efc84E512bB9C30f76E30c160eD06FB);\n setChainlinkOracle(0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5);\n jobId = \"b1d42cd54a3a4200b1f725a68e488888\";\n fee = (1 * LINK_DIVISIBILITY) / 10; // 0,1 * 10**18 (Varies by network and job)\n beneficiary = _beneficiary;\n }\n\n /**\n * Create a Chainlink request to retrieve API response, find the target\n * data, then multiply by 1000000000000000000 (to remove decimal places from data).\n */\n function requestWeekEarning() public returns (bytes32 requestId) {\n Chainlink.Request memory req = buildChainlinkRequest(\n jobId,\n address(this),\n this.fulfill.selector\n );\n\n // Set the URL to perform the GET request on\n req.add(\n \"get\",\n \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\"\n );\n\n req.add(\"path\", \"row,metricValues,ESTIMATED_EARNINGS,microsValue\");\n\n // Sends the request\n return sendChainlinkRequest(req, fee);\n }\n\n /** @notice\n * Receive the response in the form of uint256\n */\n function fulfill(\n bytes32 _requestId,\n uint256 _earning\n ) public recordChainlinkFulfillment(_requestId) {\n emit RequestEarning(_requestId, _earning);\n /** \n @notice earning will be a total of earning this week subtract for Transak transaction fee\n */\n earning = _earning;\n }\n\n /** @notice\n * Allow withdraw of Link tokens from the contract\n * LINK will always be sent to beneficiary 0xSplits contract\n */\n\n function withdrawLink() public onlyOwner {\n LinkTokenInterface link = LinkTokenInterface(chainlinkTokenAddress());\n require(\n link.transfer(beneficiary, link.balanceOf(address(this))),\n \"Unable to transfer\"\n );\n }\n}"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268]},"id":269,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:0"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","file":"./vendor/CBORChainlink.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":2364,"src":"57:57:0","symbolAliases":[{"foreign":{"id":2,"name":"CBORChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2363,"src":"65:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./vendor/BufferChainlink.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":1917,"src":"115:61:0","symbolAliases":[{"foreign":{"id":4,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"123:15:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Chainlink","contractDependencies":[],"contractKind":"library","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"178:114:0","text":" @title Library for common Chainlink functions\n @dev Uses imported CBOR library for encoding to buffer"},"fullyImplemented":true,"id":268,"linearizedBaseContracts":[268],"name":"Chainlink","nameLocation":"301:9:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":9,"mutability":"constant","name":"defaultBufferSize","nameLocation":"341:17:0","nodeType":"VariableDeclaration","scope":268,"src":"315:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"323536","id":8,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"361:3:0","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"internal"},{"global":false,"id":13,"libraryName":{"id":10,"name":"CBORChainlink","nameLocations":["420:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":2363,"src":"420:13:0"},"nodeType":"UsingForDirective","src":"414:47:0","typeName":{"id":12,"nodeType":"UserDefinedTypeName","pathNode":{"id":11,"name":"BufferChainlink.buffer","nameLocations":["438:15:0","454:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"438:22:0"},"referencedDeclaration":1402,"src":"438:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"canonicalName":"Chainlink.Request","id":25,"members":[{"constant":false,"id":15,"mutability":"mutable","name":"id","nameLocation":"494:2:0","nodeType":"VariableDeclaration","scope":25,"src":"486:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14,"name":"bytes32","nodeType":"ElementaryTypeName","src":"486:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"callbackAddress","nameLocation":"510:15:0","nodeType":"VariableDeclaration","scope":25,"src":"502:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"502:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"538:18:0","nodeType":"VariableDeclaration","scope":25,"src":"531:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18,"name":"bytes4","nodeType":"ElementaryTypeName","src":"531:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"nonce","nameLocation":"570:5:0","nodeType":"VariableDeclaration","scope":25,"src":"562:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24,"mutability":"mutable","name":"buf","nameLocation":"604:3:0","nodeType":"VariableDeclaration","scope":25,"src":"581:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":23,"nodeType":"UserDefinedTypeName","pathNode":{"id":22,"name":"BufferChainlink.buffer","nameLocations":["581:15:0","597:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"581:22:0"},"referencedDeclaration":1402,"src":"581:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"name":"Request","nameLocation":"472:7:0","nodeType":"StructDefinition","scope":268,"src":"465:147:0","visibility":"public"},{"body":{"id":69,"nodeType":"Block","src":"1155:183:0","statements":[{"expression":{"arguments":[{"expression":{"id":44,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1182:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":45,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1187:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1182:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":46,"name":"defaultBufferSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9,"src":"1192:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1161:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":43,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1177:4:0","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"1161:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":48,"nodeType":"ExpressionStatement","src":"1161:49:0"},{"expression":{"id":53,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1216:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":51,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1221:2:0","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"1216:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"1226:5:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1216:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54,"nodeType":"ExpressionStatement","src":"1216:15:0"},{"expression":{"id":59,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1237:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":57,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1242:15:0","memberName":"callbackAddress","nodeType":"MemberAccess","referencedDeclaration":17,"src":"1237:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"1260:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1237:35:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":60,"nodeType":"ExpressionStatement","src":"1237:35:0"},{"expression":{"id":65,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":61,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1278:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":63,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1283:18:0","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"1278:23:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":64,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"1304:12:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1278:38:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":66,"nodeType":"ExpressionStatement","src":"1278:38:0"},{"expression":{"id":67,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1329:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":40,"id":68,"nodeType":"Return","src":"1322:11:0"}]},"documentation":{"id":26,"nodeType":"StructuredDocumentation","src":"616:368:0","text":" @notice Initializes a Chainlink request\n @dev Sets the ID, callback address, and callback function signature on the request\n @param self The uninitialized request\n @param jobId The Job Specification ID\n @param callbackAddr The callback address\n @param callbackFunc The callback function signature\n @return The initialized request"},"id":70,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"996:10:0","nodeType":"FunctionDefinition","parameters":{"id":36,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29,"mutability":"mutable","name":"self","nameLocation":"1027:4:0","nodeType":"VariableDeclaration","scope":70,"src":"1012:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":28,"nodeType":"UserDefinedTypeName","pathNode":{"id":27,"name":"Request","nameLocations":["1012:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1012:7:0"},"referencedDeclaration":25,"src":"1012:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":31,"mutability":"mutable","name":"jobId","nameLocation":"1045:5:0","nodeType":"VariableDeclaration","scope":70,"src":"1037:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":30,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1037:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33,"mutability":"mutable","name":"callbackAddr","nameLocation":"1064:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1056:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35,"mutability":"mutable","name":"callbackFunc","nameLocation":"1089:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1082:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":34,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1082:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1006:99:0"},"returnParameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70,"src":"1129:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":38,"nodeType":"UserDefinedTypeName","pathNode":{"id":37,"name":"Chainlink.Request","nameLocations":["1129:9:0","1139:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1129:17:0"},"referencedDeclaration":25,"src":"1129:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1128:26:0"},"scope":268,"src":"987:351:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":96,"nodeType":"Block","src":"1648:98:0","statements":[{"expression":{"arguments":[{"expression":{"id":82,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1675:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":83,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1680:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1675:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"id":84,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1685:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1690:6:0","memberName":"length","nodeType":"MemberAccess","src":"1685:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1654:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":81,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1670:4:0","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"1654:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":86,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":87,"nodeType":"ExpressionStatement","src":"1654:43:0"},{"expression":{"arguments":[{"expression":{"id":91,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1726:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":92,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1731:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1726:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":93,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1736:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":88,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"1703:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1916_$","typeString":"type(library BufferChainlink)"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:6:0","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"1703:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1703:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":95,"nodeType":"ExpressionStatement","src":"1703:38:0"}]},"documentation":{"id":71,"nodeType":"StructuredDocumentation","src":"1342:230:0","text":" @notice Sets the data for the buffer without encoding CBOR on-chain\n @dev CBOR can be closed with curly-brackets {} or they can be left off\n @param self The initialized request\n @param data The CBOR data"},"id":97,"implemented":true,"kind":"function","modifiers":[],"name":"setBuffer","nameLocation":"1584:9:0","nodeType":"FunctionDefinition","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"self","nameLocation":"1609:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1594:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":73,"nodeType":"UserDefinedTypeName","pathNode":{"id":72,"name":"Request","nameLocations":["1594:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1594:7:0"},"referencedDeclaration":25,"src":"1594:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":76,"mutability":"mutable","name":"data","nameLocation":"1628:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1615:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75,"name":"bytes","nodeType":"ElementaryTypeName","src":"1615:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1593:40:0"},"returnParameters":{"id":78,"nodeType":"ParameterList","parameters":[],"src":"1648:0:0"},"scope":268,"src":"1575:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":124,"nodeType":"Block","src":"2055:71:0","statements":[{"expression":{"arguments":[{"id":113,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2083:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":108,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2061:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2066:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2061:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2070:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2061:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2061:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":115,"nodeType":"ExpressionStatement","src":"2061:26:0"},{"expression":{"arguments":[{"id":121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"2115:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2093:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2098:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2093:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2102:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2093:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2093:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":123,"nodeType":"ExpressionStatement","src":"2093:28:0"}]},"documentation":{"id":98,"nodeType":"StructuredDocumentation","src":"1750:198:0","text":" @notice Adds a string value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The string value to add"},"id":125,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"1960:3:0","nodeType":"FunctionDefinition","parameters":{"id":106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"self","nameLocation":"1984:4:0","nodeType":"VariableDeclaration","scope":125,"src":"1969:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":100,"nodeType":"UserDefinedTypeName","pathNode":{"id":99,"name":"Request","nameLocations":["1969:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1969:7:0"},"referencedDeclaration":25,"src":"1969:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":103,"mutability":"mutable","name":"key","nameLocation":"2008:3:0","nodeType":"VariableDeclaration","scope":125,"src":"1994:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":102,"name":"string","nodeType":"ElementaryTypeName","src":"1994:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":105,"mutability":"mutable","name":"value","nameLocation":"2031:5:0","nodeType":"VariableDeclaration","scope":125,"src":"2017:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":104,"name":"string","nodeType":"ElementaryTypeName","src":"2017:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1963:77:0"},"returnParameters":{"id":107,"nodeType":"ParameterList","parameters":[],"src":"2055:0:0"},"scope":268,"src":"1951:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":152,"nodeType":"Block","src":"2437:70:0","statements":[{"expression":{"arguments":[{"id":141,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"2465:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":136,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2443:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2448:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2443:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2452:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2443:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":143,"nodeType":"ExpressionStatement","src":"2443:26:0"},{"expression":{"arguments":[{"id":149,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"2496:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":144,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2475:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2480:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2475:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2484:11:0","memberName":"encodeBytes","nodeType":"MemberAccess","referencedDeclaration":2227,"src":"2475:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2475:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":151,"nodeType":"ExpressionStatement","src":"2475:27:0"}]},"documentation":{"id":126,"nodeType":"StructuredDocumentation","src":"2130:196:0","text":" @notice Adds a bytes value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The bytes value to add"},"id":153,"implemented":true,"kind":"function","modifiers":[],"name":"addBytes","nameLocation":"2338:8:0","nodeType":"FunctionDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"self","nameLocation":"2367:4:0","nodeType":"VariableDeclaration","scope":153,"src":"2352:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":128,"nodeType":"UserDefinedTypeName","pathNode":{"id":127,"name":"Request","nameLocations":["2352:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2352:7:0"},"referencedDeclaration":25,"src":"2352:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":131,"mutability":"mutable","name":"key","nameLocation":"2391:3:0","nodeType":"VariableDeclaration","scope":153,"src":"2377:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":130,"name":"string","nodeType":"ElementaryTypeName","src":"2377:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"value","nameLocation":"2413:5:0","nodeType":"VariableDeclaration","scope":153,"src":"2400:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":132,"name":"bytes","nodeType":"ElementaryTypeName","src":"2400:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2346:76:0"},"returnParameters":{"id":135,"nodeType":"ParameterList","parameters":[],"src":"2437:0:0"},"scope":268,"src":"2329:178:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":180,"nodeType":"Block","src":"2812:68:0","statements":[{"expression":{"arguments":[{"id":169,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":159,"src":"2840:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":164,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2818:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2823:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2818:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2827:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"2818:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":171,"nodeType":"ExpressionStatement","src":"2818:26:0"},{"expression":{"arguments":[{"id":177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"2869:5:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"expression":{"id":172,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2850:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2855:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2850:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2859:9:0","memberName":"encodeInt","nodeType":"MemberAccess","referencedDeclaration":2202,"src":"2850:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_int256_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":179,"nodeType":"ExpressionStatement","src":"2850:25:0"}]},"documentation":{"id":154,"nodeType":"StructuredDocumentation","src":"2511:198:0","text":" @notice Adds a int256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The int256 value to add"},"id":181,"implemented":true,"kind":"function","modifiers":[],"name":"addInt","nameLocation":"2721:6:0","nodeType":"FunctionDefinition","parameters":{"id":162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":157,"mutability":"mutable","name":"self","nameLocation":"2748:4:0","nodeType":"VariableDeclaration","scope":181,"src":"2733:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":156,"nodeType":"UserDefinedTypeName","pathNode":{"id":155,"name":"Request","nameLocations":["2733:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2733:7:0"},"referencedDeclaration":25,"src":"2733:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":159,"mutability":"mutable","name":"key","nameLocation":"2772:3:0","nodeType":"VariableDeclaration","scope":181,"src":"2758:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":158,"name":"string","nodeType":"ElementaryTypeName","src":"2758:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":161,"mutability":"mutable","name":"value","nameLocation":"2788:5:0","nodeType":"VariableDeclaration","scope":181,"src":"2781:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":160,"name":"int256","nodeType":"ElementaryTypeName","src":"2781:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2727:70:0"},"returnParameters":{"id":163,"nodeType":"ParameterList","parameters":[],"src":"2812:0:0"},"scope":268,"src":"2712:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":208,"nodeType":"Block","src":"3189:69:0","statements":[{"expression":{"arguments":[{"id":197,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":187,"src":"3217:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":192,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3195:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3200:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3195:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3204:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3195:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3195:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":199,"nodeType":"ExpressionStatement","src":"3195:26:0"},{"expression":{"arguments":[{"id":205,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"3247:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3227:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3232:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3227:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3236:10:0","memberName":"encodeUInt","nodeType":"MemberAccess","referencedDeclaration":2136,"src":"3227:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3227:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":207,"nodeType":"ExpressionStatement","src":"3227:26:0"}]},"documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"2884:200:0","text":" @notice Adds a uint256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The uint256 value to add"},"id":209,"implemented":true,"kind":"function","modifiers":[],"name":"addUint","nameLocation":"3096:7:0","nodeType":"FunctionDefinition","parameters":{"id":190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"self","nameLocation":"3124:4:0","nodeType":"VariableDeclaration","scope":209,"src":"3109:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":184,"nodeType":"UserDefinedTypeName","pathNode":{"id":183,"name":"Request","nameLocations":["3109:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3109:7:0"},"referencedDeclaration":25,"src":"3109:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":187,"mutability":"mutable","name":"key","nameLocation":"3148:3:0","nodeType":"VariableDeclaration","scope":209,"src":"3134:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":186,"name":"string","nodeType":"ElementaryTypeName","src":"3134:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":189,"mutability":"mutable","name":"value","nameLocation":"3165:5:0","nodeType":"VariableDeclaration","scope":209,"src":"3157:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":188,"name":"uint256","nodeType":"ElementaryTypeName","src":"3157:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3103:71:0"},"returnParameters":{"id":191,"nodeType":"ParameterList","parameters":[],"src":"3189:0:0"},"scope":268,"src":"3087:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":266,"nodeType":"Block","src":"3597:188:0","statements":[{"expression":{"arguments":[{"id":226,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":215,"src":"3625:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":221,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3603:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3608:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3603:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3612:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3603:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3603:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":228,"nodeType":"ExpressionStatement","src":"3603:26:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3635:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3640:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3635:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3644:10:0","memberName":"startArray","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"3635:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":235,"nodeType":"ExpressionStatement","src":"3635:21:0"},{"body":{"id":257,"nodeType":"Block","src":"3706:47:0","statements":[{"expression":{"arguments":[{"baseExpression":{"id":252,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3736:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":254,"indexExpression":{"id":253,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3743:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3736:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3714:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3719:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3714:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3723:12:0","memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2326,"src":"3714:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3714:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":256,"nodeType":"ExpressionStatement","src":"3714:32:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3682:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":241,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3686:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3693:6:0","memberName":"length","nodeType":"MemberAccess","src":"3686:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3682:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":258,"initializationExpression":{"assignments":[237],"declarations":[{"constant":false,"id":237,"mutability":"mutable","name":"i","nameLocation":"3675:1:0","nodeType":"VariableDeclaration","scope":258,"src":"3667:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":236,"name":"uint256","nodeType":"ElementaryTypeName","src":"3667:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":239,"initialValue":{"hexValue":"30","id":238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3679:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3667:13:0"},"loopExpression":{"expression":{"id":245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3701:3:0","subExpression":{"id":244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3701:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":246,"nodeType":"ExpressionStatement","src":"3701:3:0"},"nodeType":"ForStatement","src":"3662:91:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":259,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3758:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3763:3:0","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3758:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3767:11:0","memberName":"endSequence","nodeType":"MemberAccess","referencedDeclaration":2362,"src":"3758:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3758:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":265,"nodeType":"ExpressionStatement","src":"3758:22:0"}]},"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"3262:214:0","text":" @notice Adds an array of strings to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param values The array of string values to add"},"id":267,"implemented":true,"kind":"function","modifiers":[],"name":"addStringArray","nameLocation":"3488:14:0","nodeType":"FunctionDefinition","parameters":{"id":219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":213,"mutability":"mutable","name":"self","nameLocation":"3523:4:0","nodeType":"VariableDeclaration","scope":267,"src":"3508:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":212,"nodeType":"UserDefinedTypeName","pathNode":{"id":211,"name":"Request","nameLocations":["3508:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3508:7:0"},"referencedDeclaration":25,"src":"3508:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":215,"mutability":"mutable","name":"key","nameLocation":"3547:3:0","nodeType":"VariableDeclaration","scope":267,"src":"3533:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":214,"name":"string","nodeType":"ElementaryTypeName","src":"3533:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":218,"mutability":"mutable","name":"values","nameLocation":"3572:6:0","nodeType":"VariableDeclaration","scope":267,"src":"3556:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":216,"name":"string","nodeType":"ElementaryTypeName","src":"3556:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":217,"nodeType":"ArrayTypeName","src":"3556:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"3502:80:0"},"returnParameters":{"id":220,"nodeType":"ParameterList","parameters":[],"src":"3597:0:0"},"scope":268,"src":"3479:306:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":269,"src":"293:3494:0","usedErrors":[]}],"src":"32:3756:0"},"id":0},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[1076],"ENSInterface":[1156],"ENSResolver_Chainlink":[2373],"LinkTokenInterface":[1251],"OperatorInterface":[1331],"OracleInterface":[1370],"PointerInterface":[1394]},"id":862,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":270,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:1"},{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","file":"./Chainlink.sol","id":271,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":269,"src":"57:25:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","file":"./interfaces/ENSInterface.sol","id":272,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1157,"src":"83:39:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","file":"./interfaces/LinkTokenInterface.sol","id":273,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1252,"src":"123:45:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./interfaces/ChainlinkRequestInterface.sol","id":274,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1077,"src":"169:52:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","file":"./interfaces/OperatorInterface.sol","id":275,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1332,"src":"222:44:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","file":"./interfaces/PointerInterface.sol","id":276,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1395,"src":"267:43:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","file":"./vendor/ENSResolver.sol","id":278,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":2374,"src":"311:78:1","symbolAliases":[{"foreign":{"id":277,"name":"ENSResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"319:11:1","typeDescriptions":{}},"local":"ENSResolver_Chainlink","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"ChainlinkClient","contractDependencies":[],"contractKind":"contract","documentation":{"id":279,"nodeType":"StructuredDocumentation","src":"391:157:1","text":" @title The ChainlinkClient contract\n @notice Contract writers can inherit this contract in order to create requests for the\n Chainlink network"},"fullyImplemented":true,"id":861,"linearizedBaseContracts":[861],"name":"ChainlinkClient","nameLocation":"567:15:1","nodeType":"ContractDefinition","nodes":[{"global":false,"id":283,"libraryName":{"id":280,"name":"Chainlink","nameLocations":["593:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":268,"src":"593:9:1"},"nodeType":"UsingForDirective","src":"587:38:1","typeName":{"id":282,"nodeType":"UserDefinedTypeName","pathNode":{"id":281,"name":"Chainlink.Request","nameLocations":["607:9:1","617:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"607:17:1"},"referencedDeclaration":25,"src":"607:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"constant":true,"id":288,"mutability":"constant","name":"LINK_DIVISIBILITY","nameLocation":"655:17:1","nodeType":"VariableDeclaration","scope":861,"src":"629:52:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":284,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"675:2:1","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"679:2:1","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"675:6:1","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"internal"},{"constant":true,"id":291,"mutability":"constant","name":"AMOUNT_OVERRIDE","nameLocation":"710:15:1","nodeType":"VariableDeclaration","scope":861,"src":"685:44:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":289,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"728:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":297,"mutability":"constant","name":"SENDER_OVERRIDE","nameLocation":"758:15:1","nodeType":"VariableDeclaration","scope":861,"src":"733:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":292,"name":"address","nodeType":"ElementaryTypeName","src":"733:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"30","id":295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"784:1:1","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":294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"776:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":293,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:1","typeDescriptions":{}}},"id":296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"776:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":true,"id":300,"mutability":"constant","name":"ORACLE_ARGS_VERSION","nameLocation":"815:19:1","nodeType":"VariableDeclaration","scope":861,"src":"790:48:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":298,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":303,"mutability":"constant","name":"OPERATOR_ARGS_VERSION","nameLocation":"867:21:1","nodeType":"VariableDeclaration","scope":861,"src":"842:50:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint256","nodeType":"ElementaryTypeName","src":"842:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":308,"mutability":"constant","name":"ENS_TOKEN_SUBNAME","nameLocation":"921:17:1","nodeType":"VariableDeclaration","scope":861,"src":"896:62:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"896:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6c696e6b","id":306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"951:6:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""},"value":"link"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""}],"id":305,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"941:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"941:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":313,"mutability":"constant","name":"ENS_ORACLE_SUBNAME","nameLocation":"987:18:1","nodeType":"VariableDeclaration","scope":861,"src":"962:65:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"962:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6f7261636c65","id":311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1018:8:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""},"value":"oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""}],"id":310,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1008:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1008:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":316,"mutability":"constant","name":"LINK_TOKEN_POINTER","nameLocation":"1056:18:1","nodeType":"VariableDeclaration","scope":861,"src":"1031:88:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":314,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307843383962443445313633324433413433434230334141416435323632636265343033384263353731","id":315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571"},"visibility":"private"},{"constant":false,"id":319,"mutability":"mutable","name":"s_ens","nameLocation":"1145:5:1","nodeType":"VariableDeclaration","scope":861,"src":"1124:26:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"},"typeName":{"id":318,"nodeType":"UserDefinedTypeName","pathNode":{"id":317,"name":"ENSInterface","nameLocations":["1124:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":1156,"src":"1124:12:1"},"referencedDeclaration":1156,"src":"1124:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"visibility":"private"},{"constant":false,"id":321,"mutability":"mutable","name":"s_ensNode","nameLocation":"1170:9:1","nodeType":"VariableDeclaration","scope":861,"src":"1154:25:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1154:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":324,"mutability":"mutable","name":"s_link","nameLocation":"1210:6:1","nodeType":"VariableDeclaration","scope":861,"src":"1183:33:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"},"typeName":{"id":323,"nodeType":"UserDefinedTypeName","pathNode":{"id":322,"name":"LinkTokenInterface","nameLocations":["1183:18:1"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"1183:18:1"},"referencedDeclaration":1251,"src":"1183:18:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"visibility":"private"},{"constant":false,"id":327,"mutability":"mutable","name":"s_oracle","nameLocation":"1246:8:1","nodeType":"VariableDeclaration","scope":861,"src":"1220:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"},"typeName":{"id":326,"nodeType":"UserDefinedTypeName","pathNode":{"id":325,"name":"OperatorInterface","nameLocations":["1220:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":1331,"src":"1220:17:1"},"referencedDeclaration":1331,"src":"1220:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"visibility":"private"},{"constant":false,"id":330,"mutability":"mutable","name":"s_requestCount","nameLocation":"1274:14:1","nodeType":"VariableDeclaration","scope":861,"src":"1258:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":328,"name":"uint256","nodeType":"ElementaryTypeName","src":"1258:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1291:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":false,"id":334,"mutability":"mutable","name":"s_pendingRequests","nameLocation":"1332:17:1","nodeType":"VariableDeclaration","scope":861,"src":"1296:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":333,"keyType":{"id":331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1304:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1296:27:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":332,"name":"address","nodeType":"ElementaryTypeName","src":"1315:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"anonymous":false,"eventSelector":"b5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af9","id":338,"name":"ChainlinkRequested","nameLocation":"1360:18:1","nodeType":"EventDefinition","parameters":{"id":337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":336,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1395:2:1","nodeType":"VariableDeclaration","scope":338,"src":"1379:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1379:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1378:20:1"},"src":"1354:45:1"},{"anonymous":false,"eventSelector":"7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a","id":342,"name":"ChainlinkFulfilled","nameLocation":"1408:18:1","nodeType":"EventDefinition","parameters":{"id":341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":340,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1443:2:1","nodeType":"VariableDeclaration","scope":342,"src":"1427:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1427:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1426:20:1"},"src":"1402:45:1"},{"anonymous":false,"eventSelector":"e1fe3afa0f7f761ff0a8b89086790efd5140d2907ebd5b7ff6bfcb5e075fd4c5","id":346,"name":"ChainlinkCancelled","nameLocation":"1456:18:1","nodeType":"EventDefinition","parameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":344,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1491:2:1","nodeType":"VariableDeclaration","scope":346,"src":"1475:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1475:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1474:20:1"},"src":"1450:45:1"},{"body":{"id":372,"nodeType":"Block","src":"2018:115:1","statements":[{"assignments":[363],"declarations":[{"constant":false,"id":363,"mutability":"mutable","name":"req","nameLocation":"2049:3:1","nodeType":"VariableDeclaration","scope":372,"src":"2024:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":362,"nodeType":"UserDefinedTypeName","pathNode":{"id":361,"name":"Chainlink.Request","nameLocations":["2024:9:1","2034:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2024:17:1"},"referencedDeclaration":25,"src":"2024:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":364,"nodeType":"VariableDeclarationStatement","src":"2024:28:1"},{"expression":{"arguments":[{"id":367,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"2080:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":368,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"2088:12:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":369,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":353,"src":"2102:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":365,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"2065:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2069:10:1","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2065:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2065:63:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":358,"id":371,"nodeType":"Return","src":"2058:70:1"}]},"documentation":{"id":347,"nodeType":"StructuredDocumentation","src":"1499:348:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackAddr address to operate the callback on\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":373,"implemented":true,"kind":"function","modifiers":[],"name":"buildChainlinkRequest","nameLocation":"1859:21:1","nodeType":"FunctionDefinition","parameters":{"id":354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":349,"mutability":"mutable","name":"specId","nameLocation":"1894:6:1","nodeType":"VariableDeclaration","scope":373,"src":"1886:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1886:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":351,"mutability":"mutable","name":"callbackAddr","nameLocation":"1914:12:1","nodeType":"VariableDeclaration","scope":373,"src":"1906:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":350,"name":"address","nodeType":"ElementaryTypeName","src":"1906:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":353,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"1939:25:1","nodeType":"VariableDeclaration","scope":373,"src":"1932:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":352,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1932:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1880:88:1"},"returnParameters":{"id":358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":373,"src":"1992:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":356,"nodeType":"UserDefinedTypeName","pathNode":{"id":355,"name":"Chainlink.Request","nameLocations":["1992:9:1","2002:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1992:17:1"},"referencedDeclaration":25,"src":"1992:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1991:26:1"},"scope":861,"src":"1850:283:1","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":400,"nodeType":"Block","src":"2571:116:1","statements":[{"assignments":[388],"declarations":[{"constant":false,"id":388,"mutability":"mutable","name":"req","nameLocation":"2602:3:1","nodeType":"VariableDeclaration","scope":400,"src":"2577:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":387,"nodeType":"UserDefinedTypeName","pathNode":{"id":386,"name":"Chainlink.Request","nameLocations":["2577:9:1","2587:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2577:17:1"},"referencedDeclaration":25,"src":"2577:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":389,"nodeType":"VariableDeclarationStatement","src":"2577:28:1"},{"expression":{"arguments":[{"id":392,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"2633:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":395,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2649:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2641:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":393,"name":"address","nodeType":"ElementaryTypeName","src":"2641:7:1","typeDescriptions":{}}},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":397,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"2656:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":390,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"2618:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:10:1","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2618:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2618:64:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":383,"id":399,"nodeType":"Return","src":"2611:71:1"}]},"documentation":{"id":374,"nodeType":"StructuredDocumentation","src":"2137:288:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":401,"implemented":true,"kind":"function","modifiers":[],"name":"buildOperatorRequest","nameLocation":"2437:20:1","nodeType":"FunctionDefinition","parameters":{"id":379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":376,"mutability":"mutable","name":"specId","nameLocation":"2466:6:1","nodeType":"VariableDeclaration","scope":401,"src":"2458:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2458:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":378,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"2481:25:1","nodeType":"VariableDeclaration","scope":401,"src":"2474:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":377,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2474:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2457:50:1"},"returnParameters":{"id":383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":401,"src":"2543:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":381,"nodeType":"UserDefinedTypeName","pathNode":{"id":380,"name":"Chainlink.Request","nameLocations":["2543:9:1","2553:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2543:17:1"},"referencedDeclaration":25,"src":"2543:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"2542:26:1"},"scope":861,"src":"2428:259:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":421,"nodeType":"Block","src":"3096:73:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":415,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"3140:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3132:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":413,"name":"address","nodeType":"ElementaryTypeName","src":"3132:7:1","typeDescriptions":{}}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3132:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":417,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":405,"src":"3151:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":418,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":407,"src":"3156:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":412,"name":"sendChainlinkRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"3109:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3109:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":411,"id":420,"nodeType":"Return","src":"3102:62:1"}]},"documentation":{"id":402,"nodeType":"StructuredDocumentation","src":"2691:298:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev Calls `chainlinkRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":422,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequest","nameLocation":"3001:20:1","nodeType":"FunctionDefinition","parameters":{"id":408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":405,"mutability":"mutable","name":"req","nameLocation":"3047:3:1","nodeType":"VariableDeclaration","scope":422,"src":"3022:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":404,"nodeType":"UserDefinedTypeName","pathNode":{"id":403,"name":"Chainlink.Request","nameLocations":["3022:9:1","3032:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3022:17:1"},"referencedDeclaration":25,"src":"3022:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":407,"mutability":"mutable","name":"payment","nameLocation":"3060:7:1","nodeType":"VariableDeclaration","scope":422,"src":"3052:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":406,"name":"uint256","nodeType":"ElementaryTypeName","src":"3052:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:47:1"},"returnParameters":{"id":411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":422,"src":"3087:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3087:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3086:9:1"},"scope":861,"src":"2992:177:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":476,"nodeType":"Block","src":"3842:601:1","statements":[{"assignments":[436],"declarations":[{"constant":false,"id":436,"mutability":"mutable","name":"nonce","nameLocation":"3856:5:1","nodeType":"VariableDeclaration","scope":476,"src":"3848:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3848:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":438,"initialValue":{"id":437,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3864:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3848:30:1"},{"expression":{"id":443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":439,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3884:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":440,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"3901:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3909:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3901:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3884:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":444,"nodeType":"ExpressionStatement","src":"3884:26:1"},{"assignments":[446],"declarations":[{"constant":false,"id":446,"mutability":"mutable","name":"encodedRequest","nameLocation":"3929:14:1","nodeType":"VariableDeclaration","scope":476,"src":"3916:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":445,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":468,"initialValue":{"arguments":[{"expression":{"expression":{"id":449,"name":"ChainlinkRequestInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"3976:25:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ChainlinkRequestInterface_$1076_$","typeString":"type(contract ChainlinkRequestInterface)"}},"id":450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4002:13:1","memberName":"oracleRequest","nodeType":"MemberAccess","referencedDeclaration":1064,"src":"3976:39:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ChainlinkRequestInterface.oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes calldata)"}},"id":451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4016:8:1","memberName":"selector","nodeType":"MemberAccess","src":"3976:48:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":452,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"4032:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":453,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"4140:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":454,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4245:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4249:2:1","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"4245:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":458,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4267:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4259:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":456,"name":"address","nodeType":"ElementaryTypeName","src":"4259:7:1","typeDescriptions":{}}},"id":459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4259:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":460,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4280:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4284:18:1","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"4280:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":462,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4310:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":463,"name":"ORACLE_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":300,"src":"4323:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":464,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4350:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4354:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"4350:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4358:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4350:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3946:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3950:18:1","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3946:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3946:421:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3916:451:1"},{"expression":{"arguments":[{"id":470,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"4392:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":471,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4407:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":472,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"4414:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":473,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4423:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":469,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"4380:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":434,"id":475,"nodeType":"Return","src":"4373:65:1"}]},"documentation":{"id":423,"nodeType":"StructuredDocumentation","src":"3173:511:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":477,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequestTo","nameLocation":"3696:22:1","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":425,"mutability":"mutable","name":"oracleAddress","nameLocation":"3732:13:1","nodeType":"VariableDeclaration","scope":477,"src":"3724:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":424,"name":"address","nodeType":"ElementaryTypeName","src":"3724:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":428,"mutability":"mutable","name":"req","nameLocation":"3776:3:1","nodeType":"VariableDeclaration","scope":477,"src":"3751:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":427,"nodeType":"UserDefinedTypeName","pathNode":{"id":426,"name":"Chainlink.Request","nameLocations":["3751:9:1","3761:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3751:17:1"},"referencedDeclaration":25,"src":"3751:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"payment","nameLocation":"3793:7:1","nodeType":"VariableDeclaration","scope":477,"src":"3785:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":429,"name":"uint256","nodeType":"ElementaryTypeName","src":"3785:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3718:86:1"},"returnParameters":{"id":434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":433,"mutability":"mutable","name":"requestId","nameLocation":"3831:9:1","nodeType":"VariableDeclaration","scope":477,"src":"3823:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3823:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3822:19:1"},"scope":861,"src":"3687:756:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":497,"nodeType":"Block","src":"4907:72:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":491,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"4950:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4942:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":489,"name":"address","nodeType":"ElementaryTypeName","src":"4942:7:1","typeDescriptions":{}}},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4942:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":493,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"4961:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":494,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"4966:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":488,"name":"sendOperatorRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":549,"src":"4920:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4920:54:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":487,"id":496,"nodeType":"Return","src":"4913:61:1"}]},"documentation":{"id":478,"nodeType":"StructuredDocumentation","src":"4447:354:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev This function supports multi-word response\n @dev Calls `sendOperatorRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":498,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequest","nameLocation":"4813:19:1","nodeType":"FunctionDefinition","parameters":{"id":484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"req","nameLocation":"4858:3:1","nodeType":"VariableDeclaration","scope":498,"src":"4833:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":480,"nodeType":"UserDefinedTypeName","pathNode":{"id":479,"name":"Chainlink.Request","nameLocations":["4833:9:1","4843:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"4833:17:1"},"referencedDeclaration":25,"src":"4833:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":483,"mutability":"mutable","name":"payment","nameLocation":"4871:7:1","nodeType":"VariableDeclaration","scope":498,"src":"4863:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":482,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4832:47:1"},"returnParameters":{"id":487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":498,"src":"4898:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4898:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4897:9:1"},"scope":861,"src":"4804:175:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":548,"nodeType":"Block","src":"5704:576:1","statements":[{"assignments":[512],"declarations":[{"constant":false,"id":512,"mutability":"mutable","name":"nonce","nameLocation":"5718:5:1","nodeType":"VariableDeclaration","scope":548,"src":"5710:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":511,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":514,"initialValue":{"id":513,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5726:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5710:30:1"},{"expression":{"id":519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":515,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5746:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":516,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"5763:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5771:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5763:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5746:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":520,"nodeType":"ExpressionStatement","src":"5746:26:1"},{"assignments":[522],"declarations":[{"constant":false,"id":522,"mutability":"mutable","name":"encodedRequest","nameLocation":"5791:14:1","nodeType":"VariableDeclaration","scope":548,"src":"5778:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":521,"name":"bytes","nodeType":"ElementaryTypeName","src":"5778:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":540,"initialValue":{"arguments":[{"expression":{"expression":{"id":525,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"5838:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5856:15:1","memberName":"operatorRequest","nodeType":"MemberAccess","referencedDeclaration":1276,"src":"5838:33:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function OperatorInterface.operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes calldata)"}},"id":527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5872:8:1","memberName":"selector","nodeType":"MemberAccess","src":"5838:42:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":528,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"5888:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":529,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"5996:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":530,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6101:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6105:2:1","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"6101:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":532,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6115:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6119:18:1","memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"6115:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":534,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6145:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":535,"name":"OPERATOR_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"6158:21:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":536,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6187:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6191:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"6187:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6195:3:1","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"6187:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":523,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5808:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5812:18:1","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"5808:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5808:396:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5778:426:1"},{"expression":{"arguments":[{"id":542,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"6229:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":543,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6244:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":544,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"6251:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":545,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"6260:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":541,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"6217:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6217:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":510,"id":547,"nodeType":"Return","src":"6210:65:1"}]},"documentation":{"id":499,"nodeType":"StructuredDocumentation","src":"4983:564:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev This function supports multi-word response\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":549,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequestTo","nameLocation":"5559:21:1","nodeType":"FunctionDefinition","parameters":{"id":507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":501,"mutability":"mutable","name":"oracleAddress","nameLocation":"5594:13:1","nodeType":"VariableDeclaration","scope":549,"src":"5586:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":500,"name":"address","nodeType":"ElementaryTypeName","src":"5586:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":504,"mutability":"mutable","name":"req","nameLocation":"5638:3:1","nodeType":"VariableDeclaration","scope":549,"src":"5613:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":503,"nodeType":"UserDefinedTypeName","pathNode":{"id":502,"name":"Chainlink.Request","nameLocations":["5613:9:1","5623:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"5613:17:1"},"referencedDeclaration":25,"src":"5613:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":506,"mutability":"mutable","name":"payment","nameLocation":"5655:7:1","nodeType":"VariableDeclaration","scope":549,"src":"5647:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":505,"name":"uint256","nodeType":"ElementaryTypeName","src":"5647:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5580:86:1"},"returnParameters":{"id":510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":509,"mutability":"mutable","name":"requestId","nameLocation":"5693:9:1","nodeType":"VariableDeclaration","scope":549,"src":"5685:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5685:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5684:19:1"},"scope":861,"src":"5550:730:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":593,"nodeType":"Block","src":"6790:269:1","statements":[{"expression":{"id":571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":563,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6796:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":567,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6835:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}},{"id":568,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"6841:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":565,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6818:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6822:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"6818:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":564,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6808:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6808:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6796:52:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":572,"nodeType":"ExpressionStatement","src":"6796:52:1"},{"expression":{"id":577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":573,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"6854:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":575,"indexExpression":{"id":574,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6872:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6854:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":576,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6885:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6854:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":578,"nodeType":"ExpressionStatement","src":"6854:44:1"},{"eventCall":{"arguments":[{"id":580,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6928:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":579,"name":"ChainlinkRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"6909:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6909:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":582,"nodeType":"EmitStatement","src":"6904:34:1"},{"expression":{"arguments":[{"arguments":[{"id":586,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6975:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":587,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"6990:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":588,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":558,"src":"6999:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":584,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"6952:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6959:15:1","memberName":"transferAndCall","nodeType":"MemberAccess","referencedDeclaration":1239,"src":"6952:22:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory) external returns (bool)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6952:62:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65","id":590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7016:37:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""},"value":"unable to transferAndCall to oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""}],"id":583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6944:7:1","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,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6944:110:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":592,"nodeType":"ExpressionStatement","src":"6944:110:1"}]},"documentation":{"id":550,"nodeType":"StructuredDocumentation","src":"6284:342:1","text":" @notice Make a request to an oracle\n @param oracleAddress The address of the oracle for the request\n @param nonce used to generate the request ID\n @param payment The amount of LINK to send for the request\n @param encodedRequest data encoded for request type specific format\n @return requestId The request ID"},"id":594,"implemented":true,"kind":"function","modifiers":[],"name":"_rawRequest","nameLocation":"6638:11:1","nodeType":"FunctionDefinition","parameters":{"id":559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":552,"mutability":"mutable","name":"oracleAddress","nameLocation":"6663:13:1","nodeType":"VariableDeclaration","scope":594,"src":"6655:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"6655:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":554,"mutability":"mutable","name":"nonce","nameLocation":"6690:5:1","nodeType":"VariableDeclaration","scope":594,"src":"6682:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":553,"name":"uint256","nodeType":"ElementaryTypeName","src":"6682:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":556,"mutability":"mutable","name":"payment","nameLocation":"6709:7:1","nodeType":"VariableDeclaration","scope":594,"src":"6701:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":555,"name":"uint256","nodeType":"ElementaryTypeName","src":"6701:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":558,"mutability":"mutable","name":"encodedRequest","nameLocation":"6735:14:1","nodeType":"VariableDeclaration","scope":594,"src":"6722:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":557,"name":"bytes","nodeType":"ElementaryTypeName","src":"6722:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6649:104:1"},"returnParameters":{"id":562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":561,"mutability":"mutable","name":"requestId","nameLocation":"6779:9:1","nodeType":"VariableDeclaration","scope":594,"src":"6771:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6771:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6770:19:1"},"scope":861,"src":"6629:430:1","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":633,"nodeType":"Block","src":"7713:250:1","statements":[{"assignments":[608],"declarations":[{"constant":false,"id":608,"mutability":"mutable","name":"requested","nameLocation":"7737:9:1","nodeType":"VariableDeclaration","scope":633,"src":"7719:27:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"},"typeName":{"id":607,"nodeType":"UserDefinedTypeName","pathNode":{"id":606,"name":"OperatorInterface","nameLocations":["7719:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":1331,"src":"7719:17:1"},"referencedDeclaration":1331,"src":"7719:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"visibility":"internal"}],"id":614,"initialValue":{"arguments":[{"baseExpression":{"id":610,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7767:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":612,"indexExpression":{"id":611,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7785:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7767:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":609,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"7749:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7749:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"nodeType":"VariableDeclarationStatement","src":"7719:77:1"},{"expression":{"id":618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7802:35:1","subExpression":{"baseExpression":{"id":615,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7809:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":617,"indexExpression":{"id":616,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7827:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7809:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":619,"nodeType":"ExpressionStatement","src":"7802:35:1"},{"eventCall":{"arguments":[{"id":621,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7867:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":620,"name":"ChainlinkCancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"7848:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7848:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":623,"nodeType":"EmitStatement","src":"7843:34:1"},{"expression":{"arguments":[{"id":627,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7913:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":628,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"7924:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":629,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":601,"src":"7933:12:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":630,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":603,"src":"7947:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":624,"name":"requested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"7883:9:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"id":626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7893:19:1","memberName":"cancelOracleRequest","nodeType":"MemberAccess","referencedDeclaration":1075,"src":"7883:29:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes4_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,bytes4,uint256) external"}},"id":631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7883:75:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":632,"nodeType":"ExpressionStatement","src":"7883:75:1"}]},"documentation":{"id":595,"nodeType":"StructuredDocumentation","src":"7063:509:1","text":" @notice Allows a request to be cancelled if it has not been fulfilled\n @dev Requires keeping track of the expiration value emitted from the oracle contract.\n Deletes the request from the `pendingRequests` mapping.\n Emits ChainlinkCancelled event.\n @param requestId The request ID\n @param payment The amount of LINK sent for the request\n @param callbackFunc The callback function specified for the request\n @param expiration The time of the expiration for the request"},"id":634,"implemented":true,"kind":"function","modifiers":[],"name":"cancelChainlinkRequest","nameLocation":"7584:22:1","nodeType":"FunctionDefinition","parameters":{"id":604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":597,"mutability":"mutable","name":"requestId","nameLocation":"7620:9:1","nodeType":"VariableDeclaration","scope":634,"src":"7612:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7612:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":599,"mutability":"mutable","name":"payment","nameLocation":"7643:7:1","nodeType":"VariableDeclaration","scope":634,"src":"7635:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7635:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":601,"mutability":"mutable","name":"callbackFunc","nameLocation":"7663:12:1","nodeType":"VariableDeclaration","scope":634,"src":"7656:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":600,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7656:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":603,"mutability":"mutable","name":"expiration","nameLocation":"7689:10:1","nodeType":"VariableDeclaration","scope":634,"src":"7681:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":602,"name":"uint256","nodeType":"ElementaryTypeName","src":"7681:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7606:97:1"},"returnParameters":{"id":605,"nodeType":"ParameterList","parameters":[],"src":"7713:0:1"},"scope":861,"src":"7575:388:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":642,"nodeType":"Block","src":"8238:32:1","statements":[{"expression":{"id":640,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"8251:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":639,"id":641,"nodeType":"Return","src":"8244:21:1"}]},"documentation":{"id":635,"nodeType":"StructuredDocumentation","src":"7967:205:1","text":" @notice the next request count to be used in generating a nonce\n @dev starts at 1 in order to ensure consistent gas cost\n @return returns the next request count to be used in a nonce"},"id":643,"implemented":true,"kind":"function","modifiers":[],"name":"getNextRequestCount","nameLocation":"8184:19:1","nodeType":"FunctionDefinition","parameters":{"id":636,"nodeType":"ParameterList","parameters":[],"src":"8203:2:1"},"returnParameters":{"id":639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":643,"src":"8229:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":637,"name":"uint256","nodeType":"ElementaryTypeName","src":"8229:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8228:9:1"},"scope":861,"src":"8175:95:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":655,"nodeType":"Block","src":"8451:54:1","statements":[{"expression":{"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":649,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"8457:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":651,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"8486:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":650,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1331,"src":"8468:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1331_$","typeString":"type(contract OperatorInterface)"}},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8468:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"src":"8457:43:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}},"id":654,"nodeType":"ExpressionStatement","src":"8457:43:1"}]},"documentation":{"id":644,"nodeType":"StructuredDocumentation","src":"8274:114:1","text":" @notice Sets the stored oracle address\n @param oracleAddress The address of the oracle contract"},"id":656,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkOracle","nameLocation":"8400:18:1","nodeType":"FunctionDefinition","parameters":{"id":647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":646,"mutability":"mutable","name":"oracleAddress","nameLocation":"8427:13:1","nodeType":"VariableDeclaration","scope":656,"src":"8419:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":645,"name":"address","nodeType":"ElementaryTypeName","src":"8419:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8418:23:1"},"returnParameters":{"id":648,"nodeType":"ParameterList","parameters":[],"src":"8451:0:1"},"scope":861,"src":"8391:114:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":668,"nodeType":"Block","src":"8682:51:1","statements":[{"expression":{"id":666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":662,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"8688:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":664,"name":"linkAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"8716:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":663,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"8697:18:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1251_$","typeString":"type(contract LinkTokenInterface)"}},"id":665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8697:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"src":"8688:40:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":667,"nodeType":"ExpressionStatement","src":"8688:40:1"}]},"documentation":{"id":657,"nodeType":"StructuredDocumentation","src":"8509:113:1","text":" @notice Sets the LINK token address\n @param linkAddress The address of the LINK token contract"},"id":669,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkToken","nameLocation":"8634:17:1","nodeType":"FunctionDefinition","parameters":{"id":660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":659,"mutability":"mutable","name":"linkAddress","nameLocation":"8660:11:1","nodeType":"VariableDeclaration","scope":669,"src":"8652:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":658,"name":"address","nodeType":"ElementaryTypeName","src":"8652:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8651:21:1"},"returnParameters":{"id":661,"nodeType":"ParameterList","parameters":[],"src":"8682:0:1"},"scope":861,"src":"8625:108:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":681,"nodeType":"Block","src":"8900:79:1","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":675,"name":"LINK_TOKEN_POINTER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"8941:18:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":674,"name":"PointerInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"8924:16:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PointerInterface_$1394_$","typeString":"type(contract PointerInterface)"}},"id":676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8924:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PointerInterface_$1394","typeString":"contract PointerInterface"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8961:10:1","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":1393,"src":"8924:47:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8924:49:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":673,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"8906:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8906:68:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":680,"nodeType":"ExpressionStatement","src":"8906:68:1"}]},"documentation":{"id":670,"nodeType":"StructuredDocumentation","src":"8737:116:1","text":" @notice Sets the Chainlink token address for the public\n network as given by the Pointer contract"},"id":682,"implemented":true,"kind":"function","modifiers":[],"name":"setPublicChainlinkToken","nameLocation":"8865:23:1","nodeType":"FunctionDefinition","parameters":{"id":671,"nodeType":"ParameterList","parameters":[],"src":"8888:2:1"},"returnParameters":{"id":672,"nodeType":"ParameterList","parameters":[],"src":"8900:0:1"},"scope":861,"src":"8856:123:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":693,"nodeType":"Block","src":"9163:33:1","statements":[{"expression":{"arguments":[{"id":690,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"9184:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}],"id":689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9176:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":688,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:1","typeDescriptions":{}}},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9176:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":687,"id":692,"nodeType":"Return","src":"9169:22:1"}]},"documentation":{"id":683,"nodeType":"StructuredDocumentation","src":"8983:112:1","text":" @notice Retrieves the stored address of the LINK token\n @return The address of the LINK token"},"id":694,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkTokenAddress","nameLocation":"9107:21:1","nodeType":"FunctionDefinition","parameters":{"id":684,"nodeType":"ParameterList","parameters":[],"src":"9128:2:1"},"returnParameters":{"id":687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":694,"src":"9154:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":685,"name":"address","nodeType":"ElementaryTypeName","src":"9154:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9153:9:1"},"scope":861,"src":"9098:98:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":705,"nodeType":"Block","src":"9391:35:1","statements":[{"expression":{"arguments":[{"id":702,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"9412:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1331","typeString":"contract OperatorInterface"}],"id":701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9404:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"9404:7:1","typeDescriptions":{}}},"id":703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9404:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":699,"id":704,"nodeType":"Return","src":"9397:24:1"}]},"documentation":{"id":695,"nodeType":"StructuredDocumentation","src":"9200:122:1","text":" @notice Retrieves the stored address of the oracle contract\n @return The address of the oracle contract"},"id":706,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkOracleAddress","nameLocation":"9334:22:1","nodeType":"FunctionDefinition","parameters":{"id":696,"nodeType":"ParameterList","parameters":[],"src":"9356:2:1"},"returnParameters":{"id":699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":706,"src":"9382:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":697,"name":"address","nodeType":"ElementaryTypeName","src":"9382:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9381:9:1"},"scope":861,"src":"9325:101:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":723,"nodeType":"Block","src":"9819:55:1","statements":[{"expression":{"id":721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":717,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"9825:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":719,"indexExpression":{"id":718,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9843:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9825:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":720,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":709,"src":"9856:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9825:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":722,"nodeType":"ExpressionStatement","src":"9825:44:1"}]},"documentation":{"id":707,"nodeType":"StructuredDocumentation","src":"9430:269:1","text":" @notice Allows for a request which was created on another contract to be fulfilled\n on this contract\n @param oracleAddress The address of the oracle contract that will fulfill the request\n @param requestId The request ID used for the response"},"id":724,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":714,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9808:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":715,"kind":"modifierInvocation","modifierName":{"id":713,"name":"notPendingRequest","nameLocations":["9790:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":860,"src":"9790:17:1"},"nodeType":"ModifierInvocation","src":"9790:28:1"}],"name":"addChainlinkExternalRequest","nameLocation":"9711:27:1","nodeType":"FunctionDefinition","parameters":{"id":712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":709,"mutability":"mutable","name":"oracleAddress","nameLocation":"9747:13:1","nodeType":"VariableDeclaration","scope":724,"src":"9739:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":708,"name":"address","nodeType":"ElementaryTypeName","src":"9739:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":711,"mutability":"mutable","name":"requestId","nameLocation":"9770:9:1","nodeType":"VariableDeclaration","scope":724,"src":"9762:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9762:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9738:42:1"},"returnParameters":{"id":716,"nodeType":"ParameterList","parameters":[],"src":"9819:0:1"},"scope":861,"src":"9702:172:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":772,"nodeType":"Block","src":"10207:326:1","statements":[{"expression":{"id":736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":732,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10213:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":734,"name":"ensAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"10234:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":733,"name":"ENSInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"10221:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSInterface_$1156_$","typeString":"type(contract ENSInterface)"}},"id":735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10221:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"src":"10213:32:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":737,"nodeType":"ExpressionStatement","src":"10213:32:1"},{"expression":{"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":738,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10251:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":739,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":729,"src":"10263:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10251:16:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":741,"nodeType":"ExpressionStatement","src":"10251:16:1"},{"assignments":[743],"declarations":[{"constant":false,"id":743,"mutability":"mutable","name":"linkSubnode","nameLocation":"10281:11:1","nodeType":"VariableDeclaration","scope":772,"src":"10273:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10273:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":751,"initialValue":{"arguments":[{"arguments":[{"id":747,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10322:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":748,"name":"ENS_TOKEN_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":308,"src":"10333:17:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":745,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10305:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10309:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"10305:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10305:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":744,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10295:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10295:57:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10273:79:1"},{"assignments":[754],"declarations":[{"constant":false,"id":754,"mutability":"mutable","name":"resolver","nameLocation":"10380:8:1","nodeType":"VariableDeclaration","scope":772,"src":"10358:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"},"typeName":{"id":753,"nodeType":"UserDefinedTypeName","pathNode":{"id":752,"name":"ENSResolver_Chainlink","nameLocations":["10358:21:1"],"nodeType":"IdentifierPath","referencedDeclaration":2373,"src":"10358:21:1"},"referencedDeclaration":2373,"src":"10358:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":761,"initialValue":{"arguments":[{"arguments":[{"id":758,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10428:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":756,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10413:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10419:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":1148,"src":"10413:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10413:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":755,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"10391:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2373_$","typeString":"type(contract ENSResolver)"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10391:50:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10358:83:1"},{"expression":{"arguments":[{"arguments":[{"id":765,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10479:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":763,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":754,"src":"10465:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10474:4:1","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2372,"src":"10465:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10465:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":762,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"10447:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10447:45:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":768,"nodeType":"ExpressionStatement","src":"10447:45:1"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":769,"name":"updateChainlinkOracleWithENS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"10498:28:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10498:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":771,"nodeType":"ExpressionStatement","src":"10498:30:1"}]},"documentation":{"id":725,"nodeType":"StructuredDocumentation","src":"9878:254:1","text":" @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n @dev Accounts for subnodes having different resolvers\n @param ensAddress The address of the ENS contract\n @param node The ENS node hash"},"id":773,"implemented":true,"kind":"function","modifiers":[],"name":"useChainlinkWithENS","nameLocation":"10144:19:1","nodeType":"FunctionDefinition","parameters":{"id":730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":727,"mutability":"mutable","name":"ensAddress","nameLocation":"10172:10:1","nodeType":"VariableDeclaration","scope":773,"src":"10164:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":726,"name":"address","nodeType":"ElementaryTypeName","src":"10164:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":729,"mutability":"mutable","name":"node","nameLocation":"10192:4:1","nodeType":"VariableDeclaration","scope":773,"src":"10184:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10184:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10163:34:1"},"returnParameters":{"id":731,"nodeType":"ParameterList","parameters":[],"src":"10207:0:1"},"scope":861,"src":"10135:398:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":804,"nodeType":"Block","src":"10776:238:1","statements":[{"assignments":[778],"declarations":[{"constant":false,"id":778,"mutability":"mutable","name":"oracleSubnode","nameLocation":"10790:13:1","nodeType":"VariableDeclaration","scope":804,"src":"10782:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10782:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":786,"initialValue":{"arguments":[{"arguments":[{"id":782,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10833:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":783,"name":"ENS_ORACLE_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":313,"src":"10844:18:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10816:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10820:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"10816:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10816:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":779,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10806:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10806:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10782:82:1"},{"assignments":[789],"declarations":[{"constant":false,"id":789,"mutability":"mutable","name":"resolver","nameLocation":"10892:8:1","nodeType":"VariableDeclaration","scope":804,"src":"10870:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"},"typeName":{"id":788,"nodeType":"UserDefinedTypeName","pathNode":{"id":787,"name":"ENSResolver_Chainlink","nameLocations":["10870:21:1"],"nodeType":"IdentifierPath","referencedDeclaration":2373,"src":"10870:21:1"},"referencedDeclaration":2373,"src":"10870:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":796,"initialValue":{"arguments":[{"arguments":[{"id":793,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10940:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":791,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10925:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$1156","typeString":"contract ENSInterface"}},"id":792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10931:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":1148,"src":"10925:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10925:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":790,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"10903:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2373_$","typeString":"type(contract ENSResolver)"}},"id":795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10903:52:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10870:85:1"},{"expression":{"arguments":[{"arguments":[{"id":800,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10994:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":798,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"10980:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2373","typeString":"contract ENSResolver"}},"id":799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10989:4:1","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2372,"src":"10980:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10980:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":797,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"10961:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10961:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":803,"nodeType":"ExpressionStatement","src":"10961:48:1"}]},"documentation":{"id":774,"nodeType":"StructuredDocumentation","src":"10537:187:1","text":" @notice Sets the stored oracle contract with the address resolved by ENS\n @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously"},"id":805,"implemented":true,"kind":"function","modifiers":[],"name":"updateChainlinkOracleWithENS","nameLocation":"10736:28:1","nodeType":"FunctionDefinition","parameters":{"id":775,"nodeType":"ParameterList","parameters":[],"src":"10764:2:1"},"returnParameters":{"id":776,"nodeType":"ParameterList","parameters":[],"src":"10776:0:1"},"scope":861,"src":"10727:287:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":814,"nodeType":"Block","src":"11402:6:1","statements":[]},"documentation":{"id":806,"nodeType":"StructuredDocumentation","src":"11018:223:1","text":" @notice Ensures that the fulfillment is valid for this contract\n @dev Use if the contract developer prefers methods instead of modifiers for validation\n @param requestId The request ID for fulfillment"},"id":815,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":811,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":808,"src":"11342:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":812,"kind":"modifierInvocation","modifierName":{"id":810,"name":"recordChainlinkFulfillment","nameLocations":["11315:26:1"],"nodeType":"IdentifierPath","referencedDeclaration":841,"src":"11315:26:1"},"nodeType":"ModifierInvocation","src":"11315:37:1"}],"name":"validateChainlinkCallback","nameLocation":"11253:25:1","nodeType":"FunctionDefinition","parameters":{"id":809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":808,"mutability":"mutable","name":"requestId","nameLocation":"11287:9:1","nodeType":"VariableDeclaration","scope":815,"src":"11279:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11279:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11278:19:1"},"returnParameters":{"id":813,"nodeType":"ParameterList","parameters":[],"src":"11402:0:1"},"scope":861,"src":"11244:164:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":840,"nodeType":"Block","src":"11635:194:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":821,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11649:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11653:6:1","memberName":"sender","nodeType":"MemberAccess","src":"11649:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":823,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11663:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":825,"indexExpression":{"id":824,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11681:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11663:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11649:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374","id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11693:42:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""},"value":"Source must be the oracle of the request"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""}],"id":820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11641:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11641:95:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":829,"nodeType":"ExpressionStatement","src":"11641:95:1"},{"expression":{"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11742:35:1","subExpression":{"baseExpression":{"id":830,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11749:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":832,"indexExpression":{"id":831,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11767:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11749:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":834,"nodeType":"ExpressionStatement","src":"11742:35:1"},{"eventCall":{"arguments":[{"id":836,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11807:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":835,"name":"ChainlinkFulfilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"11788:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11788:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":838,"nodeType":"EmitStatement","src":"11783:34:1"},{"id":839,"nodeType":"PlaceholderStatement","src":"11823:1:1"}]},"documentation":{"id":816,"nodeType":"StructuredDocumentation","src":"11412:165:1","text":" @dev Reverts if the sender is not the oracle of the request.\n Emits ChainlinkFulfilled event.\n @param requestId The request ID for fulfillment"},"id":841,"name":"recordChainlinkFulfillment","nameLocation":"11589:26:1","nodeType":"ModifierDefinition","parameters":{"id":819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":818,"mutability":"mutable","name":"requestId","nameLocation":"11624:9:1","nodeType":"VariableDeclaration","scope":841,"src":"11616:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11616:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11615:19:1"},"src":"11580:249:1","virtual":false,"visibility":"internal"},{"body":{"id":859,"nodeType":"Block","src":"11996:99:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":847,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"12010:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":849,"indexExpression":{"id":848,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":844,"src":"12028:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12010:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12050:1:1","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":851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12042:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":850,"name":"address","nodeType":"ElementaryTypeName","src":"12042:7:1","typeDescriptions":{}}},"id":853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12042:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12010:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265717565737420697320616c72656164792070656e64696e67","id":855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12054:28:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""},"value":"Request is already pending"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""}],"id":846,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12002:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12002:81:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":857,"nodeType":"ExpressionStatement","src":"12002:81:1"},{"id":858,"nodeType":"PlaceholderStatement","src":"12089:1:1"}]},"documentation":{"id":842,"nodeType":"StructuredDocumentation","src":"11833:114:1","text":" @dev Reverts if the request is already pending\n @param requestId The request ID for fulfillment"},"id":860,"name":"notPendingRequest","nameLocation":"11959:17:1","nodeType":"ModifierDefinition","parameters":{"id":845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":844,"mutability":"mutable","name":"requestId","nameLocation":"11985:9:1","nodeType":"VariableDeclaration","scope":860,"src":"11977:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11977:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11976:19:1"},"src":"11950:145:1","virtual":false,"visibility":"internal"}],"scope":862,"src":"549:11548:1","usedErrors":[]}],"src":"32:12066:1"},"id":1},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","exportedSymbols":{"ConfirmedOwner":[881],"ConfirmedOwnerWithProposal":[1043],"OwnableInterface":[1386]},"id":882,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":863,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:2"},{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol","file":"./ConfirmedOwnerWithProposal.sol","id":864,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":882,"sourceUnit":1044,"src":"57:42:2","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":866,"name":"ConfirmedOwnerWithProposal","nameLocations":["239:26:2"],"nodeType":"IdentifierPath","referencedDeclaration":1043,"src":"239:26:2"},"id":867,"nodeType":"InheritanceSpecifier","src":"239:26:2"}],"canonicalName":"ConfirmedOwner","contractDependencies":[],"contractKind":"contract","documentation":{"id":865,"nodeType":"StructuredDocumentation","src":"101:110:2","text":" @title The ConfirmedOwner contract\n @notice A contract with helpers for basic contract ownership."},"fullyImplemented":true,"id":881,"linearizedBaseContracts":[881,1043,1386],"name":"ConfirmedOwner","nameLocation":"221:14:2","nodeType":"ContractDefinition","nodes":[{"body":{"id":879,"nodeType":"Block","src":"349:2:2","statements":[]},"id":880,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":872,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":869,"src":"327:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"345:1:2","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":874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"337:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":873,"name":"address","nodeType":"ElementaryTypeName","src":"337:7:2","typeDescriptions":{}}},"id":876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"337:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":877,"kind":"baseConstructorSpecifier","modifierName":{"id":871,"name":"ConfirmedOwnerWithProposal","nameLocations":["300:26:2"],"nodeType":"IdentifierPath","referencedDeclaration":1043,"src":"300:26:2"},"nodeType":"ModifierInvocation","src":"300:48:2"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":869,"mutability":"mutable","name":"newOwner","nameLocation":"290:8:2","nodeType":"VariableDeclaration","scope":880,"src":"282:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":868,"name":"address","nodeType":"ElementaryTypeName","src":"282:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"281:18:2"},"returnParameters":{"id":878,"nodeType":"ParameterList","parameters":[],"src":"349:0:2"},"scope":881,"src":"270:81:2","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":882,"src":"212:141:2","usedErrors":[]}],"src":"32:322:2"},"id":2},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol","exportedSymbols":{"ConfirmedOwnerWithProposal":[1043],"OwnableInterface":[1386]},"id":1044,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":883,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:3"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol","file":"./interfaces/OwnableInterface.sol","id":884,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1044,"sourceUnit":1387,"src":"57:43:3","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":886,"name":"OwnableInterface","nameLocations":["252:16:3"],"nodeType":"IdentifierPath","referencedDeclaration":1386,"src":"252:16:3"},"id":887,"nodeType":"InheritanceSpecifier","src":"252:16:3"}],"canonicalName":"ConfirmedOwnerWithProposal","contractDependencies":[],"contractKind":"contract","documentation":{"id":885,"nodeType":"StructuredDocumentation","src":"102:110:3","text":" @title The ConfirmedOwner contract\n @notice A contract with helpers for basic contract ownership."},"fullyImplemented":true,"id":1043,"linearizedBaseContracts":[1043,1386],"name":"ConfirmedOwnerWithProposal","nameLocation":"222:26:3","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":889,"mutability":"mutable","name":"s_owner","nameLocation":"289:7:3","nodeType":"VariableDeclaration","scope":1043,"src":"273:23:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":888,"name":"address","nodeType":"ElementaryTypeName","src":"273:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":891,"mutability":"mutable","name":"s_pendingOwner","nameLocation":"316:14:3","nodeType":"VariableDeclaration","scope":1043,"src":"300:30:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":890,"name":"address","nodeType":"ElementaryTypeName","src":"300:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278","id":897,"name":"OwnershipTransferRequested","nameLocation":"341:26:3","nodeType":"EventDefinition","parameters":{"id":896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":893,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"384:4:3","nodeType":"VariableDeclaration","scope":897,"src":"368:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":892,"name":"address","nodeType":"ElementaryTypeName","src":"368:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":895,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"406:2:3","nodeType":"VariableDeclaration","scope":897,"src":"390:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":894,"name":"address","nodeType":"ElementaryTypeName","src":"390:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"367:42:3"},"src":"335:75:3"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":903,"name":"OwnershipTransferred","nameLocation":"419:20:3","nodeType":"EventDefinition","parameters":{"id":902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":899,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"456:4:3","nodeType":"VariableDeclaration","scope":903,"src":"440:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":898,"name":"address","nodeType":"ElementaryTypeName","src":"440:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":901,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"478:2:3","nodeType":"VariableDeclaration","scope":903,"src":"462:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":900,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"439:42:3"},"src":"413:69:3"},{"body":{"id":936,"nodeType":"Block","src":"538:179:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":911,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"552:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"572:1:3","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":913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"564:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":912,"name":"address","nodeType":"ElementaryTypeName","src":"564:7:3","typeDescriptions":{}}},"id":915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"564:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"552:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","id":917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"576:26:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2","typeString":"literal_string \"Cannot set owner to zero\""},"value":"Cannot set owner to zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2","typeString":"literal_string \"Cannot set owner to zero\""}],"id":910,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"544:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"544:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":919,"nodeType":"ExpressionStatement","src":"544:59:3"},{"expression":{"id":922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":920,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"610:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":921,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"620:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"610:18:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":923,"nodeType":"ExpressionStatement","src":"610:18:3"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":924,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"638:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"662:1:3","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":926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"654:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":925,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:3","typeDescriptions":{}}},"id":928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"654:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"638:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":935,"nodeType":"IfStatement","src":"634:79:3","trueBody":{"id":934,"nodeType":"Block","src":"666:47:3","statements":[{"expression":{"arguments":[{"id":931,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"693:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":930,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"674:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"674:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":933,"nodeType":"ExpressionStatement","src":"674:32:3"}]}}]},"id":937,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":905,"mutability":"mutable","name":"newOwner","nameLocation":"506:8:3","nodeType":"VariableDeclaration","scope":937,"src":"498:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":904,"name":"address","nodeType":"ElementaryTypeName","src":"498:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":907,"mutability":"mutable","name":"pendingOwner","nameLocation":"524:12:3","nodeType":"VariableDeclaration","scope":937,"src":"516:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":906,"name":"address","nodeType":"ElementaryTypeName","src":"516:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"497:40:3"},"returnParameters":{"id":909,"nodeType":"ParameterList","parameters":[],"src":"538:0:3"},"scope":1043,"src":"486:231:3","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1382],"body":{"id":950,"nodeType":"Block","src":"891:33:3","statements":[{"expression":{"arguments":[{"id":947,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":940,"src":"916:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":946,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"897:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"897:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":949,"nodeType":"ExpressionStatement","src":"897:22:3"}]},"documentation":{"id":938,"nodeType":"StructuredDocumentation","src":"721:102:3","text":" @notice Allows an owner to begin transferring ownership to a new address,\n pending."},"functionSelector":"f2fde38b","id":951,"implemented":true,"kind":"function","modifiers":[{"id":944,"kind":"modifierInvocation","modifierName":{"id":943,"name":"onlyOwner","nameLocations":["881:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":1042,"src":"881:9:3"},"nodeType":"ModifierInvocation","src":"881:9:3"}],"name":"transferOwnership","nameLocation":"835:17:3","nodeType":"FunctionDefinition","overrides":{"id":942,"nodeType":"OverrideSpecifier","overrides":[],"src":"872:8:3"},"parameters":{"id":941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":940,"mutability":"mutable","name":"to","nameLocation":"861:2:3","nodeType":"VariableDeclaration","scope":951,"src":"853:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":939,"name":"address","nodeType":"ElementaryTypeName","src":"853:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"852:12:3"},"returnParameters":{"id":945,"nodeType":"ParameterList","parameters":[],"src":"891:0:3"},"scope":1043,"src":"826:98:3","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1385],"body":{"id":986,"nodeType":"Block","src":"1061:220:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":957,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1075:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1075:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":959,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1089:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1075:28:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","id":961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1105:24:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c","typeString":"literal_string \"Must be proposed owner\""},"value":"Must be proposed owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c","typeString":"literal_string \"Must be proposed owner\""}],"id":956,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1067:7:3","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,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:63:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":963,"nodeType":"ExpressionStatement","src":"1067:63:3"},{"assignments":[965],"declarations":[{"constant":false,"id":965,"mutability":"mutable","name":"oldOwner","nameLocation":"1145:8:3","nodeType":"VariableDeclaration","scope":986,"src":"1137:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":964,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":967,"initialValue":{"id":966,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1156:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1137:26:3"},{"expression":{"id":971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":968,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1169:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":969,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1179:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1183:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1179:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1169:20:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":972,"nodeType":"ExpressionStatement","src":"1169:20:3"},{"expression":{"id":978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":973,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1195:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1220:1:3","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":975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1212:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":974,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:3","typeDescriptions":{}}},"id":977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1195:27:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":979,"nodeType":"ExpressionStatement","src":"1195:27:3"},{"eventCall":{"arguments":[{"id":981,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":965,"src":"1255:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":982,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1265:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1269:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1265:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":980,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":903,"src":"1234:20:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1234:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":985,"nodeType":"EmitStatement","src":"1229:47:3"}]},"documentation":{"id":952,"nodeType":"StructuredDocumentation","src":"928:85:3","text":" @notice Allows an ownership transfer to be completed by the recipient."},"functionSelector":"79ba5097","id":987,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"1025:15:3","nodeType":"FunctionDefinition","overrides":{"id":954,"nodeType":"OverrideSpecifier","overrides":[],"src":"1052:8:3"},"parameters":{"id":953,"nodeType":"ParameterList","parameters":[],"src":"1040:2:3"},"returnParameters":{"id":955,"nodeType":"ParameterList","parameters":[],"src":"1061:0:3"},"scope":1043,"src":"1016:265:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1377],"body":{"id":996,"nodeType":"Block","src":"1388:25:3","statements":[{"expression":{"id":994,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1401:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":993,"id":995,"nodeType":"Return","src":"1394:14:3"}]},"documentation":{"id":988,"nodeType":"StructuredDocumentation","src":"1285:44:3","text":" @notice Get the current owner"},"functionSelector":"8da5cb5b","id":997,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1341:5:3","nodeType":"FunctionDefinition","overrides":{"id":990,"nodeType":"OverrideSpecifier","overrides":[],"src":"1361:8:3"},"parameters":{"id":989,"nodeType":"ParameterList","parameters":[],"src":"1346:2:3"},"returnParameters":{"id":993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":997,"src":"1379:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":991,"name":"address","nodeType":"ElementaryTypeName","src":"1379:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1378:9:3"},"scope":1043,"src":"1332:81:3","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":1020,"nodeType":"Block","src":"1545:140:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1004,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1559:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1005,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1565:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1569:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1565:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1559:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","id":1008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1577:25:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2","typeString":"literal_string \"Cannot transfer to self\""},"value":"Cannot transfer to self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2","typeString":"literal_string \"Cannot transfer to self\""}],"id":1003,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1551:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1551:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1010,"nodeType":"ExpressionStatement","src":"1551:52:3"},{"expression":{"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1011,"name":"s_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1610:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1012,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1627:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1610:19:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1014,"nodeType":"ExpressionStatement","src":"1610:19:3"},{"eventCall":{"arguments":[{"id":1016,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1668:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1017,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"1677:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1015,"name":"OwnershipTransferRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"1641:26:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1641:39:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1019,"nodeType":"EmitStatement","src":"1636:44:3"}]},"documentation":{"id":998,"nodeType":"StructuredDocumentation","src":"1417:77:3","text":" @notice validate, transfer ownership, and emit relevant events"},"id":1021,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"1506:18:3","nodeType":"FunctionDefinition","parameters":{"id":1001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1000,"mutability":"mutable","name":"to","nameLocation":"1533:2:3","nodeType":"VariableDeclaration","scope":1021,"src":"1525:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":999,"name":"address","nodeType":"ElementaryTypeName","src":"1525:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1524:12:3"},"returnParameters":{"id":1002,"nodeType":"ParameterList","parameters":[],"src":"1545:0:3"},"scope":1043,"src":"1497:188:3","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1033,"nodeType":"Block","src":"1774:67:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1026,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1788:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1792:6:3","memberName":"sender","nodeType":"MemberAccess","src":"1788:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1028,"name":"s_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"1802:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1788:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1811:24:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3","typeString":"literal_string \"Only callable by owner\""},"value":"Only callable by owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3","typeString":"literal_string \"Only callable by owner\""}],"id":1025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1780:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1032,"nodeType":"ExpressionStatement","src":"1780:56:3"}]},"documentation":{"id":1022,"nodeType":"StructuredDocumentation","src":"1689:38:3","text":" @notice validate access"},"id":1034,"implemented":true,"kind":"function","modifiers":[],"name":"_validateOwnership","nameLocation":"1739:18:3","nodeType":"FunctionDefinition","parameters":{"id":1023,"nodeType":"ParameterList","parameters":[],"src":"1757:2:3"},"returnParameters":{"id":1024,"nodeType":"ParameterList","parameters":[],"src":"1774:0:3"},"scope":1043,"src":"1730:111:3","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1041,"nodeType":"Block","src":"1950:38:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1037,"name":"_validateOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"1956:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1956:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1039,"nodeType":"ExpressionStatement","src":"1956:20:3"},{"id":1040,"nodeType":"PlaceholderStatement","src":"1982:1:3"}]},"documentation":{"id":1035,"nodeType":"StructuredDocumentation","src":"1845:81:3","text":" @notice Reverts if called by anyone other than the contract owner."},"id":1042,"name":"onlyOwner","nameLocation":"1938:9:3","nodeType":"ModifierDefinition","parameters":{"id":1036,"nodeType":"ParameterList","parameters":[],"src":"1947:2:3"},"src":"1929:59:3","virtual":false,"visibility":"internal"}],"scope":1044,"src":"213:1777:3","usedErrors":[]}],"src":"32:1959:3"},"id":3},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[1076]},"id":1077,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1045,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:4"},{"abstract":false,"baseContracts":[],"canonicalName":"ChainlinkRequestInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1076,"linearizedBaseContracts":[1076],"name":"ChainlinkRequestInterface","nameLocation":"67:25:4","nodeType":"ContractDefinition","nodes":[{"functionSelector":"40429946","id":1064,"implemented":false,"kind":"function","modifiers":[],"name":"oracleRequest","nameLocation":"106:13:4","nodeType":"FunctionDefinition","parameters":{"id":1062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1047,"mutability":"mutable","name":"sender","nameLocation":"133:6:4","nodeType":"VariableDeclaration","scope":1064,"src":"125:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1046,"name":"address","nodeType":"ElementaryTypeName","src":"125:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1049,"mutability":"mutable","name":"requestPrice","nameLocation":"153:12:4","nodeType":"VariableDeclaration","scope":1064,"src":"145:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1048,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1051,"mutability":"mutable","name":"serviceAgreementID","nameLocation":"179:18:4","nodeType":"VariableDeclaration","scope":1064,"src":"171:26:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1053,"mutability":"mutable","name":"callbackAddress","nameLocation":"211:15:4","nodeType":"VariableDeclaration","scope":1064,"src":"203:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1052,"name":"address","nodeType":"ElementaryTypeName","src":"203:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1055,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"239:18:4","nodeType":"VariableDeclaration","scope":1064,"src":"232:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1054,"name":"bytes4","nodeType":"ElementaryTypeName","src":"232:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1057,"mutability":"mutable","name":"nonce","nameLocation":"271:5:4","nodeType":"VariableDeclaration","scope":1064,"src":"263:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1056,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1059,"mutability":"mutable","name":"dataVersion","nameLocation":"290:11:4","nodeType":"VariableDeclaration","scope":1064,"src":"282:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1058,"name":"uint256","nodeType":"ElementaryTypeName","src":"282:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1061,"mutability":"mutable","name":"data","nameLocation":"322:4:4","nodeType":"VariableDeclaration","scope":1064,"src":"307:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1060,"name":"bytes","nodeType":"ElementaryTypeName","src":"307:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"119:211:4"},"returnParameters":{"id":1063,"nodeType":"ParameterList","parameters":[],"src":"339:0:4"},"scope":1076,"src":"97:243:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ee4d553","id":1075,"implemented":false,"kind":"function","modifiers":[],"name":"cancelOracleRequest","nameLocation":"353:19:4","nodeType":"FunctionDefinition","parameters":{"id":1073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1066,"mutability":"mutable","name":"requestId","nameLocation":"386:9:4","nodeType":"VariableDeclaration","scope":1075,"src":"378:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1068,"mutability":"mutable","name":"payment","nameLocation":"409:7:4","nodeType":"VariableDeclaration","scope":1075,"src":"401:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1067,"name":"uint256","nodeType":"ElementaryTypeName","src":"401:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1070,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"429:18:4","nodeType":"VariableDeclaration","scope":1075,"src":"422:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1069,"name":"bytes4","nodeType":"ElementaryTypeName","src":"422:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1072,"mutability":"mutable","name":"expiration","nameLocation":"461:10:4","nodeType":"VariableDeclaration","scope":1075,"src":"453:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1071,"name":"uint256","nodeType":"ElementaryTypeName","src":"453:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"372:103:4"},"returnParameters":{"id":1074,"nodeType":"ParameterList","parameters":[],"src":"484:0:4"},"scope":1076,"src":"344:141:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1077,"src":"57:430:4","usedErrors":[]}],"src":"32:456:4"},"id":4},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","exportedSymbols":{"ENSInterface":[1156]},"id":1157,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1078,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:5"},{"abstract":false,"baseContracts":[],"canonicalName":"ENSInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1156,"linearizedBaseContracts":[1156],"name":"ENSInterface","nameLocation":"67:12:5","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"ce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82","id":1086,"name":"NewOwner","nameLocation":"161:8:5","nodeType":"EventDefinition","parameters":{"id":1085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1080,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"186:4:5","nodeType":"VariableDeclaration","scope":1086,"src":"170:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1082,"indexed":true,"mutability":"mutable","name":"label","nameLocation":"208:5:5","nodeType":"VariableDeclaration","scope":1086,"src":"192:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1084,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"223:5:5","nodeType":"VariableDeclaration","scope":1086,"src":"215:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1083,"name":"address","nodeType":"ElementaryTypeName","src":"215:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"169:60:5"},"src":"155:75:5"},{"anonymous":false,"eventSelector":"d4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266","id":1092,"name":"Transfer","nameLocation":"315:8:5","nodeType":"EventDefinition","parameters":{"id":1091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1088,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"340:4:5","nodeType":"VariableDeclaration","scope":1092,"src":"324:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1090,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"354:5:5","nodeType":"VariableDeclaration","scope":1092,"src":"346:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1089,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"323:37:5"},"src":"309:52:5"},{"anonymous":false,"eventSelector":"335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0","id":1098,"name":"NewResolver","nameLocation":"421:11:5","nodeType":"EventDefinition","parameters":{"id":1097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1094,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"449:4:5","nodeType":"VariableDeclaration","scope":1098,"src":"433:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"433:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1096,"indexed":false,"mutability":"mutable","name":"resolver","nameLocation":"463:8:5","nodeType":"VariableDeclaration","scope":1098,"src":"455:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1095,"name":"address","nodeType":"ElementaryTypeName","src":"455:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"432:40:5"},"src":"415:58:5"},{"anonymous":false,"eventSelector":"1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68","id":1104,"name":"NewTTL","nameLocation":"526:6:5","nodeType":"EventDefinition","parameters":{"id":1103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1100,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"549:4:5","nodeType":"VariableDeclaration","scope":1104,"src":"533:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"533:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1102,"indexed":false,"mutability":"mutable","name":"ttl","nameLocation":"562:3:5","nodeType":"VariableDeclaration","scope":1104,"src":"555:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1101,"name":"uint64","nodeType":"ElementaryTypeName","src":"555:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"532:34:5"},"src":"520:47:5"},{"functionSelector":"06ab5923","id":1113,"implemented":false,"kind":"function","modifiers":[],"name":"setSubnodeOwner","nameLocation":"580:15:5","nodeType":"FunctionDefinition","parameters":{"id":1111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1106,"mutability":"mutable","name":"node","nameLocation":"609:4:5","nodeType":"VariableDeclaration","scope":1113,"src":"601:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"601:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1108,"mutability":"mutable","name":"label","nameLocation":"627:5:5","nodeType":"VariableDeclaration","scope":1113,"src":"619:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"619:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1110,"mutability":"mutable","name":"owner","nameLocation":"646:5:5","nodeType":"VariableDeclaration","scope":1113,"src":"638:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1109,"name":"address","nodeType":"ElementaryTypeName","src":"638:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"595:60:5"},"returnParameters":{"id":1112,"nodeType":"ParameterList","parameters":[],"src":"664:0:5"},"scope":1156,"src":"571:94:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1896f70a","id":1120,"implemented":false,"kind":"function","modifiers":[],"name":"setResolver","nameLocation":"678:11:5","nodeType":"FunctionDefinition","parameters":{"id":1118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1115,"mutability":"mutable","name":"node","nameLocation":"698:4:5","nodeType":"VariableDeclaration","scope":1120,"src":"690:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"690:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1117,"mutability":"mutable","name":"resolver","nameLocation":"712:8:5","nodeType":"VariableDeclaration","scope":1120,"src":"704:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1116,"name":"address","nodeType":"ElementaryTypeName","src":"704:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"689:32:5"},"returnParameters":{"id":1119,"nodeType":"ParameterList","parameters":[],"src":"730:0:5"},"scope":1156,"src":"669:62:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5b0fc9c3","id":1127,"implemented":false,"kind":"function","modifiers":[],"name":"setOwner","nameLocation":"744:8:5","nodeType":"FunctionDefinition","parameters":{"id":1125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1122,"mutability":"mutable","name":"node","nameLocation":"761:4:5","nodeType":"VariableDeclaration","scope":1127,"src":"753:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"753:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1124,"mutability":"mutable","name":"owner","nameLocation":"775:5:5","nodeType":"VariableDeclaration","scope":1127,"src":"767:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1123,"name":"address","nodeType":"ElementaryTypeName","src":"767:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:29:5"},"returnParameters":{"id":1126,"nodeType":"ParameterList","parameters":[],"src":"790:0:5"},"scope":1156,"src":"735:56:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"14ab9038","id":1134,"implemented":false,"kind":"function","modifiers":[],"name":"setTTL","nameLocation":"804:6:5","nodeType":"FunctionDefinition","parameters":{"id":1132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1129,"mutability":"mutable","name":"node","nameLocation":"819:4:5","nodeType":"VariableDeclaration","scope":1134,"src":"811:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"811:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1131,"mutability":"mutable","name":"ttl","nameLocation":"832:3:5","nodeType":"VariableDeclaration","scope":1134,"src":"825:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1130,"name":"uint64","nodeType":"ElementaryTypeName","src":"825:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"810:26:5"},"returnParameters":{"id":1133,"nodeType":"ParameterList","parameters":[],"src":"845:0:5"},"scope":1156,"src":"795:51:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"02571be3","id":1141,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"859:5:5","nodeType":"FunctionDefinition","parameters":{"id":1137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1136,"mutability":"mutable","name":"node","nameLocation":"873:4:5","nodeType":"VariableDeclaration","scope":1141,"src":"865:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"865:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"864:14:5"},"returnParameters":{"id":1140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1141,"src":"902:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1138,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"901:9:5"},"scope":1156,"src":"850:61:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0178b8bf","id":1148,"implemented":false,"kind":"function","modifiers":[],"name":"resolver","nameLocation":"924:8:5","nodeType":"FunctionDefinition","parameters":{"id":1144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"mutability":"mutable","name":"node","nameLocation":"941:4:5","nodeType":"VariableDeclaration","scope":1148,"src":"933:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"933:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"932:14:5"},"returnParameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1148,"src":"970:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"969:9:5"},"scope":1156,"src":"915:64:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"16a25cbd","id":1155,"implemented":false,"kind":"function","modifiers":[],"name":"ttl","nameLocation":"992:3:5","nodeType":"FunctionDefinition","parameters":{"id":1151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1150,"mutability":"mutable","name":"node","nameLocation":"1004:4:5","nodeType":"VariableDeclaration","scope":1155,"src":"996:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"996:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"995:14:5"},"returnParameters":{"id":1154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1155,"src":"1033:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1152,"name":"uint64","nodeType":"ElementaryTypeName","src":"1033:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1032:8:5"},"scope":1156,"src":"983:58:5","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1157,"src":"57:986:5","usedErrors":[]}],"src":"32:1012:5"},"id":5},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","exportedSymbols":{"LinkTokenInterface":[1251]},"id":1252,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1158,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:6"},{"abstract":false,"baseContracts":[],"canonicalName":"LinkTokenInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1251,"linearizedBaseContracts":[1251],"name":"LinkTokenInterface","nameLocation":"67:18:6","nodeType":"ContractDefinition","nodes":[{"functionSelector":"dd62ed3e","id":1167,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"99:9:6","nodeType":"FunctionDefinition","parameters":{"id":1163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1160,"mutability":"mutable","name":"owner","nameLocation":"117:5:6","nodeType":"VariableDeclaration","scope":1167,"src":"109:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1159,"name":"address","nodeType":"ElementaryTypeName","src":"109:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1162,"mutability":"mutable","name":"spender","nameLocation":"132:7:6","nodeType":"VariableDeclaration","scope":1167,"src":"124:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1161,"name":"address","nodeType":"ElementaryTypeName","src":"124:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"108:32:6"},"returnParameters":{"id":1166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1165,"mutability":"mutable","name":"remaining","nameLocation":"172:9:6","nodeType":"VariableDeclaration","scope":1167,"src":"164:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1164,"name":"uint256","nodeType":"ElementaryTypeName","src":"164:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"163:19:6"},"scope":1251,"src":"90:93:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":1176,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"196:7:6","nodeType":"FunctionDefinition","parameters":{"id":1172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1169,"mutability":"mutable","name":"spender","nameLocation":"212:7:6","nodeType":"VariableDeclaration","scope":1176,"src":"204:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1168,"name":"address","nodeType":"ElementaryTypeName","src":"204:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1171,"mutability":"mutable","name":"value","nameLocation":"229:5:6","nodeType":"VariableDeclaration","scope":1176,"src":"221:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1170,"name":"uint256","nodeType":"ElementaryTypeName","src":"221:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"203:32:6"},"returnParameters":{"id":1175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1174,"mutability":"mutable","name":"success","nameLocation":"259:7:6","nodeType":"VariableDeclaration","scope":1176,"src":"254:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1173,"name":"bool","nodeType":"ElementaryTypeName","src":"254:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"253:14:6"},"scope":1251,"src":"187:81:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":1183,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"281:9:6","nodeType":"FunctionDefinition","parameters":{"id":1179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1178,"mutability":"mutable","name":"owner","nameLocation":"299:5:6","nodeType":"VariableDeclaration","scope":1183,"src":"291:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1177,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"290:15:6"},"returnParameters":{"id":1182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1181,"mutability":"mutable","name":"balance","nameLocation":"337:7:6","nodeType":"VariableDeclaration","scope":1183,"src":"329:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1180,"name":"uint256","nodeType":"ElementaryTypeName","src":"329:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"328:17:6"},"scope":1251,"src":"272:74:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":1188,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"359:8:6","nodeType":"FunctionDefinition","parameters":{"id":1184,"nodeType":"ParameterList","parameters":[],"src":"367:2:6"},"returnParameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1186,"mutability":"mutable","name":"decimalPlaces","nameLocation":"399:13:6","nodeType":"VariableDeclaration","scope":1188,"src":"393:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1185,"name":"uint8","nodeType":"ElementaryTypeName","src":"393:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"392:21:6"},"scope":1251,"src":"350:64:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"66188463","id":1197,"implemented":false,"kind":"function","modifiers":[],"name":"decreaseApproval","nameLocation":"427:16:6","nodeType":"FunctionDefinition","parameters":{"id":1193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1190,"mutability":"mutable","name":"spender","nameLocation":"452:7:6","nodeType":"VariableDeclaration","scope":1197,"src":"444:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1189,"name":"address","nodeType":"ElementaryTypeName","src":"444:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1192,"mutability":"mutable","name":"addedValue","nameLocation":"469:10:6","nodeType":"VariableDeclaration","scope":1197,"src":"461:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1191,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"443:37:6"},"returnParameters":{"id":1196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1195,"mutability":"mutable","name":"success","nameLocation":"504:7:6","nodeType":"VariableDeclaration","scope":1197,"src":"499:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1194,"name":"bool","nodeType":"ElementaryTypeName","src":"499:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"498:14:6"},"scope":1251,"src":"418:95:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d73dd623","id":1204,"implemented":false,"kind":"function","modifiers":[],"name":"increaseApproval","nameLocation":"526:16:6","nodeType":"FunctionDefinition","parameters":{"id":1202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1199,"mutability":"mutable","name":"spender","nameLocation":"551:7:6","nodeType":"VariableDeclaration","scope":1204,"src":"543:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1198,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1201,"mutability":"mutable","name":"subtractedValue","nameLocation":"568:15:6","nodeType":"VariableDeclaration","scope":1204,"src":"560:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1200,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"542:42:6"},"returnParameters":{"id":1203,"nodeType":"ParameterList","parameters":[],"src":"593:0:6"},"scope":1251,"src":"517:77:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"06fdde03","id":1209,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"607:4:6","nodeType":"FunctionDefinition","parameters":{"id":1205,"nodeType":"ParameterList","parameters":[],"src":"611:2:6"},"returnParameters":{"id":1208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1207,"mutability":"mutable","name":"tokenName","nameLocation":"651:9:6","nodeType":"VariableDeclaration","scope":1209,"src":"637:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1206,"name":"string","nodeType":"ElementaryTypeName","src":"637:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"636:25:6"},"scope":1251,"src":"598:64:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":1214,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"675:6:6","nodeType":"FunctionDefinition","parameters":{"id":1210,"nodeType":"ParameterList","parameters":[],"src":"681:2:6"},"returnParameters":{"id":1213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1212,"mutability":"mutable","name":"tokenSymbol","nameLocation":"721:11:6","nodeType":"VariableDeclaration","scope":1214,"src":"707:25:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1211,"name":"string","nodeType":"ElementaryTypeName","src":"707:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"706:27:6"},"scope":1251,"src":"666:68:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":1219,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"747:11:6","nodeType":"FunctionDefinition","parameters":{"id":1215,"nodeType":"ParameterList","parameters":[],"src":"758:2:6"},"returnParameters":{"id":1218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1217,"mutability":"mutable","name":"totalTokensIssued","nameLocation":"792:17:6","nodeType":"VariableDeclaration","scope":1219,"src":"784:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1216,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"783:27:6"},"scope":1251,"src":"738:73:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":1228,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"824:8:6","nodeType":"FunctionDefinition","parameters":{"id":1224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1221,"mutability":"mutable","name":"to","nameLocation":"841:2:6","nodeType":"VariableDeclaration","scope":1228,"src":"833:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1220,"name":"address","nodeType":"ElementaryTypeName","src":"833:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1223,"mutability":"mutable","name":"value","nameLocation":"853:5:6","nodeType":"VariableDeclaration","scope":1228,"src":"845:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1222,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"832:27:6"},"returnParameters":{"id":1227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1226,"mutability":"mutable","name":"success","nameLocation":"883:7:6","nodeType":"VariableDeclaration","scope":1228,"src":"878:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1225,"name":"bool","nodeType":"ElementaryTypeName","src":"878:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"877:14:6"},"scope":1251,"src":"815:77:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4000aea0","id":1239,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"905:15:6","nodeType":"FunctionDefinition","parameters":{"id":1235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1230,"mutability":"mutable","name":"to","nameLocation":"934:2:6","nodeType":"VariableDeclaration","scope":1239,"src":"926:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1229,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1232,"mutability":"mutable","name":"value","nameLocation":"950:5:6","nodeType":"VariableDeclaration","scope":1239,"src":"942:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1231,"name":"uint256","nodeType":"ElementaryTypeName","src":"942:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1234,"mutability":"mutable","name":"data","nameLocation":"976:4:6","nodeType":"VariableDeclaration","scope":1239,"src":"961:19:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1233,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"920:64:6"},"returnParameters":{"id":1238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1237,"mutability":"mutable","name":"success","nameLocation":"1008:7:6","nodeType":"VariableDeclaration","scope":1239,"src":"1003:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1236,"name":"bool","nodeType":"ElementaryTypeName","src":"1003:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1002:14:6"},"scope":1251,"src":"896:121:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":1250,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1030:12:6","nodeType":"FunctionDefinition","parameters":{"id":1246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1241,"mutability":"mutable","name":"from","nameLocation":"1056:4:6","nodeType":"VariableDeclaration","scope":1250,"src":"1048:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1240,"name":"address","nodeType":"ElementaryTypeName","src":"1048:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1243,"mutability":"mutable","name":"to","nameLocation":"1074:2:6","nodeType":"VariableDeclaration","scope":1250,"src":"1066:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1242,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1245,"mutability":"mutable","name":"value","nameLocation":"1090:5:6","nodeType":"VariableDeclaration","scope":1250,"src":"1082:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1042:57:6"},"returnParameters":{"id":1249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1248,"mutability":"mutable","name":"success","nameLocation":"1123:7:6","nodeType":"VariableDeclaration","scope":1250,"src":"1118:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1247,"name":"bool","nodeType":"ElementaryTypeName","src":"1118:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1117:14:6"},"scope":1251,"src":"1021:111:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1252,"src":"57:1077:6","usedErrors":[]}],"src":"32:1103:6"},"id":6},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[1076],"OperatorInterface":[1331],"OracleInterface":[1370]},"id":1332,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1253,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:7"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","file":"./OracleInterface.sol","id":1254,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1332,"sourceUnit":1371,"src":"57:31:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./ChainlinkRequestInterface.sol","id":1255,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1332,"sourceUnit":1077,"src":"89:41:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1256,"name":"OracleInterface","nameLocations":["163:15:7"],"nodeType":"IdentifierPath","referencedDeclaration":1370,"src":"163:15:7"},"id":1257,"nodeType":"InheritanceSpecifier","src":"163:15:7"},{"baseName":{"id":1258,"name":"ChainlinkRequestInterface","nameLocations":["180:25:7"],"nodeType":"IdentifierPath","referencedDeclaration":1076,"src":"180:25:7"},"id":1259,"nodeType":"InheritanceSpecifier","src":"180:25:7"}],"canonicalName":"OperatorInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1331,"linearizedBaseContracts":[1331,1076,1370],"name":"OperatorInterface","nameLocation":"142:17:7","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3c6d41b9","id":1276,"implemented":false,"kind":"function","modifiers":[],"name":"operatorRequest","nameLocation":"219:15:7","nodeType":"FunctionDefinition","parameters":{"id":1274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1261,"mutability":"mutable","name":"sender","nameLocation":"248:6:7","nodeType":"VariableDeclaration","scope":1276,"src":"240:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1260,"name":"address","nodeType":"ElementaryTypeName","src":"240:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1263,"mutability":"mutable","name":"payment","nameLocation":"268:7:7","nodeType":"VariableDeclaration","scope":1276,"src":"260:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1262,"name":"uint256","nodeType":"ElementaryTypeName","src":"260:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1265,"mutability":"mutable","name":"specId","nameLocation":"289:6:7","nodeType":"VariableDeclaration","scope":1276,"src":"281:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"281:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1267,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"308:18:7","nodeType":"VariableDeclaration","scope":1276,"src":"301:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1266,"name":"bytes4","nodeType":"ElementaryTypeName","src":"301:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1269,"mutability":"mutable","name":"nonce","nameLocation":"340:5:7","nodeType":"VariableDeclaration","scope":1276,"src":"332:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1268,"name":"uint256","nodeType":"ElementaryTypeName","src":"332:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1271,"mutability":"mutable","name":"dataVersion","nameLocation":"359:11:7","nodeType":"VariableDeclaration","scope":1276,"src":"351:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1270,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1273,"mutability":"mutable","name":"data","nameLocation":"391:4:7","nodeType":"VariableDeclaration","scope":1276,"src":"376:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1272,"name":"bytes","nodeType":"ElementaryTypeName","src":"376:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"234:165:7"},"returnParameters":{"id":1275,"nodeType":"ParameterList","parameters":[],"src":"408:0:7"},"scope":1331,"src":"210:199:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ae0bc76","id":1293,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest2","nameLocation":"422:21:7","nodeType":"FunctionDefinition","parameters":{"id":1289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1278,"mutability":"mutable","name":"requestId","nameLocation":"457:9:7","nodeType":"VariableDeclaration","scope":1293,"src":"449:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1277,"name":"bytes32","nodeType":"ElementaryTypeName","src":"449:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1280,"mutability":"mutable","name":"payment","nameLocation":"480:7:7","nodeType":"VariableDeclaration","scope":1293,"src":"472:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1279,"name":"uint256","nodeType":"ElementaryTypeName","src":"472:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1282,"mutability":"mutable","name":"callbackAddress","nameLocation":"501:15:7","nodeType":"VariableDeclaration","scope":1293,"src":"493:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1281,"name":"address","nodeType":"ElementaryTypeName","src":"493:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1284,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"529:18:7","nodeType":"VariableDeclaration","scope":1293,"src":"522:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1283,"name":"bytes4","nodeType":"ElementaryTypeName","src":"522:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1286,"mutability":"mutable","name":"expiration","nameLocation":"561:10:7","nodeType":"VariableDeclaration","scope":1293,"src":"553:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1285,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1288,"mutability":"mutable","name":"data","nameLocation":"592:4:7","nodeType":"VariableDeclaration","scope":1293,"src":"577:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1287,"name":"bytes","nodeType":"ElementaryTypeName","src":"577:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"443:157:7"},"returnParameters":{"id":1292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1293,"src":"619:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1290,"name":"bool","nodeType":"ElementaryTypeName","src":"619:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"618:6:7"},"scope":1331,"src":"413:212:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"902fc370","id":1304,"implemented":false,"kind":"function","modifiers":[],"name":"ownerTransferAndCall","nameLocation":"638:20:7","nodeType":"FunctionDefinition","parameters":{"id":1300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1295,"mutability":"mutable","name":"to","nameLocation":"672:2:7","nodeType":"VariableDeclaration","scope":1304,"src":"664:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1294,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1297,"mutability":"mutable","name":"value","nameLocation":"688:5:7","nodeType":"VariableDeclaration","scope":1304,"src":"680:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1296,"name":"uint256","nodeType":"ElementaryTypeName","src":"680:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1299,"mutability":"mutable","name":"data","nameLocation":"714:4:7","nodeType":"VariableDeclaration","scope":1304,"src":"699:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1298,"name":"bytes","nodeType":"ElementaryTypeName","src":"699:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"658:64:7"},"returnParameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1302,"mutability":"mutable","name":"success","nameLocation":"746:7:7","nodeType":"VariableDeclaration","scope":1304,"src":"741:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1301,"name":"bool","nodeType":"ElementaryTypeName","src":"741:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"740:14:7"},"scope":1331,"src":"629:126:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6bd59ec0","id":1313,"implemented":false,"kind":"function","modifiers":[],"name":"distributeFunds","nameLocation":"768:15:7","nodeType":"FunctionDefinition","parameters":{"id":1311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1307,"mutability":"mutable","name":"receivers","nameLocation":"811:9:7","nodeType":"VariableDeclaration","scope":1313,"src":"784:36:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_calldata_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":1305,"name":"address","nodeType":"ElementaryTypeName","src":"784:15:7","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1306,"nodeType":"ArrayTypeName","src":"784:17:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"},{"constant":false,"id":1310,"mutability":"mutable","name":"amounts","nameLocation":"841:7:7","nodeType":"VariableDeclaration","scope":1313,"src":"822:26:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1308,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1309,"nodeType":"ArrayTypeName","src":"822:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"783:66:7"},"returnParameters":{"id":1312,"nodeType":"ParameterList","parameters":[],"src":"866:0:7"},"scope":1331,"src":"759:108:7","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"2408afaa","id":1319,"implemented":false,"kind":"function","modifiers":[],"name":"getAuthorizedSenders","nameLocation":"880:20:7","nodeType":"FunctionDefinition","parameters":{"id":1314,"nodeType":"ParameterList","parameters":[],"src":"900:2:7"},"returnParameters":{"id":1318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1317,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1319,"src":"921:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1315,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1316,"nodeType":"ArrayTypeName","src":"921:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"920:18:7"},"scope":1331,"src":"871:68:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ee56997b","id":1325,"implemented":false,"kind":"function","modifiers":[],"name":"setAuthorizedSenders","nameLocation":"952:20:7","nodeType":"FunctionDefinition","parameters":{"id":1323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1322,"mutability":"mutable","name":"senders","nameLocation":"992:7:7","nodeType":"VariableDeclaration","scope":1325,"src":"973:26:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1320,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1321,"nodeType":"ArrayTypeName","src":"973:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"972:28:7"},"returnParameters":{"id":1324,"nodeType":"ParameterList","parameters":[],"src":"1009:0:7"},"scope":1331,"src":"943:67:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a0042526","id":1330,"implemented":false,"kind":"function","modifiers":[],"name":"getForwarder","nameLocation":"1023:12:7","nodeType":"FunctionDefinition","parameters":{"id":1326,"nodeType":"ParameterList","parameters":[],"src":"1035:2:7"},"returnParameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1328,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1330,"src":"1056:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1327,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1055:9:7"},"scope":1331,"src":"1014:51:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1332,"src":"132:935:7","usedErrors":[]}],"src":"32:1036:7"},"id":7},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","exportedSymbols":{"OracleInterface":[1370]},"id":1371,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1333,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:8"},{"abstract":false,"baseContracts":[],"canonicalName":"OracleInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1370,"linearizedBaseContracts":[1370],"name":"OracleInterface","nameLocation":"67:15:8","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4ab0d190","id":1350,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest","nameLocation":"96:20:8","nodeType":"FunctionDefinition","parameters":{"id":1346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1335,"mutability":"mutable","name":"requestId","nameLocation":"130:9:8","nodeType":"VariableDeclaration","scope":1350,"src":"122:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1337,"mutability":"mutable","name":"payment","nameLocation":"153:7:8","nodeType":"VariableDeclaration","scope":1350,"src":"145:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1336,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1339,"mutability":"mutable","name":"callbackAddress","nameLocation":"174:15:8","nodeType":"VariableDeclaration","scope":1350,"src":"166:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1338,"name":"address","nodeType":"ElementaryTypeName","src":"166:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1341,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"202:18:8","nodeType":"VariableDeclaration","scope":1350,"src":"195:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1340,"name":"bytes4","nodeType":"ElementaryTypeName","src":"195:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1343,"mutability":"mutable","name":"expiration","nameLocation":"234:10:8","nodeType":"VariableDeclaration","scope":1350,"src":"226:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1342,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1345,"mutability":"mutable","name":"data","nameLocation":"258:4:8","nodeType":"VariableDeclaration","scope":1350,"src":"250:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"116:150:8"},"returnParameters":{"id":1349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1350,"src":"285:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1347,"name":"bool","nodeType":"ElementaryTypeName","src":"285:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"284:6:8"},"scope":1370,"src":"87:204:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fa00763a","id":1357,"implemented":false,"kind":"function","modifiers":[],"name":"isAuthorizedSender","nameLocation":"304:18:8","nodeType":"FunctionDefinition","parameters":{"id":1353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1352,"mutability":"mutable","name":"node","nameLocation":"331:4:8","nodeType":"VariableDeclaration","scope":1357,"src":"323:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1351,"name":"address","nodeType":"ElementaryTypeName","src":"323:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322:14:8"},"returnParameters":{"id":1356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1357,"src":"360:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1354,"name":"bool","nodeType":"ElementaryTypeName","src":"360:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"359:6:8"},"scope":1370,"src":"295:71:8","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f3fef3a3","id":1364,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"379:8:8","nodeType":"FunctionDefinition","parameters":{"id":1362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1359,"mutability":"mutable","name":"recipient","nameLocation":"396:9:8","nodeType":"VariableDeclaration","scope":1364,"src":"388:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1358,"name":"address","nodeType":"ElementaryTypeName","src":"388:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1361,"mutability":"mutable","name":"amount","nameLocation":"415:6:8","nodeType":"VariableDeclaration","scope":1364,"src":"407:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1360,"name":"uint256","nodeType":"ElementaryTypeName","src":"407:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"387:35:8"},"returnParameters":{"id":1363,"nodeType":"ParameterList","parameters":[],"src":"431:0:8"},"scope":1370,"src":"370:62:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"50188301","id":1369,"implemented":false,"kind":"function","modifiers":[],"name":"withdrawable","nameLocation":"445:12:8","nodeType":"FunctionDefinition","parameters":{"id":1365,"nodeType":"ParameterList","parameters":[],"src":"457:2:8"},"returnParameters":{"id":1368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1369,"src":"483:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1366,"name":"uint256","nodeType":"ElementaryTypeName","src":"483:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"482:9:8"},"scope":1370,"src":"436:56:8","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1371,"src":"57:437:8","usedErrors":[]}],"src":"32:463:8"},"id":8},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol","exportedSymbols":{"OwnableInterface":[1386]},"id":1387,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1372,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:9"},{"abstract":false,"baseContracts":[],"canonicalName":"OwnableInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1386,"linearizedBaseContracts":[1386],"name":"OwnableInterface","nameLocation":"67:16:9","nodeType":"ContractDefinition","nodes":[{"functionSelector":"8da5cb5b","id":1377,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"97:5:9","nodeType":"FunctionDefinition","parameters":{"id":1373,"nodeType":"ParameterList","parameters":[],"src":"102:2:9"},"returnParameters":{"id":1376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1377,"src":"123:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1374,"name":"address","nodeType":"ElementaryTypeName","src":"123:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"122:9:9"},"scope":1386,"src":"88:44:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f2fde38b","id":1382,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"145:17:9","nodeType":"FunctionDefinition","parameters":{"id":1380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1379,"mutability":"mutable","name":"recipient","nameLocation":"171:9:9","nodeType":"VariableDeclaration","scope":1382,"src":"163:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1378,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"162:19:9"},"returnParameters":{"id":1381,"nodeType":"ParameterList","parameters":[],"src":"190:0:9"},"scope":1386,"src":"136:55:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"79ba5097","id":1385,"implemented":false,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"204:15:9","nodeType":"FunctionDefinition","parameters":{"id":1383,"nodeType":"ParameterList","parameters":[],"src":"219:2:9"},"returnParameters":{"id":1384,"nodeType":"ParameterList","parameters":[],"src":"230:0:9"},"scope":1386,"src":"195:36:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1387,"src":"57:176:9","usedErrors":[]}],"src":"32:202:9"},"id":9},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","exportedSymbols":{"PointerInterface":[1394]},"id":1395,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1388,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:10"},{"abstract":false,"baseContracts":[],"canonicalName":"PointerInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1394,"linearizedBaseContracts":[1394],"name":"PointerInterface","nameLocation":"67:16:10","nodeType":"ContractDefinition","nodes":[{"functionSelector":"38cc4831","id":1393,"implemented":false,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"97:10:10","nodeType":"FunctionDefinition","parameters":{"id":1389,"nodeType":"ParameterList","parameters":[],"src":"107:2:10"},"returnParameters":{"id":1392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1393,"src":"133:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1390,"name":"address","nodeType":"ElementaryTypeName","src":"133:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"132:9:10"},"scope":1394,"src":"88:54:10","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1395,"src":"57:87:10","usedErrors":[]}],"src":"32:113:10"},"id":10},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","exportedSymbols":{"BufferChainlink":[1916]},"id":1917,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1396,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:11"},{"abstract":false,"baseContracts":[],"canonicalName":"BufferChainlink","contractDependencies":[],"contractKind":"library","documentation":{"id":1397,"nodeType":"StructuredDocumentation","src":"57:383:11","text":" @dev A library for working with mutable byte buffers in Solidity.\n Byte buffers are mutable and expandable, and provide a variety of primitives\n for writing to them. At any time you can fetch a bytes object containing the\n current contents of the buffer. The bytes object should not be stored between\n operations, as it may change due to resizing of the buffer."},"fullyImplemented":true,"id":1916,"linearizedBaseContracts":[1916],"name":"BufferChainlink","nameLocation":"449:15:11","nodeType":"ContractDefinition","nodes":[{"canonicalName":"BufferChainlink.buffer","id":1402,"members":[{"constant":false,"id":1399,"mutability":"mutable","name":"buf","nameLocation":"743:3:11","nodeType":"VariableDeclaration","scope":1402,"src":"737:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1398,"name":"bytes","nodeType":"ElementaryTypeName","src":"737:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1401,"mutability":"mutable","name":"capacity","nameLocation":"760:8:11","nodeType":"VariableDeclaration","scope":1402,"src":"752:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1400,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"buffer","nameLocation":"724:6:11","nodeType":"StructDefinition","scope":1916,"src":"717:56:11","visibility":"public"},{"body":{"id":1439,"nodeType":"Block","src":"1090:310:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1414,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1100:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1100:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1117:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1100:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1429,"nodeType":"IfStatement","src":"1096:71:11","trueBody":{"id":1428,"nodeType":"Block","src":"1120:47:11","statements":[{"expression":{"id":1426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1419,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1128:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1140:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1421,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1146:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1157:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1146:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1424,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1145:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1140:20:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1128:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1427,"nodeType":"ExpressionStatement","src":"1128:32:11"}]}},{"expression":{"id":1434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1430,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1406,"src":"1214:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1218:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"1214:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1433,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"1229:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1214:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1435,"nodeType":"ExpressionStatement","src":"1214:23:11"},{"AST":{"nodeType":"YulBlock","src":"1252:128:11","statements":[{"nodeType":"YulVariableDeclaration","src":"1260:22:11","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1277:4:11","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1271:5:11"},"nodeType":"YulFunctionCall","src":"1271:11:11"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"1264:3:11","type":""}]},{"expression":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"1296:3:11"},{"name":"ptr","nodeType":"YulIdentifier","src":"1301:3:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1289:6:11"},"nodeType":"YulFunctionCall","src":"1289:16:11"},"nodeType":"YulExpressionStatement","src":"1289:16:11"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1319:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"1324:1:11","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1312:6:11"},"nodeType":"YulFunctionCall","src":"1312:14:11"},"nodeType":"YulExpressionStatement","src":"1312:14:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1340:4:11","type":"","value":"0x40"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1350:2:11","type":"","value":"32"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1358:3:11"},{"name":"capacity","nodeType":"YulIdentifier","src":"1363:8:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1354:3:11"},"nodeType":"YulFunctionCall","src":"1354:18:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1346:3:11"},"nodeType":"YulFunctionCall","src":"1346:27:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:11"},"nodeType":"YulFunctionCall","src":"1333:41:11"},"nodeType":"YulExpressionStatement","src":"1333:41:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1406,"isOffset":false,"isSlot":false,"src":"1296:3:11","valueSize":1},{"declaration":1408,"isOffset":false,"isSlot":false,"src":"1363:8:11","valueSize":1}],"id":1436,"nodeType":"InlineAssembly","src":"1243:137:11"},{"expression":{"id":1437,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1406,"src":"1392:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1413,"id":1438,"nodeType":"Return","src":"1385:10:11"}]},"documentation":{"id":1403,"nodeType":"StructuredDocumentation","src":"777:221:11","text":" @dev Initializes a buffer with an initial capacity.\n @param buf The buffer to initialize.\n @param capacity The number of bytes of space to allocate the buffer.\n @return The buffer, for chaining."},"id":1440,"implemented":true,"kind":"function","modifiers":[],"name":"init","nameLocation":"1010:4:11","nodeType":"FunctionDefinition","parameters":{"id":1409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1406,"mutability":"mutable","name":"buf","nameLocation":"1029:3:11","nodeType":"VariableDeclaration","scope":1440,"src":"1015:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1405,"nodeType":"UserDefinedTypeName","pathNode":{"id":1404,"name":"buffer","nameLocations":["1015:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1015:6:11"},"referencedDeclaration":1402,"src":"1015:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1408,"mutability":"mutable","name":"capacity","nameLocation":"1042:8:11","nodeType":"VariableDeclaration","scope":1440,"src":"1034:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1407,"name":"uint256","nodeType":"ElementaryTypeName","src":"1034:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:37:11"},"returnParameters":{"id":1413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1440,"src":"1075:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1411,"nodeType":"UserDefinedTypeName","pathNode":{"id":1410,"name":"buffer","nameLocations":["1075:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1075:6:11"},"referencedDeclaration":1402,"src":"1075:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1074:15:11"},"scope":1916,"src":"1001:399:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1468,"nodeType":"Block","src":"1707:90:11","statements":[{"assignments":[1451],"declarations":[{"constant":false,"id":1451,"mutability":"mutable","name":"buf","nameLocation":"1727:3:11","nodeType":"VariableDeclaration","scope":1468,"src":"1713:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1450,"nodeType":"UserDefinedTypeName","pathNode":{"id":1449,"name":"buffer","nameLocations":["1713:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1713:6:11"},"referencedDeclaration":1402,"src":"1713:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"id":1452,"nodeType":"VariableDeclarationStatement","src":"1713:17:11"},{"expression":{"id":1457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1453,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1736:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1740:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"1736:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1456,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"1746:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1736:11:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1458,"nodeType":"ExpressionStatement","src":"1736:11:11"},{"expression":{"id":1464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1459,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1753:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1757:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"1753:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1462,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"1768:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1770:6:11","memberName":"length","nodeType":"MemberAccess","src":"1768:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1753:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1465,"nodeType":"ExpressionStatement","src":"1753:23:11"},{"expression":{"id":1466,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"1789:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1448,"id":1467,"nodeType":"Return","src":"1782:10:11"}]},"documentation":{"id":1441,"nodeType":"StructuredDocumentation","src":"1404:227:11","text":" @dev Initializes a new buffer from an existing bytes object.\n Changes to the buffer may mutate the original value.\n @param b The bytes object to initialize the buffer with.\n @return A new buffer."},"id":1469,"implemented":true,"kind":"function","modifiers":[],"name":"fromBytes","nameLocation":"1643:9:11","nodeType":"FunctionDefinition","parameters":{"id":1444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1443,"mutability":"mutable","name":"b","nameLocation":"1666:1:11","nodeType":"VariableDeclaration","scope":1469,"src":"1653:14:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1442,"name":"bytes","nodeType":"ElementaryTypeName","src":"1653:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1652:16:11"},"returnParameters":{"id":1448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1469,"src":"1692:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1446,"nodeType":"UserDefinedTypeName","pathNode":{"id":1445,"name":"buffer","nameLocations":["1692:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1692:6:11"},"referencedDeclaration":1402,"src":"1692:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1691:15:11"},"scope":1916,"src":"1634:163:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1492,"nodeType":"Block","src":"1867:90:11","statements":[{"assignments":[1478],"declarations":[{"constant":false,"id":1478,"mutability":"mutable","name":"oldbuf","nameLocation":"1886:6:11","nodeType":"VariableDeclaration","scope":1492,"src":"1873:19:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1477,"name":"bytes","nodeType":"ElementaryTypeName","src":"1873:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1481,"initialValue":{"expression":{"id":1479,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1895:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1899:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"1895:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1873:29:11"},{"expression":{"arguments":[{"id":1483,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1913:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1484,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1474,"src":"1918:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1482,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1440,"src":"1908:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1908:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1486,"nodeType":"ExpressionStatement","src":"1908:19:11"},{"expression":{"arguments":[{"id":1488,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1940:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1489,"name":"oldbuf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1478,"src":"1945:6:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1487,"name":"append","nodeType":"Identifier","overloadedDeclarations":[1636,1659],"referencedDeclaration":1659,"src":"1933:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":1490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1491,"nodeType":"ExpressionStatement","src":"1933:19:11"}]},"id":1493,"implemented":true,"kind":"function","modifiers":[],"name":"resize","nameLocation":"1810:6:11","nodeType":"FunctionDefinition","parameters":{"id":1475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1472,"mutability":"mutable","name":"buf","nameLocation":"1831:3:11","nodeType":"VariableDeclaration","scope":1493,"src":"1817:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1471,"nodeType":"UserDefinedTypeName","pathNode":{"id":1470,"name":"buffer","nameLocations":["1817:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1817:6:11"},"referencedDeclaration":1402,"src":"1817:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1474,"mutability":"mutable","name":"capacity","nameLocation":"1844:8:11","nodeType":"VariableDeclaration","scope":1493,"src":"1836:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1473,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1816:37:11"},"returnParameters":{"id":1476,"nodeType":"ParameterList","parameters":[],"src":"1867:0:11"},"scope":1916,"src":"1801:156:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1511,"nodeType":"Block","src":"2027:58:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1502,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1495,"src":"2037:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1503,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"2041:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2037:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1508,"nodeType":"IfStatement","src":"2033:34:11","trueBody":{"id":1507,"nodeType":"Block","src":"2044:23:11","statements":[{"expression":{"id":1505,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1495,"src":"2059:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1501,"id":1506,"nodeType":"Return","src":"2052:8:11"}]}},{"expression":{"id":1509,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"2079:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1501,"id":1510,"nodeType":"Return","src":"2072:8:11"}]},"id":1512,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"1970:3:11","nodeType":"FunctionDefinition","parameters":{"id":1498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1495,"mutability":"mutable","name":"a","nameLocation":"1982:1:11","nodeType":"VariableDeclaration","scope":1512,"src":"1974:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1974:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1497,"mutability":"mutable","name":"b","nameLocation":"1993:1:11","nodeType":"VariableDeclaration","scope":1512,"src":"1985:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1496,"name":"uint256","nodeType":"ElementaryTypeName","src":"1985:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1973:22:11"},"returnParameters":{"id":1501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1512,"src":"2018:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1499,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2017:9:11"},"scope":1916,"src":"1961:124:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1525,"nodeType":"Block","src":"2300:97:11","statements":[{"AST":{"nodeType":"YulBlock","src":"2315:62:11","statements":[{"nodeType":"YulVariableDeclaration","src":"2323:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"2343:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2337:5:11"},"nodeType":"YulFunctionCall","src":"2337:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"2327:6:11","type":""}]},{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"2361:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"2369:1:11","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2354:6:11"},"nodeType":"YulFunctionCall","src":"2354:17:11"},"nodeType":"YulExpressionStatement","src":"2354:17:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1516,"isOffset":false,"isSlot":false,"src":"2343:3:11","valueSize":1}],"id":1522,"nodeType":"InlineAssembly","src":"2306:71:11"},{"expression":{"id":1523,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"2389:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1521,"id":1524,"nodeType":"Return","src":"2382:10:11"}]},"documentation":{"id":1513,"nodeType":"StructuredDocumentation","src":"2089:133:11","text":" @dev Sets buffer length to 0.\n @param buf The buffer to truncate.\n @return The original buffer, for chaining.."},"id":1526,"implemented":true,"kind":"function","modifiers":[],"name":"truncate","nameLocation":"2234:8:11","nodeType":"FunctionDefinition","parameters":{"id":1517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1516,"mutability":"mutable","name":"buf","nameLocation":"2257:3:11","nodeType":"VariableDeclaration","scope":1526,"src":"2243:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1515,"nodeType":"UserDefinedTypeName","pathNode":{"id":1514,"name":"buffer","nameLocations":["2243:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2243:6:11"},"referencedDeclaration":1402,"src":"2243:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2242:19:11"},"returnParameters":{"id":1521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1526,"src":"2285:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1519,"nodeType":"UserDefinedTypeName","pathNode":{"id":1518,"name":"buffer","nameLocations":["2285:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2285:6:11"},"referencedDeclaration":1402,"src":"2285:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2284:15:11"},"scope":1916,"src":"2225:172:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1611,"nodeType":"Block","src":"2882:1073:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1543,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2896:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":1544,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"2903:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2908:6:11","memberName":"length","nodeType":"MemberAccess","src":"2903:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2896:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1542,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2888:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2888:27:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1548,"nodeType":"ExpressionStatement","src":"2888:27:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1549,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1532,"src":"2926:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1550,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2932:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1552,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2938:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2942:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"2938:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1569,"nodeType":"IfStatement","src":"2922:90:11","trueBody":{"id":1568,"nodeType":"Block","src":"2952:60:11","statements":[{"expression":{"arguments":[{"id":1556,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2967:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":1558,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2976:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2980:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"2976:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1560,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2990:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1561,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1532,"src":"2996:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2990:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1557,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1512,"src":"2972:3:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2972:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3003:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2972:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1555,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"2960:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2960:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1567,"nodeType":"ExpressionStatement","src":"2960:45:11"}]}},{"assignments":[1571],"declarations":[{"constant":false,"id":1571,"mutability":"mutable","name":"dest","nameLocation":"3026:4:11","nodeType":"VariableDeclaration","scope":1611,"src":"3018:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1570,"name":"uint256","nodeType":"ElementaryTypeName","src":"3018:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1572,"nodeType":"VariableDeclarationStatement","src":"3018:12:11"},{"assignments":[1574],"declarations":[{"constant":false,"id":1574,"mutability":"mutable","name":"src","nameLocation":"3044:3:11","nodeType":"VariableDeclaration","scope":1611,"src":"3036:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1573,"name":"uint256","nodeType":"ElementaryTypeName","src":"3036:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1575,"nodeType":"VariableDeclarationStatement","src":"3036:11:11"},{"AST":{"nodeType":"YulBlock","src":"3062:430:11","statements":[{"nodeType":"YulVariableDeclaration","src":"3113:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"3133:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3127:5:11"},"nodeType":"YulFunctionCall","src":"3127:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"3117:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3184:27:11","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3204:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3198:5:11"},"nodeType":"YulFunctionCall","src":"3198:13:11"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"3188:6:11","type":""}]},{"nodeType":"YulAssignment","src":"3291:33:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3307:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"3315:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3303:3:11"},"nodeType":"YulFunctionCall","src":"3303:15:11"},{"name":"off","nodeType":"YulIdentifier","src":"3320:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3299:3:11"},"nodeType":"YulFunctionCall","src":"3299:25:11"},"variableNames":[{"name":"dest","nodeType":"YulIdentifier","src":"3291:4:11"}]},{"body":{"nodeType":"YulBlock","src":"3412:47:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3429:6:11"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3441:3:11"},{"name":"off","nodeType":"YulIdentifier","src":"3446:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3437:3:11"},"nodeType":"YulFunctionCall","src":"3437:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3422:6:11"},"nodeType":"YulFunctionCall","src":"3422:29:11"},"nodeType":"YulExpressionStatement","src":"3422:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3393:3:11"},{"name":"off","nodeType":"YulIdentifier","src":"3398:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3389:3:11"},"nodeType":"YulFunctionCall","src":"3389:13:11"},{"name":"buflen","nodeType":"YulIdentifier","src":"3404:6:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3386:2:11"},"nodeType":"YulFunctionCall","src":"3386:25:11"},"nodeType":"YulIf","src":"3383:76:11"},{"nodeType":"YulAssignment","src":"3466:20:11","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3477:4:11"},{"kind":"number","nodeType":"YulLiteral","src":"3483:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3473:3:11"},"nodeType":"YulFunctionCall","src":"3473:13:11"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"3466:3:11"}]}]},"evmVersion":"london","externalReferences":[{"declaration":1530,"isOffset":false,"isSlot":false,"src":"3133:3:11","valueSize":1},{"declaration":1534,"isOffset":false,"isSlot":false,"src":"3477:4:11","valueSize":1},{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3291:4:11","valueSize":1},{"declaration":1536,"isOffset":false,"isSlot":false,"src":"3393:3:11","valueSize":1},{"declaration":1536,"isOffset":false,"isSlot":false,"src":"3441:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3320:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3398:3:11","valueSize":1},{"declaration":1532,"isOffset":false,"isSlot":false,"src":"3446:3:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3466:3:11","valueSize":1}],"id":1576,"nodeType":"InlineAssembly","src":"3053:439:11"},{"body":{"id":1593,"nodeType":"Block","src":"3573:100:11","statements":[{"AST":{"nodeType":"YulBlock","src":"3590:42:11","statements":[{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3607:4:11"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3619:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3613:5:11"},"nodeType":"YulFunctionCall","src":"3613:10:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3600:6:11"},"nodeType":"YulFunctionCall","src":"3600:24:11"},"nodeType":"YulExpressionStatement","src":"3600:24:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3607:4:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3619:3:11","valueSize":1}],"id":1584,"nodeType":"InlineAssembly","src":"3581:51:11"},{"expression":{"id":1587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1585,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"3639:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3647:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3639:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1588,"nodeType":"ExpressionStatement","src":"3639:10:11"},{"expression":{"id":1591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1589,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"3657:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3664:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3657:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1592,"nodeType":"ExpressionStatement","src":"3657:9:11"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1577,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3551:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":1578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3558:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3551:9:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1594,"loopExpression":{"expression":{"id":1582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1580,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3562:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":1581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3569:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3562:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1583,"nodeType":"ExpressionStatement","src":"3562:9:11"},"nodeType":"ForStatement","src":"3544:129:11"},{"id":1608,"nodeType":"UncheckedBlock","src":"3707:227:11","statements":[{"assignments":[1596],"declarations":[{"constant":false,"id":1596,"mutability":"mutable","name":"mask","nameLocation":"3733:4:11","nodeType":"VariableDeclaration","scope":1608,"src":"3725:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1595,"name":"uint256","nodeType":"ElementaryTypeName","src":"3725:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1606,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3741:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3747:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1599,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3752:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3747:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1601,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3746:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3741:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1603,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3740:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3760:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3740:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3725:36:11"},{"AST":{"nodeType":"YulBlock","src":"3778:150:11","statements":[{"nodeType":"YulVariableDeclaration","src":"3788:41:11","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3813:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3807:5:11"},"nodeType":"YulFunctionCall","src":"3807:10:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"3823:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3819:3:11"},"nodeType":"YulFunctionCall","src":"3819:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3803:3:11"},"nodeType":"YulFunctionCall","src":"3803:26:11"},"variables":[{"name":"srcpart","nodeType":"YulTypedName","src":"3792:7:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3838:38:11","value":{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3864:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3858:5:11"},"nodeType":"YulFunctionCall","src":"3858:11:11"},{"name":"mask","nodeType":"YulIdentifier","src":"3871:4:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3854:3:11"},"nodeType":"YulFunctionCall","src":"3854:22:11"},"variables":[{"name":"destpart","nodeType":"YulTypedName","src":"3842:8:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3892:4:11"},{"arguments":[{"name":"destpart","nodeType":"YulIdentifier","src":"3901:8:11"},{"name":"srcpart","nodeType":"YulIdentifier","src":"3911:7:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3898:2:11"},"nodeType":"YulFunctionCall","src":"3898:21:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3885:6:11"},"nodeType":"YulFunctionCall","src":"3885:35:11"},"nodeType":"YulExpressionStatement","src":"3885:35:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3864:4:11","valueSize":1},{"declaration":1571,"isOffset":false,"isSlot":false,"src":"3892:4:11","valueSize":1},{"declaration":1596,"isOffset":false,"isSlot":false,"src":"3823:4:11","valueSize":1},{"declaration":1596,"isOffset":false,"isSlot":false,"src":"3871:4:11","valueSize":1},{"declaration":1574,"isOffset":false,"isSlot":false,"src":"3813:3:11","valueSize":1}],"id":1607,"nodeType":"InlineAssembly","src":"3769:159:11"}]},{"expression":{"id":1609,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"3947:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1541,"id":1610,"nodeType":"Return","src":"3940:10:11"}]},"documentation":{"id":1527,"nodeType":"StructuredDocumentation","src":"2401:341:11","text":" @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The start offset to write to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1612,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"2754:5:11","nodeType":"FunctionDefinition","parameters":{"id":1537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1530,"mutability":"mutable","name":"buf","nameLocation":"2779:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2765:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1529,"nodeType":"UserDefinedTypeName","pathNode":{"id":1528,"name":"buffer","nameLocations":["2765:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2765:6:11"},"referencedDeclaration":1402,"src":"2765:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1532,"mutability":"mutable","name":"off","nameLocation":"2796:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2788:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1531,"name":"uint256","nodeType":"ElementaryTypeName","src":"2788:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1534,"mutability":"mutable","name":"data","nameLocation":"2818:4:11","nodeType":"VariableDeclaration","scope":1612,"src":"2805:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1533,"name":"bytes","nodeType":"ElementaryTypeName","src":"2805:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1536,"mutability":"mutable","name":"len","nameLocation":"2836:3:11","nodeType":"VariableDeclaration","scope":1612,"src":"2828:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1535,"name":"uint256","nodeType":"ElementaryTypeName","src":"2828:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2759:84:11"},"returnParameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1612,"src":"2867:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1539,"nodeType":"UserDefinedTypeName","pathNode":{"id":1538,"name":"buffer","nameLocations":["2867:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2867:6:11"},"referencedDeclaration":1402,"src":"2867:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2866:15:11"},"scope":1916,"src":"2745:1210:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1635,"nodeType":"Block","src":"4379:55:11","statements":[{"expression":{"arguments":[{"id":1627,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"4398:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1628,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"4403:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4407:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4403:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4411:6:11","memberName":"length","nodeType":"MemberAccess","src":"4403:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1631,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"4419:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1632,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"4425:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1626,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1612,"src":"4392:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4392:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1625,"id":1634,"nodeType":"Return","src":"4385:44:11"}]},"documentation":{"id":1613,"nodeType":"StructuredDocumentation","src":"3959:296:11","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1636,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4267:6:11","nodeType":"FunctionDefinition","parameters":{"id":1621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1616,"mutability":"mutable","name":"buf","nameLocation":"4293:3:11","nodeType":"VariableDeclaration","scope":1636,"src":"4279:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1615,"nodeType":"UserDefinedTypeName","pathNode":{"id":1614,"name":"buffer","nameLocations":["4279:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4279:6:11"},"referencedDeclaration":1402,"src":"4279:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1618,"mutability":"mutable","name":"data","nameLocation":"4315:4:11","nodeType":"VariableDeclaration","scope":1636,"src":"4302:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1617,"name":"bytes","nodeType":"ElementaryTypeName","src":"4302:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1620,"mutability":"mutable","name":"len","nameLocation":"4333:3:11","nodeType":"VariableDeclaration","scope":1636,"src":"4325:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1619,"name":"uint256","nodeType":"ElementaryTypeName","src":"4325:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4273:67:11"},"returnParameters":{"id":1625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1636,"src":"4364:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1623,"nodeType":"UserDefinedTypeName","pathNode":{"id":1622,"name":"buffer","nameLocations":["4364:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4364:6:11"},"referencedDeclaration":1402,"src":"4364:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4363:15:11"},"scope":1916,"src":"4258:176:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1658,"nodeType":"Block","src":"4784:63:11","statements":[{"expression":{"arguments":[{"id":1649,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1640,"src":"4803:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1650,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1640,"src":"4808:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4812:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"4808:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4816:6:11","memberName":"length","nodeType":"MemberAccess","src":"4808:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1653,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"4824:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1654,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"4830:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4835:6:11","memberName":"length","nodeType":"MemberAccess","src":"4830:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1648,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1612,"src":"4797:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4797:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1647,"id":1657,"nodeType":"Return","src":"4790:52:11"}]},"documentation":{"id":1637,"nodeType":"StructuredDocumentation","src":"4438:251:11","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1659,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4701:6:11","nodeType":"FunctionDefinition","parameters":{"id":1643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1640,"mutability":"mutable","name":"buf","nameLocation":"4722:3:11","nodeType":"VariableDeclaration","scope":1659,"src":"4708:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1639,"nodeType":"UserDefinedTypeName","pathNode":{"id":1638,"name":"buffer","nameLocations":["4708:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4708:6:11"},"referencedDeclaration":1402,"src":"4708:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1642,"mutability":"mutable","name":"data","nameLocation":"4740:4:11","nodeType":"VariableDeclaration","scope":1659,"src":"4727:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1641,"name":"bytes","nodeType":"ElementaryTypeName","src":"4727:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4707:38:11"},"returnParameters":{"id":1647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1659,"src":"4769:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1645,"nodeType":"UserDefinedTypeName","pathNode":{"id":1644,"name":"buffer","nameLocations":["4769:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"4769:6:11"},"referencedDeclaration":1402,"src":"4769:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4768:15:11"},"scope":1916,"src":"4692:155:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1690,"nodeType":"Block","src":"5266:521:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1673,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"5276:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":1674,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5283:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5287:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"5283:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5276:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1686,"nodeType":"IfStatement","src":"5272:69:11","trueBody":{"id":1685,"nodeType":"Block","src":"5297:44:11","statements":[{"expression":{"arguments":[{"id":1678,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5312:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1679,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5317:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5321:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"5317:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5332:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5317:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1677,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"5305:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5305:29:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1684,"nodeType":"ExpressionStatement","src":"5305:29:11"}]}},{"AST":{"nodeType":"YulBlock","src":"5356:411:11","statements":[{"nodeType":"YulVariableDeclaration","src":"5407:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"5427:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5421:5:11"},"nodeType":"YulFunctionCall","src":"5421:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"5411:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5478:27:11","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5498:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5492:5:11"},"nodeType":"YulFunctionCall","src":"5492:13:11"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"5482:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5576:37:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5596:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"5604:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5592:3:11"},"nodeType":"YulFunctionCall","src":"5592:16:11"},{"kind":"number","nodeType":"YulLiteral","src":"5610:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5588:3:11"},"nodeType":"YulFunctionCall","src":"5588:25:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"5580:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"5628:4:11"},{"name":"data","nodeType":"YulIdentifier","src":"5634:4:11"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"5620:7:11"},"nodeType":"YulFunctionCall","src":"5620:19:11"},"nodeType":"YulExpressionStatement","src":"5620:19:11"},{"body":{"nodeType":"YulBlock","src":"5713:48:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5730:6:11"},{"arguments":[{"name":"buflen","nodeType":"YulIdentifier","src":"5742:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"5750:1:11","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:11"},"nodeType":"YulFunctionCall","src":"5738:14:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5723:6:11"},"nodeType":"YulFunctionCall","src":"5723:30:11"},"nodeType":"YulExpressionStatement","src":"5723:30:11"}]},"condition":{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"5700:3:11"},{"name":"buflen","nodeType":"YulIdentifier","src":"5705:6:11"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5697:2:11"},"nodeType":"YulFunctionCall","src":"5697:15:11"},"nodeType":"YulIf","src":"5694:67:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1663,"isOffset":false,"isSlot":false,"src":"5427:3:11","valueSize":1},{"declaration":1667,"isOffset":false,"isSlot":false,"src":"5634:4:11","valueSize":1},{"declaration":1665,"isOffset":false,"isSlot":false,"src":"5604:3:11","valueSize":1},{"declaration":1665,"isOffset":false,"isSlot":false,"src":"5700:3:11","valueSize":1}],"id":1687,"nodeType":"InlineAssembly","src":"5347:420:11"},{"expression":{"id":1688,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"5779:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1672,"id":1689,"nodeType":"Return","src":"5772:10:11"}]},"documentation":{"id":1660,"nodeType":"StructuredDocumentation","src":"4851:294:11","text":" @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write the byte at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1691,"implemented":true,"kind":"function","modifiers":[],"name":"writeUint8","nameLocation":"5157:10:11","nodeType":"FunctionDefinition","parameters":{"id":1668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1663,"mutability":"mutable","name":"buf","nameLocation":"5187:3:11","nodeType":"VariableDeclaration","scope":1691,"src":"5173:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1662,"nodeType":"UserDefinedTypeName","pathNode":{"id":1661,"name":"buffer","nameLocations":["5173:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"5173:6:11"},"referencedDeclaration":1402,"src":"5173:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1665,"mutability":"mutable","name":"off","nameLocation":"5204:3:11","nodeType":"VariableDeclaration","scope":1691,"src":"5196:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1664,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1667,"mutability":"mutable","name":"data","nameLocation":"5219:4:11","nodeType":"VariableDeclaration","scope":1691,"src":"5213:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1666,"name":"uint8","nodeType":"ElementaryTypeName","src":"5213:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5167:60:11"},"returnParameters":{"id":1672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1691,"src":"5251:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1670,"nodeType":"UserDefinedTypeName","pathNode":{"id":1669,"name":"buffer","nameLocations":["5251:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"5251:6:11"},"referencedDeclaration":1402,"src":"5251:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"5250:15:11"},"scope":1916,"src":"5148:639:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1711,"nodeType":"Block","src":"6130:55:11","statements":[{"expression":{"arguments":[{"id":1704,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1695,"src":"6154:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1705,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1695,"src":"6159:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6163:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"6159:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6167:6:11","memberName":"length","nodeType":"MemberAccess","src":"6159:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1708,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"6175:4:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1703,"name":"writeUint8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"6143:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6143:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1702,"id":1710,"nodeType":"Return","src":"6136:44:11"}]},"documentation":{"id":1692,"nodeType":"StructuredDocumentation","src":"5791:246:11","text":" @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1712,"implemented":true,"kind":"function","modifiers":[],"name":"appendUint8","nameLocation":"6049:11:11","nodeType":"FunctionDefinition","parameters":{"id":1698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1695,"mutability":"mutable","name":"buf","nameLocation":"6075:3:11","nodeType":"VariableDeclaration","scope":1712,"src":"6061:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1694,"nodeType":"UserDefinedTypeName","pathNode":{"id":1693,"name":"buffer","nameLocations":["6061:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6061:6:11"},"referencedDeclaration":1402,"src":"6061:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1697,"mutability":"mutable","name":"data","nameLocation":"6086:4:11","nodeType":"VariableDeclaration","scope":1712,"src":"6080:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1696,"name":"uint8","nodeType":"ElementaryTypeName","src":"6080:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6060:31:11"},"returnParameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1712,"src":"6115:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1700,"nodeType":"UserDefinedTypeName","pathNode":{"id":1699,"name":"buffer","nameLocations":["6115:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6115:6:11"},"referencedDeclaration":1402,"src":"6115:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6114:15:11"},"scope":1916,"src":"6040:145:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1771,"nodeType":"Block","src":"6677:652:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1728,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6687:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1729,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6693:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1731,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6699:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6703:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"6699:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1745,"nodeType":"IfStatement","src":"6683:73:11","trueBody":{"id":1744,"nodeType":"Block","src":"6713:43:11","statements":[{"expression":{"arguments":[{"id":1735,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6728:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1736,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6734:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1737,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6740:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6734:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1739,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6733:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6747:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6733:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1734,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"6721:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6721:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1743,"nodeType":"ExpressionStatement","src":"6721:28:11"}]}},{"id":1768,"nodeType":"UncheckedBlock","src":"6762:547:11","statements":[{"assignments":[1747],"declarations":[{"constant":false,"id":1747,"mutability":"mutable","name":"mask","nameLocation":"6788:4:11","nodeType":"VariableDeclaration","scope":1768,"src":"6780:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1746,"name":"uint256","nodeType":"ElementaryTypeName","src":"6780:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1754,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6796:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1749,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6801:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6796:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1751,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6795:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6808:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6795:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6780:29:11"},{"expression":{"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1755,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1720,"src":"6843:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1756,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1720,"src":"6850:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":1757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6859:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6864:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1759,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6869:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6864:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1761,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6863:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6859:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1763,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6858:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6850:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6843:31:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1766,"nodeType":"ExpressionStatement","src":"6843:31:11"},{"AST":{"nodeType":"YulBlock","src":"6891:412:11","statements":[{"nodeType":"YulVariableDeclaration","src":"6946:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"6966:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6960:5:11"},"nodeType":"YulFunctionCall","src":"6960:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"6950:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7051:38:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7071:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"7079:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7067:3:11"},"nodeType":"YulFunctionCall","src":"7067:16:11"},{"name":"len","nodeType":"YulIdentifier","src":"7085:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7063:3:11"},"nodeType":"YulFunctionCall","src":"7063:26:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"7055:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7105:4:11"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7124:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7118:5:11"},"nodeType":"YulFunctionCall","src":"7118:11:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"7135:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7131:3:11"},"nodeType":"YulFunctionCall","src":"7131:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7114:3:11"},"nodeType":"YulFunctionCall","src":"7114:27:11"},{"name":"data","nodeType":"YulIdentifier","src":"7143:4:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7111:2:11"},"nodeType":"YulFunctionCall","src":"7111:37:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7098:6:11"},"nodeType":"YulFunctionCall","src":"7098:51:11"},"nodeType":"YulExpressionStatement","src":"7098:51:11"},{"body":{"nodeType":"YulBlock","src":"7244:51:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7263:6:11"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7275:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"7280:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7271:3:11"},"nodeType":"YulFunctionCall","src":"7271:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7256:6:11"},"nodeType":"YulFunctionCall","src":"7256:29:11"},"nodeType":"YulExpressionStatement","src":"7256:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7218:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"7223:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7214:3:11"},"nodeType":"YulFunctionCall","src":"7214:13:11"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7235:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7229:5:11"},"nodeType":"YulFunctionCall","src":"7229:13:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7211:2:11"},"nodeType":"YulFunctionCall","src":"7211:32:11"},"nodeType":"YulIf","src":"7208:87:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1716,"isOffset":false,"isSlot":false,"src":"6966:3:11","valueSize":1},{"declaration":1720,"isOffset":false,"isSlot":false,"src":"7143:4:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7085:3:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7223:3:11","valueSize":1},{"declaration":1722,"isOffset":false,"isSlot":false,"src":"7280:3:11","valueSize":1},{"declaration":1747,"isOffset":false,"isSlot":false,"src":"7135:4:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7079:3:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7218:3:11","valueSize":1},{"declaration":1718,"isOffset":false,"isSlot":false,"src":"7275:3:11","valueSize":1}],"id":1767,"nodeType":"InlineAssembly","src":"6882:421:11"}]},{"expression":{"id":1769,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"7321:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1727,"id":1770,"nodeType":"Return","src":"7314:10:11"}]},"documentation":{"id":1713,"nodeType":"StructuredDocumentation","src":"6189:354:11","text":" @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (left-aligned).\n @return The original buffer, for chaining."},"id":1772,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"6555:5:11","nodeType":"FunctionDefinition","parameters":{"id":1723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1716,"mutability":"mutable","name":"buf","nameLocation":"6580:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6566:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1715,"nodeType":"UserDefinedTypeName","pathNode":{"id":1714,"name":"buffer","nameLocations":["6566:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6566:6:11"},"referencedDeclaration":1402,"src":"6566:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1718,"mutability":"mutable","name":"off","nameLocation":"6597:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6589:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1717,"name":"uint256","nodeType":"ElementaryTypeName","src":"6589:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1720,"mutability":"mutable","name":"data","nameLocation":"6614:4:11","nodeType":"VariableDeclaration","scope":1772,"src":"6606:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1719,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6606:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1722,"mutability":"mutable","name":"len","nameLocation":"6632:3:11","nodeType":"VariableDeclaration","scope":1772,"src":"6624:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1721,"name":"uint256","nodeType":"ElementaryTypeName","src":"6624:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6560:79:11"},"returnParameters":{"id":1727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1772,"src":"6662:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1725,"nodeType":"UserDefinedTypeName","pathNode":{"id":1724,"name":"buffer","nameLocations":["6662:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"6662:6:11"},"referencedDeclaration":1402,"src":"6662:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6661:15:11"},"scope":1916,"src":"6546:783:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1796,"nodeType":"Block","src":"7746:52:11","statements":[{"expression":{"arguments":[{"id":1787,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"7765:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1788,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"7770:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1791,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1780,"src":"7783:4:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7775:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7775:7:11","typeDescriptions":{}}},"id":1792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7775:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7790:2:11","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1786,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"7759:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7759:34:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1785,"id":1795,"nodeType":"Return","src":"7752:41:11"}]},"documentation":{"id":1773,"nodeType":"StructuredDocumentation","src":"7333:288:11","text":" @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1797,"implemented":true,"kind":"function","modifiers":[],"name":"writeBytes20","nameLocation":"7633:12:11","nodeType":"FunctionDefinition","parameters":{"id":1781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1776,"mutability":"mutable","name":"buf","nameLocation":"7665:3:11","nodeType":"VariableDeclaration","scope":1797,"src":"7651:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1775,"nodeType":"UserDefinedTypeName","pathNode":{"id":1774,"name":"buffer","nameLocations":["7651:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"7651:6:11"},"referencedDeclaration":1402,"src":"7651:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1778,"mutability":"mutable","name":"off","nameLocation":"7682:3:11","nodeType":"VariableDeclaration","scope":1797,"src":"7674:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1777,"name":"uint256","nodeType":"ElementaryTypeName","src":"7674:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1780,"mutability":"mutable","name":"data","nameLocation":"7699:4:11","nodeType":"VariableDeclaration","scope":1797,"src":"7691:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1779,"name":"bytes20","nodeType":"ElementaryTypeName","src":"7691:7:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"7645:62:11"},"returnParameters":{"id":1785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1797,"src":"7731:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1783,"nodeType":"UserDefinedTypeName","pathNode":{"id":1782,"name":"buffer","nameLocations":["7731:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"7731:6:11"},"referencedDeclaration":1402,"src":"7731:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"7730:15:11"},"scope":1916,"src":"7624:174:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1821,"nodeType":"Block","src":"8149:63:11","statements":[{"expression":{"arguments":[{"id":1810,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"8168:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1811,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"8173:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8177:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"8173:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8181:6:11","memberName":"length","nodeType":"MemberAccess","src":"8173:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1816,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1803,"src":"8197:4:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8189:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8189:7:11","typeDescriptions":{}}},"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8189:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8204:2:11","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1809,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"8162:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8162:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1808,"id":1820,"nodeType":"Return","src":"8155:52:11"}]},"documentation":{"id":1798,"nodeType":"StructuredDocumentation","src":"7802:250:11","text":" @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chhaining."},"id":1822,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes20","nameLocation":"8064:13:11","nodeType":"FunctionDefinition","parameters":{"id":1804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1801,"mutability":"mutable","name":"buf","nameLocation":"8092:3:11","nodeType":"VariableDeclaration","scope":1822,"src":"8078:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1800,"nodeType":"UserDefinedTypeName","pathNode":{"id":1799,"name":"buffer","nameLocations":["8078:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8078:6:11"},"referencedDeclaration":1402,"src":"8078:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1803,"mutability":"mutable","name":"data","nameLocation":"8105:4:11","nodeType":"VariableDeclaration","scope":1822,"src":"8097:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1802,"name":"bytes20","nodeType":"ElementaryTypeName","src":"8097:7:11","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"8077:33:11"},"returnParameters":{"id":1808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1822,"src":"8134:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1806,"nodeType":"UserDefinedTypeName","pathNode":{"id":1805,"name":"buffer","nameLocations":["8134:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8134:6:11"},"referencedDeclaration":1402,"src":"8134:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8133:15:11"},"scope":1916,"src":"8055:157:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1843,"nodeType":"Block","src":"8562:54:11","statements":[{"expression":{"arguments":[{"id":1835,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"8581:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1836,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"8586:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8590:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"8586:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8594:6:11","memberName":"length","nodeType":"MemberAccess","src":"8586:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1839,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1828,"src":"8602:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3332","id":1840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8608:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":1834,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1612,1772],"referencedDeclaration":1772,"src":"8575:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8575:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1833,"id":1842,"nodeType":"Return","src":"8568:43:11"}]},"documentation":{"id":1823,"nodeType":"StructuredDocumentation","src":"8216:249:11","text":" @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1844,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes32","nameLocation":"8477:13:11","nodeType":"FunctionDefinition","parameters":{"id":1829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1826,"mutability":"mutable","name":"buf","nameLocation":"8505:3:11","nodeType":"VariableDeclaration","scope":1844,"src":"8491:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1825,"nodeType":"UserDefinedTypeName","pathNode":{"id":1824,"name":"buffer","nameLocations":["8491:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8491:6:11"},"referencedDeclaration":1402,"src":"8491:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1828,"mutability":"mutable","name":"data","nameLocation":"8518:4:11","nodeType":"VariableDeclaration","scope":1844,"src":"8510:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1827,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8510:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8490:33:11"},"returnParameters":{"id":1833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1844,"src":"8547:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1831,"nodeType":"UserDefinedTypeName","pathNode":{"id":1830,"name":"buffer","nameLocations":["8547:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8547:6:11"},"referencedDeclaration":1402,"src":"8547:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8546:15:11"},"scope":1916,"src":"8468:148:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1890,"nodeType":"Block","src":"9108:541:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1860,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9118:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1861,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"9124:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1863,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9130:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9134:8:11","memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"9130:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1877,"nodeType":"IfStatement","src":"9114:73:11","trueBody":{"id":1876,"nodeType":"Block","src":"9144:43:11","statements":[{"expression":{"arguments":[{"id":1867,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9159:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1868,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9165:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1869,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"9171:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9165:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1871,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9164:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9178:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9164:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1866,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"9152:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9152:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1875,"nodeType":"ExpressionStatement","src":"9152:28:11"}]}},{"assignments":[1879],"declarations":[{"constant":false,"id":1879,"mutability":"mutable","name":"mask","nameLocation":"9201:4:11","nodeType":"VariableDeclaration","scope":1890,"src":"9193:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1878,"name":"uint256","nodeType":"ElementaryTypeName","src":"9193:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1886,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9209:3:11","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1881,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"9214:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9209:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1883,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9208:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9221:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9208:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9193:29:11"},{"AST":{"nodeType":"YulBlock","src":"9237:392:11","statements":[{"nodeType":"YulVariableDeclaration","src":"9288:24:11","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"9308:3:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9302:5:11"},"nodeType":"YulFunctionCall","src":"9302:10:11"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"9292:6:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9389:38:11","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9409:6:11"},{"name":"off","nodeType":"YulIdentifier","src":"9417:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9405:3:11"},"nodeType":"YulFunctionCall","src":"9405:16:11"},{"name":"len","nodeType":"YulIdentifier","src":"9423:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9401:3:11"},"nodeType":"YulFunctionCall","src":"9401:26:11"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"9393:4:11","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9441:4:11"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9460:4:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9454:5:11"},"nodeType":"YulFunctionCall","src":"9454:11:11"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"9471:4:11"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9467:3:11"},"nodeType":"YulFunctionCall","src":"9467:9:11"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9450:3:11"},"nodeType":"YulFunctionCall","src":"9450:27:11"},{"name":"data","nodeType":"YulIdentifier","src":"9479:4:11"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9447:2:11"},"nodeType":"YulFunctionCall","src":"9447:37:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9434:6:11"},"nodeType":"YulFunctionCall","src":"9434:51:11"},"nodeType":"YulExpressionStatement","src":"9434:51:11"},{"body":{"nodeType":"YulBlock","src":"9576:47:11","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9593:6:11"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9605:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"9610:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9601:3:11"},"nodeType":"YulFunctionCall","src":"9601:13:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9586:6:11"},"nodeType":"YulFunctionCall","src":"9586:29:11"},"nodeType":"YulExpressionStatement","src":"9586:29:11"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9550:3:11"},{"name":"len","nodeType":"YulIdentifier","src":"9555:3:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9546:3:11"},"nodeType":"YulFunctionCall","src":"9546:13:11"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9567:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9561:5:11"},"nodeType":"YulFunctionCall","src":"9561:13:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9543:2:11"},"nodeType":"YulFunctionCall","src":"9543:32:11"},"nodeType":"YulIf","src":"9540:83:11"}]},"evmVersion":"london","externalReferences":[{"declaration":1848,"isOffset":false,"isSlot":false,"src":"9308:3:11","valueSize":1},{"declaration":1852,"isOffset":false,"isSlot":false,"src":"9479:4:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9423:3:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9555:3:11","valueSize":1},{"declaration":1854,"isOffset":false,"isSlot":false,"src":"9610:3:11","valueSize":1},{"declaration":1879,"isOffset":false,"isSlot":false,"src":"9471:4:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9417:3:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9550:3:11","valueSize":1},{"declaration":1850,"isOffset":false,"isSlot":false,"src":"9605:3:11","valueSize":1}],"id":1887,"nodeType":"InlineAssembly","src":"9228:401:11"},{"expression":{"id":1888,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"9641:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1859,"id":1889,"nodeType":"Return","src":"9634:10:11"}]},"documentation":{"id":1845,"nodeType":"StructuredDocumentation","src":"8620:351:11","text":" @dev Writes an integer to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (right-aligned).\n @return The original buffer, for chaining."},"id":1891,"implemented":true,"kind":"function","modifiers":[],"name":"writeInt","nameLocation":"8983:8:11","nodeType":"FunctionDefinition","parameters":{"id":1855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"mutability":"mutable","name":"buf","nameLocation":"9011:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"8997:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1847,"nodeType":"UserDefinedTypeName","pathNode":{"id":1846,"name":"buffer","nameLocations":["8997:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"8997:6:11"},"referencedDeclaration":1402,"src":"8997:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1850,"mutability":"mutable","name":"off","nameLocation":"9028:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"9020:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1849,"name":"uint256","nodeType":"ElementaryTypeName","src":"9020:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1852,"mutability":"mutable","name":"data","nameLocation":"9045:4:11","nodeType":"VariableDeclaration","scope":1891,"src":"9037:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1851,"name":"uint256","nodeType":"ElementaryTypeName","src":"9037:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1854,"mutability":"mutable","name":"len","nameLocation":"9063:3:11","nodeType":"VariableDeclaration","scope":1891,"src":"9055:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1853,"name":"uint256","nodeType":"ElementaryTypeName","src":"9055:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8991:79:11"},"returnParameters":{"id":1859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1891,"src":"9093:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1857,"nodeType":"UserDefinedTypeName","pathNode":{"id":1856,"name":"buffer","nameLocations":["9093:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9093:6:11"},"referencedDeclaration":1402,"src":"9093:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9092:15:11"},"scope":1916,"src":"8974:675:11","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1914,"nodeType":"Block","src":"10013:58:11","statements":[{"expression":{"arguments":[{"id":1906,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1895,"src":"10035:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1907,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1895,"src":"10040:3:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10044:3:11","memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1399,"src":"10040:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10048:6:11","memberName":"length","nodeType":"MemberAccess","src":"10040:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1910,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"10056:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1911,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1899,"src":"10062:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1905,"name":"writeInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"10026:8:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10026:40:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1904,"id":1913,"nodeType":"Return","src":"10019:47:11"}]},"documentation":{"id":1892,"nodeType":"StructuredDocumentation","src":"9653:238:11","text":" @dev Appends a byte to the end of the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer."},"id":1915,"implemented":true,"kind":"function","modifiers":[],"name":"appendInt","nameLocation":"9903:9:11","nodeType":"FunctionDefinition","parameters":{"id":1900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1895,"mutability":"mutable","name":"buf","nameLocation":"9932:3:11","nodeType":"VariableDeclaration","scope":1915,"src":"9918:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1894,"nodeType":"UserDefinedTypeName","pathNode":{"id":1893,"name":"buffer","nameLocations":["9918:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9918:6:11"},"referencedDeclaration":1402,"src":"9918:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1897,"mutability":"mutable","name":"data","nameLocation":"9949:4:11","nodeType":"VariableDeclaration","scope":1915,"src":"9941:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1896,"name":"uint256","nodeType":"ElementaryTypeName","src":"9941:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1899,"mutability":"mutable","name":"len","nameLocation":"9967:3:11","nodeType":"VariableDeclaration","scope":1915,"src":"9959:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1898,"name":"uint256","nodeType":"ElementaryTypeName","src":"9959:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9912:62:11"},"returnParameters":{"id":1904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1915,"src":"9998:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1902,"nodeType":"UserDefinedTypeName","pathNode":{"id":1901,"name":"buffer","nameLocations":["9998:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"9998:6:11"},"referencedDeclaration":1402,"src":"9998:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9997:15:11"},"scope":1916,"src":"9894:177:11","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1917,"src":"441:9632:11","usedErrors":[]}],"src":"32:10042:11"},"id":11},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","exportedSymbols":{"BufferChainlink":[1916],"CBORChainlink":[2363]},"id":2364,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1918,"literals":["solidity",">=","0.4",".19"],"nodeType":"PragmaDirective","src":"32:25:12"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./BufferChainlink.sol","id":1920,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2364,"sourceUnit":1917,"src":"59:54:12","symbolAliases":[{"foreign":{"id":1919,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"67:15:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"CBORChainlink","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2363,"linearizedBaseContracts":[2363],"name":"CBORChainlink","nameLocation":"123:13:12","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1924,"libraryName":{"id":1921,"name":"BufferChainlink","nameLocations":["147:15:12"],"nodeType":"IdentifierPath","referencedDeclaration":1916,"src":"147:15:12"},"nodeType":"UsingForDirective","src":"141:49:12","typeName":{"id":1923,"nodeType":"UserDefinedTypeName","pathNode":{"id":1922,"name":"BufferChainlink.buffer","nameLocations":["167:15:12","183:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"167:22:12"},"referencedDeclaration":1402,"src":"167:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"constant":true,"id":1927,"mutability":"constant","name":"MAJOR_TYPE_INT","nameLocation":"217:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"194:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1925,"name":"uint8","nodeType":"ElementaryTypeName","src":"194:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":1926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"234:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":1930,"mutability":"constant","name":"MAJOR_TYPE_NEGATIVE_INT","nameLocation":"262:23:12","nodeType":"VariableDeclaration","scope":2363,"src":"239:50:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1928,"name":"uint8","nodeType":"ElementaryTypeName","src":"239:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":1933,"mutability":"constant","name":"MAJOR_TYPE_BYTES","nameLocation":"316:16:12","nodeType":"VariableDeclaration","scope":2363,"src":"293:43:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1931,"name":"uint8","nodeType":"ElementaryTypeName","src":"293:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"335:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1936,"mutability":"constant","name":"MAJOR_TYPE_STRING","nameLocation":"363:17:12","nodeType":"VariableDeclaration","scope":2363,"src":"340:44:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1934,"name":"uint8","nodeType":"ElementaryTypeName","src":"340:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"383:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"constant":true,"id":1939,"mutability":"constant","name":"MAJOR_TYPE_ARRAY","nameLocation":"411:16:12","nodeType":"VariableDeclaration","scope":2363,"src":"388:43:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1937,"name":"uint8","nodeType":"ElementaryTypeName","src":"388:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":1938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"430:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"private"},{"constant":true,"id":1942,"mutability":"constant","name":"MAJOR_TYPE_MAP","nameLocation":"458:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"435:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1940,"name":"uint8","nodeType":"ElementaryTypeName","src":"435:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"35","id":1941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"475:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"visibility":"private"},{"constant":true,"id":1945,"mutability":"constant","name":"MAJOR_TYPE_TAG","nameLocation":"503:14:12","nodeType":"VariableDeclaration","scope":2363,"src":"480:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1943,"name":"uint8","nodeType":"ElementaryTypeName","src":"480:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"36","id":1944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"520:1:12","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"visibility":"private"},{"constant":true,"id":1948,"mutability":"constant","name":"MAJOR_TYPE_CONTENT_FREE","nameLocation":"548:23:12","nodeType":"VariableDeclaration","scope":2363,"src":"525:50:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1946,"name":"uint8","nodeType":"ElementaryTypeName","src":"525:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"37","id":1947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"574:1:12","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"private"},{"constant":true,"id":1951,"mutability":"constant","name":"TAG_TYPE_BIGNUM","nameLocation":"603:15:12","nodeType":"VariableDeclaration","scope":2363,"src":"580:42:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1949,"name":"uint8","nodeType":"ElementaryTypeName","src":"580:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"621:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1954,"mutability":"constant","name":"TAG_TYPE_NEGATIVE_BIGNUM","nameLocation":"649:24:12","nodeType":"VariableDeclaration","scope":2363,"src":"626:51:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1952,"name":"uint8","nodeType":"ElementaryTypeName","src":"626:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"676:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"body":{"id":2083,"nodeType":"Block","src":"785:522:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1964,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"794:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3233","id":1965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"803:2:12","typeDescriptions":{"typeIdentifier":"t_rational_23_by_1","typeString":"int_const 23"},"value":"23"},"src":"794:11:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1982,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"876:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646","id":1983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"885:4:12","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"876:13:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2007,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"988:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"307846464646","id":2008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"997:6:12","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"value":"0xFFFF"},"src":"988:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2032,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1102:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646464646464646","id":2033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:10:12","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xFFFFFFFF"},"src":"1102:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2078,"nodeType":"Block","src":"1216:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2062,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1247:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1256:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1247:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2065,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1246:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3237","id":2066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:2:12","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"1246:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1240:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2060,"name":"uint8","nodeType":"ElementaryTypeName","src":"1240:5:12","typeDescriptions":{}}},"id":2068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1240:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2057,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1224:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1228:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1224:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1224:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2070,"nodeType":"ExpressionStatement","src":"1224:41:12"},{"expression":{"arguments":[{"id":2074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1287:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"38","id":2075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1294:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"expression":{"id":2071,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1273:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1277:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1273:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1273:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2077,"nodeType":"ExpressionStatement","src":"1273:23:12"}]},"id":2079,"nodeType":"IfStatement","src":"1098:205:12","trueBody":{"id":2056,"nodeType":"Block","src":"1123:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2040,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1154:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1163:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1154:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2043,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1153:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3236","id":2044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1168:2:12","typeDescriptions":{"typeIdentifier":"t_rational_26_by_1","typeString":"int_const 26"},"value":"26"},"src":"1153:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1147:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2038,"name":"uint8","nodeType":"ElementaryTypeName","src":"1147:5:12","typeDescriptions":{}}},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2035,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1131:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1135:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1131:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1131:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2048,"nodeType":"ExpressionStatement","src":"1131:41:12"},{"expression":{"arguments":[{"id":2052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1194:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"34","id":2053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1201:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"expression":{"id":2049,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1180:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1184:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1180:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1180:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2055,"nodeType":"ExpressionStatement","src":"1180:23:12"}]}},"id":2080,"nodeType":"IfStatement","src":"984:319:12","trueBody":{"id":2031,"nodeType":"Block","src":"1005:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2015,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"1036:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1036:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2018,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1035:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3235","id":2019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:2:12","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"src":"1035:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1029:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2013,"name":"uint8","nodeType":"ElementaryTypeName","src":"1029:5:12","typeDescriptions":{}}},"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1029:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2010,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1013:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1017:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1013:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1013:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2023,"nodeType":"ExpressionStatement","src":"1013:41:12"},{"expression":{"arguments":[{"id":2027,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"1076:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"32","id":2028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1083:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":2024,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1062:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1066:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"1062:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1062:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2030,"nodeType":"ExpressionStatement","src":"1062:23:12"}]}},"id":2081,"nodeType":"IfStatement","src":"872:431:12","trueBody":{"id":2006,"nodeType":"Block","src":"891:87:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1990,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"922:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"922:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1993,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"921:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3234","id":1994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:2:12","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"921:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1988,"name":"uint8","nodeType":"ElementaryTypeName","src":"915:5:12","typeDescriptions":{}}},"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1985,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"899:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"903:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"899:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"899:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1998,"nodeType":"ExpressionStatement","src":"899:41:12"},{"expression":{"arguments":[{"id":2002,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"962:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"31","id":2003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"969:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":1999,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"948:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"952:9:12","memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"948:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":2004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2005,"nodeType":"ExpressionStatement","src":"948:23:12"}]}},"id":2082,"nodeType":"IfStatement","src":"791:512:12","trueBody":{"id":1981,"nodeType":"Block","src":"807:59:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1972,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1959,"src":"838:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"847:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"838:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1975,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"837:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":1976,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"852:5:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"837:20:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"831:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1970,"name":"uint8","nodeType":"ElementaryTypeName","src":"831:5:12","typeDescriptions":{}}},"id":1978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"831:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1967,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"815:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"819:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"815:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"815:44:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1980,"nodeType":"ExpressionStatement","src":"815:44:12"}]}}]},"id":2084,"implemented":true,"kind":"function","modifiers":[],"name":"encodeFixedNumeric","nameLocation":"691:18:12","nodeType":"FunctionDefinition","parameters":{"id":1962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1957,"mutability":"mutable","name":"buf","nameLocation":"740:3:12","nodeType":"VariableDeclaration","scope":2084,"src":"710:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1956,"nodeType":"UserDefinedTypeName","pathNode":{"id":1955,"name":"BufferChainlink.buffer","nameLocations":["710:15:12","726:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"710:22:12"},"referencedDeclaration":1402,"src":"710:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1959,"mutability":"mutable","name":"major","nameLocation":"751:5:12","nodeType":"VariableDeclaration","scope":2084,"src":"745:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1958,"name":"uint8","nodeType":"ElementaryTypeName","src":"745:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1961,"mutability":"mutable","name":"value","nameLocation":"765:5:12","nodeType":"VariableDeclaration","scope":2084,"src":"758:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1960,"name":"uint64","nodeType":"ElementaryTypeName","src":"758:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"709:62:12"},"returnParameters":{"id":1963,"nodeType":"ParameterList","parameters":[],"src":"785:0:12"},"scope":2363,"src":"682:625:12","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2106,"nodeType":"Block","src":"1408:52:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2097,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2089,"src":"1437:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1446:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1437:10:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1436:12:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3331","id":2101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1451:2:12","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"1436:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1430:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2095,"name":"uint8","nodeType":"ElementaryTypeName","src":"1430:5:12","typeDescriptions":{}}},"id":2103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1430:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2092,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2087,"src":"1414:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1418:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"1414:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:41:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2105,"nodeType":"ExpressionStatement","src":"1414:41:12"}]},"id":2107,"implemented":true,"kind":"function","modifiers":[],"name":"encodeIndefiniteLengthType","nameLocation":"1320:26:12","nodeType":"FunctionDefinition","parameters":{"id":2090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2087,"mutability":"mutable","name":"buf","nameLocation":"1377:3:12","nodeType":"VariableDeclaration","scope":2107,"src":"1347:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2086,"nodeType":"UserDefinedTypeName","pathNode":{"id":2085,"name":"BufferChainlink.buffer","nameLocations":["1347:15:12","1363:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1347:22:12"},"referencedDeclaration":1402,"src":"1347:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2089,"mutability":"mutable","name":"major","nameLocation":"1388:5:12","nodeType":"VariableDeclaration","scope":2107,"src":"1382:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2088,"name":"uint8","nodeType":"ElementaryTypeName","src":"1382:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1346:48:12"},"returnParameters":{"id":2091,"nodeType":"ParameterList","parameters":[],"src":"1408:0:12"},"scope":2363,"src":"1311:149:12","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2135,"nodeType":"Block","src":"1545:155:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1554:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":2116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1562:18:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1554:26:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2133,"nodeType":"Block","src":"1627:69:12","statements":[{"expression":{"arguments":[{"id":2125,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"1654:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2126,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1927,"src":"1659:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"id":2129,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1682:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1675:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2127,"name":"uint64","nodeType":"ElementaryTypeName","src":"1675:6:12","typeDescriptions":{}}},"id":2130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2124,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"1635:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1635:54:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2132,"nodeType":"ExpressionStatement","src":"1635:54:12"}]},"id":2134,"nodeType":"IfStatement","src":"1551:145:12","trueBody":{"id":2123,"nodeType":"Block","src":"1582:39:12","statements":[{"expression":{"arguments":[{"id":2119,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"1603:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2120,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"1608:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2118,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2258,"src":"1590:12:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":2121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2122,"nodeType":"ExpressionStatement","src":"1590:24:12"}]}}]},"id":2136,"implemented":true,"kind":"function","modifiers":[],"name":"encodeUInt","nameLocation":"1473:10:12","nodeType":"FunctionDefinition","parameters":{"id":2113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2110,"mutability":"mutable","name":"buf","nameLocation":"1514:3:12","nodeType":"VariableDeclaration","scope":2136,"src":"1484:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2109,"nodeType":"UserDefinedTypeName","pathNode":{"id":2108,"name":"BufferChainlink.buffer","nameLocations":["1484:15:12","1500:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1484:22:12"},"referencedDeclaration":1402,"src":"1484:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2112,"mutability":"mutable","name":"value","nameLocation":"1524:5:12","nodeType":"VariableDeclaration","scope":2136,"src":"1519:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2111,"name":"uint","nodeType":"ElementaryTypeName","src":"1519:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1483:47:12"},"returnParameters":{"id":2114,"nodeType":"ParameterList","parameters":[],"src":"1545:0:12"},"scope":2363,"src":"1464:236:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2201,"nodeType":"Block","src":"1783:367:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2144,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1792:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1800:20:12","subExpression":{"hexValue":"30783130303030303030303030303030303030","id":2145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1801:19:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_18446744073709551616_by_1","typeString":"int_const -18446744073709551616"}},"src":"1792:28:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2154,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1876:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":2155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1884:18:12","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1876:26:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2166,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1958:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":2167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1967:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1958:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2197,"nodeType":"Block","src":"2054:92:12","statements":[{"expression":{"arguments":[{"id":2183,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"2081:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2184,"name":"MAJOR_TYPE_NEGATIVE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"2086:23:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2126:2:12","subExpression":{"hexValue":"31","id":2189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2127:1:12","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"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2191,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"2131:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2126:10:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2118:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2187,"name":"uint256","nodeType":"ElementaryTypeName","src":"2118:7:12","typeDescriptions":{}}},"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2118:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2111:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2185,"name":"uint64","nodeType":"ElementaryTypeName","src":"2111:6:12","typeDescriptions":{}}},"id":2194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2182,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2062:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2062:77:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2196,"nodeType":"ExpressionStatement","src":"2062:77:12"}]},"id":2198,"nodeType":"IfStatement","src":"1955:191:12","trueBody":{"id":2181,"nodeType":"Block","src":"1970:78:12","statements":[{"expression":{"arguments":[{"id":2170,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1997:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2171,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1927,"src":"2002:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"id":2176,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"2033:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2025:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2174,"name":"uint256","nodeType":"ElementaryTypeName","src":"2025:7:12","typeDescriptions":{}}},"id":2177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2025:14:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2018:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2172,"name":"uint64","nodeType":"ElementaryTypeName","src":"2018:6:12","typeDescriptions":{}}},"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2018:22:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2169,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"1978:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2180,"nodeType":"ExpressionStatement","src":"1978:63:12"}]}},"id":2199,"nodeType":"IfStatement","src":"1873:273:12","trueBody":{"id":2165,"nodeType":"Block","src":"1904:45:12","statements":[{"expression":{"arguments":[{"id":2158,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1925:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":2161,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1935:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1930:4:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2159,"name":"uint","nodeType":"ElementaryTypeName","src":"1930:4:12","typeDescriptions":{}}},"id":2162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1930:11:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2157,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2258,"src":"1912:12:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":2163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2164,"nodeType":"ExpressionStatement","src":"1912:30:12"}]}},"id":2200,"nodeType":"IfStatement","src":"1789:357:12","trueBody":{"id":2153,"nodeType":"Block","src":"1822:45:12","statements":[{"expression":{"arguments":[{"id":2149,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"1849:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2150,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"1854:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2148,"name":"encodeSignedBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"1830:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_int256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":2151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1830:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2152,"nodeType":"ExpressionStatement","src":"1830:30:12"}]}}]},"id":2202,"implemented":true,"kind":"function","modifiers":[],"name":"encodeInt","nameLocation":"1713:9:12","nodeType":"FunctionDefinition","parameters":{"id":2142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2139,"mutability":"mutable","name":"buf","nameLocation":"1753:3:12","nodeType":"VariableDeclaration","scope":2202,"src":"1723:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2138,"nodeType":"UserDefinedTypeName","pathNode":{"id":2137,"name":"BufferChainlink.buffer","nameLocations":["1723:15:12","1739:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"1723:22:12"},"referencedDeclaration":1402,"src":"1723:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2141,"mutability":"mutable","name":"value","nameLocation":"1762:5:12","nodeType":"VariableDeclaration","scope":2202,"src":"1758:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2140,"name":"int","nodeType":"ElementaryTypeName","src":"1758:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1722:46:12"},"returnParameters":{"id":2143,"nodeType":"ParameterList","parameters":[],"src":"1783:0:12"},"scope":2363,"src":"1704:446:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2226,"nodeType":"Block","src":"2244:97:12","statements":[{"expression":{"arguments":[{"id":2211,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"2269:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2212,"name":"MAJOR_TYPE_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1933,"src":"2274:16:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"id":2215,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"2299:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2305:6:12","memberName":"length","nodeType":"MemberAccess","src":"2299:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2292:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2213,"name":"uint64","nodeType":"ElementaryTypeName","src":"2292:6:12","typeDescriptions":{}}},"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2292:20:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2210,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2250:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2219,"nodeType":"ExpressionStatement","src":"2250:63:12"},{"expression":{"arguments":[{"id":2223,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"2330:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2220,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"2319:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2323:6:12","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"2319:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2319:17:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2225,"nodeType":"ExpressionStatement","src":"2319:17:12"}]},"id":2227,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBytes","nameLocation":"2163:11:12","nodeType":"FunctionDefinition","parameters":{"id":2208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2205,"mutability":"mutable","name":"buf","nameLocation":"2205:3:12","nodeType":"VariableDeclaration","scope":2227,"src":"2175:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2204,"nodeType":"UserDefinedTypeName","pathNode":{"id":2203,"name":"BufferChainlink.buffer","nameLocations":["2175:15:12","2191:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2175:22:12"},"referencedDeclaration":1402,"src":"2175:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2207,"mutability":"mutable","name":"value","nameLocation":"2223:5:12","nodeType":"VariableDeclaration","scope":2227,"src":"2210:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2206,"name":"bytes","nodeType":"ElementaryTypeName","src":"2210:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2174:55:12"},"returnParameters":{"id":2209,"nodeType":"ParameterList","parameters":[],"src":"2244:0:12"},"scope":2363,"src":"2154:187:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2257,"nodeType":"Block","src":"2428:115:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2240,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"2457:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2475:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2457:19:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2243,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2456:21:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2244,"name":"TAG_TYPE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"2480:15:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2456:39:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2450:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2238,"name":"uint8","nodeType":"ElementaryTypeName","src":"2450:5:12","typeDescriptions":{}}},"id":2246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2450:46:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2235,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"2434:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2438:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"2434:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2434:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2248,"nodeType":"ExpressionStatement","src":"2434:63:12"},{"expression":{"arguments":[{"id":2250,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"2515:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":2253,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2232,"src":"2531:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2251,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2520:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2524:6:12","memberName":"encode","nodeType":"MemberAccess","src":"2520:10:12","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2520:17:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2249,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2227,"src":"2503:11:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:35:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2256,"nodeType":"ExpressionStatement","src":"2503:35:12"}]},"id":2258,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBigNum","nameLocation":"2354:12:12","nodeType":"FunctionDefinition","parameters":{"id":2233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2230,"mutability":"mutable","name":"buf","nameLocation":"2397:3:12","nodeType":"VariableDeclaration","scope":2258,"src":"2367:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2229,"nodeType":"UserDefinedTypeName","pathNode":{"id":2228,"name":"BufferChainlink.buffer","nameLocations":["2367:15:12","2383:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2367:22:12"},"referencedDeclaration":1402,"src":"2367:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2232,"mutability":"mutable","name":"value","nameLocation":"2407:5:12","nodeType":"VariableDeclaration","scope":2258,"src":"2402:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2231,"name":"uint","nodeType":"ElementaryTypeName","src":"2402:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2366:47:12"},"returnParameters":{"id":2234,"nodeType":"ParameterList","parameters":[],"src":"2428:0:12"},"scope":2363,"src":"2345:198:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2294,"nodeType":"Block","src":"2635:138:12","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2271,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"2664:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2682:1:12","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2664:19:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2274,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2663:21:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2275,"name":"TAG_TYPE_NEGATIVE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1954,"src":"2687:24:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2663:48:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2657:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2269,"name":"uint8","nodeType":"ElementaryTypeName","src":"2657:5:12","typeDescriptions":{}}},"id":2277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2657:55:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2266,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"2641:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2645:11:12","memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"2641:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:72:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2279,"nodeType":"ExpressionStatement","src":"2641:72:12"},{"expression":{"arguments":[{"id":2281,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"2731:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2755:2:12","subExpression":{"hexValue":"31","id":2286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2756:1:12","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"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2288,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2263,"src":"2760:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2755:10:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2284,"name":"uint256","nodeType":"ElementaryTypeName","src":"2747:7:12","typeDescriptions":{}}},"id":2290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2282,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2736:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2740:6:12","memberName":"encode","nodeType":"MemberAccess","src":"2736:10:12","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2736:31:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2280,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2227,"src":"2719:11:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2719:49:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2293,"nodeType":"ExpressionStatement","src":"2719:49:12"}]},"id":2295,"implemented":true,"kind":"function","modifiers":[],"name":"encodeSignedBigNum","nameLocation":"2556:18:12","nodeType":"FunctionDefinition","parameters":{"id":2264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2261,"mutability":"mutable","name":"buf","nameLocation":"2605:3:12","nodeType":"VariableDeclaration","scope":2295,"src":"2575:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2260,"nodeType":"UserDefinedTypeName","pathNode":{"id":2259,"name":"BufferChainlink.buffer","nameLocations":["2575:15:12","2591:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2575:22:12"},"referencedDeclaration":1402,"src":"2575:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2263,"mutability":"mutable","name":"input","nameLocation":"2614:5:12","nodeType":"VariableDeclaration","scope":2295,"src":"2610:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2262,"name":"int","nodeType":"ElementaryTypeName","src":"2610:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2574:46:12"},"returnParameters":{"id":2265,"nodeType":"ParameterList","parameters":[],"src":"2635:0:12"},"scope":2363,"src":"2547:226:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2325,"nodeType":"Block","src":"2869:112:12","statements":[{"expression":{"arguments":[{"id":2304,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"2894:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2305,"name":"MAJOR_TYPE_STRING","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"2899:17:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"arguments":[{"id":2310,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"2931:5:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2925:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2308,"name":"bytes","nodeType":"ElementaryTypeName","src":"2925:5:12","typeDescriptions":{}}},"id":2311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2938:6:12","memberName":"length","nodeType":"MemberAccess","src":"2925:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2918:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2306,"name":"uint64","nodeType":"ElementaryTypeName","src":"2918:6:12","typeDescriptions":{}}},"id":2313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2918:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2303,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2875:18:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2875:71:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2315,"nodeType":"ExpressionStatement","src":"2875:71:12"},{"expression":{"arguments":[{"arguments":[{"id":2321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"2969:5:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2963:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2319,"name":"bytes","nodeType":"ElementaryTypeName","src":"2963:5:12","typeDescriptions":{}}},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2316,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"2952:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2956:6:12","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1659,"src":"2952:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1402_memory_ptr_$bound_to$_t_struct$_buffer_$1402_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2324,"nodeType":"ExpressionStatement","src":"2952:24:12"}]},"id":2326,"implemented":true,"kind":"function","modifiers":[],"name":"encodeString","nameLocation":"2786:12:12","nodeType":"FunctionDefinition","parameters":{"id":2301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2298,"mutability":"mutable","name":"buf","nameLocation":"2829:3:12","nodeType":"VariableDeclaration","scope":2326,"src":"2799:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2297,"nodeType":"UserDefinedTypeName","pathNode":{"id":2296,"name":"BufferChainlink.buffer","nameLocations":["2799:15:12","2815:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"2799:22:12"},"referencedDeclaration":1402,"src":"2799:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2300,"mutability":"mutable","name":"value","nameLocation":"2848:5:12","nodeType":"VariableDeclaration","scope":2326,"src":"2834:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2299,"name":"string","nodeType":"ElementaryTypeName","src":"2834:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2798:56:12"},"returnParameters":{"id":2302,"nodeType":"ParameterList","parameters":[],"src":"2869:0:12"},"scope":2363,"src":"2777:204:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2337,"nodeType":"Block","src":"3054:60:12","statements":[{"expression":{"arguments":[{"id":2333,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"3087:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2334,"name":"MAJOR_TYPE_ARRAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1939,"src":"3092:16:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2332,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3060:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3060:49:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2336,"nodeType":"ExpressionStatement","src":"3060:49:12"}]},"id":2338,"implemented":true,"kind":"function","modifiers":[],"name":"startArray","nameLocation":"2994:10:12","nodeType":"FunctionDefinition","parameters":{"id":2330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2329,"mutability":"mutable","name":"buf","nameLocation":"3035:3:12","nodeType":"VariableDeclaration","scope":2338,"src":"3005:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2328,"nodeType":"UserDefinedTypeName","pathNode":{"id":2327,"name":"BufferChainlink.buffer","nameLocations":["3005:15:12","3021:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3005:22:12"},"referencedDeclaration":1402,"src":"3005:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3004:35:12"},"returnParameters":{"id":2331,"nodeType":"ParameterList","parameters":[],"src":"3054:0:12"},"scope":2363,"src":"2985:129:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2349,"nodeType":"Block","src":"3185:58:12","statements":[{"expression":{"arguments":[{"id":2345,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"3218:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2346,"name":"MAJOR_TYPE_MAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"3223:14:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2344,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3191:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3191:47:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2348,"nodeType":"ExpressionStatement","src":"3191:47:12"}]},"id":2350,"implemented":true,"kind":"function","modifiers":[],"name":"startMap","nameLocation":"3127:8:12","nodeType":"FunctionDefinition","parameters":{"id":2342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2341,"mutability":"mutable","name":"buf","nameLocation":"3166:3:12","nodeType":"VariableDeclaration","scope":2350,"src":"3136:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2340,"nodeType":"UserDefinedTypeName","pathNode":{"id":2339,"name":"BufferChainlink.buffer","nameLocations":["3136:15:12","3152:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3136:22:12"},"referencedDeclaration":1402,"src":"3136:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3135:35:12"},"returnParameters":{"id":2343,"nodeType":"ParameterList","parameters":[],"src":"3185:0:12"},"scope":2363,"src":"3118:125:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2361,"nodeType":"Block","src":"3317:67:12","statements":[{"expression":{"arguments":[{"id":2357,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"3350:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2358,"name":"MAJOR_TYPE_CONTENT_FREE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1948,"src":"3355:23:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2356,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3323:26:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1402_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:56:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2360,"nodeType":"ExpressionStatement","src":"3323:56:12"}]},"id":2362,"implemented":true,"kind":"function","modifiers":[],"name":"endSequence","nameLocation":"3256:11:12","nodeType":"FunctionDefinition","parameters":{"id":2354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2353,"mutability":"mutable","name":"buf","nameLocation":"3298:3:12","nodeType":"VariableDeclaration","scope":2362,"src":"3268:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2352,"nodeType":"UserDefinedTypeName","pathNode":{"id":2351,"name":"BufferChainlink.buffer","nameLocations":["3268:15:12","3284:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"3268:22:12"},"referencedDeclaration":1402,"src":"3268:22:12","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1402_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3267:35:12"},"returnParameters":{"id":2355,"nodeType":"ParameterList","parameters":[],"src":"3317:0:12"},"scope":2363,"src":"3247:137:12","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2364,"src":"115:3271:12","usedErrors":[]}],"src":"32:3355:12"},"id":12},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","exportedSymbols":{"ENSResolver":[2373]},"id":2374,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2365,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:13"},{"abstract":true,"baseContracts":[],"canonicalName":"ENSResolver","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":2373,"linearizedBaseContracts":[2373],"name":"ENSResolver","nameLocation":"75:11:13","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3b3b57de","id":2372,"implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"100:4:13","nodeType":"FunctionDefinition","parameters":{"id":2368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2367,"mutability":"mutable","name":"node","nameLocation":"113:4:13","nodeType":"VariableDeclaration","scope":2372,"src":"105:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"104:14:13"},"returnParameters":{"id":2371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2372,"src":"148:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2369,"name":"address","nodeType":"ElementaryTypeName","src":"148:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"147:9:13"},"scope":2373,"src":"91:66:13","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2374,"src":"57:102:13","usedErrors":[]}],"src":"32:128:13"},"id":13},"contracts/AdmodConsumer.sol":{"ast":{"absolutePath":"contracts/AdmodConsumer.sol","exportedSymbols":{"AdmodConsumer":[2531],"BufferChainlink":[1916],"CBORChainlink":[2363],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[1076],"ConfirmedOwner":[881],"ConfirmedOwnerWithProposal":[1043],"ENSInterface":[1156],"ENSResolver_Chainlink":[2373],"LinkTokenInterface":[1251],"OperatorInterface":[1331],"OracleInterface":[1370],"OwnableInterface":[1386],"PointerInterface":[1394]},"id":2532,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2375,"literals":["solidity","0.8",".17"],"nodeType":"PragmaDirective","src":"32:23:14"},{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","file":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","id":2376,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2532,"sourceUnit":862,"src":"57:59:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","file":"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol","id":2377,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2532,"sourceUnit":882,"src":"117:58:14","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2378,"name":"ChainlinkClient","nameLocations":["203:15:14"],"nodeType":"IdentifierPath","referencedDeclaration":861,"src":"203:15:14"},"id":2379,"nodeType":"InheritanceSpecifier","src":"203:15:14"},{"baseName":{"id":2380,"name":"ConfirmedOwner","nameLocations":["220:14:14"],"nodeType":"IdentifierPath","referencedDeclaration":881,"src":"220:14:14"},"id":2381,"nodeType":"InheritanceSpecifier","src":"220:14:14"}],"canonicalName":"AdmodConsumer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":2531,"linearizedBaseContracts":[2531,881,1043,1386,861],"name":"AdmodConsumer","nameLocation":"186:13:14","nodeType":"ContractDefinition","nodes":[{"global":false,"id":2385,"libraryName":{"id":2382,"name":"Chainlink","nameLocations":["247:9:14"],"nodeType":"IdentifierPath","referencedDeclaration":268,"src":"247:9:14"},"nodeType":"UsingForDirective","src":"241:38:14","typeName":{"id":2384,"nodeType":"UserDefinedTypeName","pathNode":{"id":2383,"name":"Chainlink.Request","nameLocations":["261:9:14","271:7:14"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"261:17:14"},"referencedDeclaration":25,"src":"261:17:14","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"constant":false,"functionSelector":"df78abe6","id":2387,"mutability":"mutable","name":"earning","nameLocation":"339:7:14","nodeType":"VariableDeclaration","scope":2531,"src":"324:22:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2386,"name":"uint256","nodeType":"ElementaryTypeName","src":"324:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"id":2389,"mutability":"mutable","name":"jobId","nameLocation":"369:5:14","nodeType":"VariableDeclaration","scope":2531,"src":"353:21:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"353:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":2391,"mutability":"mutable","name":"fee","nameLocation":"396:3:14","nodeType":"VariableDeclaration","scope":2531,"src":"380:19:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2390,"name":"uint256","nodeType":"ElementaryTypeName","src":"380:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"documentation":{"id":2392,"nodeType":"StructuredDocumentation","src":"406:207:14","text":" @notice\n @beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it\n In this 0xSplits contract will contain the list of charity organizations' addresses"},"functionSelector":"38af3eed","id":2394,"mutability":"mutable","name":"beneficiary","nameLocation":"633:11:14","nodeType":"VariableDeclaration","scope":2531,"src":"618:26:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2393,"name":"address","nodeType":"ElementaryTypeName","src":"618:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"eventSelector":"9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0","id":2400,"name":"RequestEarning","nameLocation":"657:14:14","nodeType":"EventDefinition","parameters":{"id":2399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2396,"indexed":true,"mutability":"mutable","name":"requestId","nameLocation":"688:9:14","nodeType":"VariableDeclaration","scope":2400,"src":"672:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"672:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2398,"indexed":false,"mutability":"mutable","name":"earning","nameLocation":"707:7:14","nodeType":"VariableDeclaration","scope":2400,"src":"699:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2397,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"671:44:14"},"src":"651:65:14"},{"body":{"id":2436,"nodeType":"Block","src":"1083:326:14","statements":[{"expression":{"arguments":[{"hexValue":"307833323643393737453665666338344535313262423943333066373645333063313630654430364642","id":2412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x326C977E6efc84E512bB9C30f76E30c160eD06FB"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2411,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"1093:17:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1093:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2414,"nodeType":"ExpressionStatement","src":"1093:61:14"},{"expression":{"arguments":[{"hexValue":"307861413337343733633864373846306631433836633964386145453533453842383936624342344435","id":2416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1183:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2415,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"1164:18:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1164:62:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2418,"nodeType":"ExpressionStatement","src":"1164:62:14"},{"expression":{"id":2421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2419,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2389,"src":"1236:5:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"6231643432636435346133613432303062316637323561363865343838383838","id":2420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1244:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1279806ce6db11c89121bbea4c15608b4b52482ad47bd18e6ea9ce5893a70f51","typeString":"literal_string \"b1d42cd54a3a4200b1f725a68e488888\""},"value":"b1d42cd54a3a4200b1f725a68e488888"},"src":"1236:42:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2422,"nodeType":"ExpressionStatement","src":"1236:42:14"},{"expression":{"id":2430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2423,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2391,"src":"1288:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1295:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2425,"name":"LINK_DIVISIBILITY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"1299:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1295:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2427,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1294:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":2428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1320:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1294:28:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1288:34:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2431,"nodeType":"ExpressionStatement","src":"1288:34:14"},{"expression":{"id":2434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2432,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2394,"src":"1376:11:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2433,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"1390:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1376:26:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2435,"nodeType":"ExpressionStatement","src":"1376:26:14"}]},"documentation":{"id":2401,"nodeType":"StructuredDocumentation","src":"722:283:14","text":" @notice Initialize the link token and target oracle\n Mumbai Testnet details:\n Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB\n Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 \n jobId: b1d42cd54a3a4200b1f725a68e488888"},"id":2437,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":2408,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"1075:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2409,"kind":"baseConstructorSpecifier","modifierName":{"id":2407,"name":"ConfirmedOwner","nameLocations":["1060:14:14"],"nodeType":"IdentifierPath","referencedDeclaration":881,"src":"1060:14:14"},"nodeType":"ModifierInvocation","src":"1060:22:14"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2403,"mutability":"mutable","name":"_owner","nameLocation":"1030:6:14","nodeType":"VariableDeclaration","scope":2437,"src":"1022:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2402,"name":"address","nodeType":"ElementaryTypeName","src":"1022:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2405,"mutability":"mutable","name":"_beneficiary","nameLocation":"1046:12:14","nodeType":"VariableDeclaration","scope":2437,"src":"1038:20:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2404,"name":"address","nodeType":"ElementaryTypeName","src":"1038:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1021:38:14"},"returnParameters":{"id":2410,"nodeType":"ParameterList","parameters":[],"src":"1083:0:14"},"scope":2531,"src":"1010:399:14","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2478,"nodeType":"Block","src":"1661:506:14","statements":[{"assignments":[2447],"declarations":[{"constant":false,"id":2447,"mutability":"mutable","name":"req","nameLocation":"1696:3:14","nodeType":"VariableDeclaration","scope":2478,"src":"1671:28:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":2446,"nodeType":"UserDefinedTypeName","pathNode":{"id":2445,"name":"Chainlink.Request","nameLocations":["1671:9:14","1681:7:14"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1671:17:14"},"referencedDeclaration":25,"src":"1671:17:14","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":2458,"initialValue":{"arguments":[{"id":2449,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2389,"src":"1737:5:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2452,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1764:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$2531","typeString":"contract AdmodConsumer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AdmodConsumer_$2531","typeString":"contract AdmodConsumer"}],"id":2451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1756:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2450,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:14","typeDescriptions":{}}},"id":2453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":2454,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1783:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$2531","typeString":"contract AdmodConsumer"}},"id":2455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1788:7:14","memberName":"fulfill","nodeType":"MemberAccess","referencedDeclaration":2500,"src":"1783:12:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":2456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1796:8:14","memberName":"selector","nodeType":"MemberAccess","src":"1783:21:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":2448,"name":"buildChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"1702:21:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":2457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1702:112:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"nodeType":"VariableDeclarationStatement","src":"1671:143:14"},{"expression":{"arguments":[{"hexValue":"676574","id":2462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1899:5:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},"value":"get"},{"hexValue":"68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274","id":2463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1918:78:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2951f46cc986317dd19e0aff69f07b81260ff04938edb6663dfc83d944c37d93","typeString":"literal_string \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\""},"value":"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6817c00f03de8b5bd58d2016b59d251c13056b989171c5852949903bc043bc27","typeString":"literal_string \"get\""},{"typeIdentifier":"t_stringliteral_2951f46cc986317dd19e0aff69f07b81260ff04938edb6663dfc83d944c37d93","typeString":"literal_string \"https://testapi.io/api/Hayden/v1/accounts/pub-9988776655443322/networkReport\""}],"expression":{"id":2459,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2447,"src":"1878:3:14","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":2461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1882:3:14","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"1878:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":2464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1878:128:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2465,"nodeType":"ExpressionStatement","src":"1878:128:14"},{"expression":{"arguments":[{"hexValue":"70617468","id":2469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2025:6:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},"value":"path"},{"hexValue":"726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565","id":2470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2033:49:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dc5377b9552c5187c2f765c9772a9f30d6c0e04ce19232cb7bc0187b9472339","typeString":"literal_string \"row,metricValues,ESTIMATED_EARNINGS,microsValue\""},"value":"row,metricValues,ESTIMATED_EARNINGS,microsValue"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46f9db2921f88204395f1f47d741736216b2218e88e47f50e1f1b56261f0d0cd","typeString":"literal_string \"path\""},{"typeIdentifier":"t_stringliteral_6dc5377b9552c5187c2f765c9772a9f30d6c0e04ce19232cb7bc0187b9472339","typeString":"literal_string \"row,metricValues,ESTIMATED_EARNINGS,microsValue\""}],"expression":{"id":2466,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2447,"src":"2017:3:14","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":2468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2021:3:14","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2017:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":2471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2017:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2472,"nodeType":"ExpressionStatement","src":"2017:66:14"},{"expression":{"arguments":[{"id":2474,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2447,"src":"2151:3:14","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":2475,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2391,"src":"2156:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2473,"name":"sendChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"2130:20:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":2476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2130:30:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2442,"id":2477,"nodeType":"Return","src":"2123:37:14"}]},"documentation":{"id":2438,"nodeType":"StructuredDocumentation","src":"1416:175:14","text":" Create a Chainlink request to retrieve API response, find the target\n data, then multiply by 1000000000000000000 (to remove decimal places from data)."},"functionSelector":"50ed6a95","id":2479,"implemented":true,"kind":"function","modifiers":[],"name":"requestWeekEarning","nameLocation":"1605:18:14","nodeType":"FunctionDefinition","parameters":{"id":2439,"nodeType":"ParameterList","parameters":[],"src":"1623:2:14"},"returnParameters":{"id":2442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2441,"mutability":"mutable","name":"requestId","nameLocation":"1650:9:14","nodeType":"VariableDeclaration","scope":2479,"src":"1642:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1642:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1641:19:14"},"scope":2531,"src":"1596:571:14","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2499,"nodeType":"Block","src":"2371:208:14","statements":[{"eventCall":{"arguments":[{"id":2491,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"2401:10:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2492,"name":"_earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2484,"src":"2413:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2490,"name":"RequestEarning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2400,"src":"2386:14:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":2493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2386:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2494,"nodeType":"EmitStatement","src":"2381:41:14"},{"documentation":"@notice earning will be a total of earning this week subtract for Transak transaction fee","expression":{"id":2497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2495,"name":"earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2387,"src":"2554:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2496,"name":"_earning","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2484,"src":"2564:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2554:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2498,"nodeType":"ExpressionStatement","src":"2554:18:14"}]},"documentation":{"id":2480,"nodeType":"StructuredDocumentation","src":"2173:70:14","text":"@notice\n Receive the response in the form of uint256"},"functionSelector":"4357855e","id":2500,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2487,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"2359:10:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2488,"kind":"modifierInvocation","modifierName":{"id":2486,"name":"recordChainlinkFulfillment","nameLocations":["2332:26:14"],"nodeType":"IdentifierPath","referencedDeclaration":841,"src":"2332:26:14"},"nodeType":"ModifierInvocation","src":"2332:38:14"}],"name":"fulfill","nameLocation":"2257:7:14","nodeType":"FunctionDefinition","parameters":{"id":2485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2482,"mutability":"mutable","name":"_requestId","nameLocation":"2282:10:14","nodeType":"VariableDeclaration","scope":2500,"src":"2274:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2274:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2484,"mutability":"mutable","name":"_earning","nameLocation":"2310:8:14","nodeType":"VariableDeclaration","scope":2500,"src":"2302:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2483,"name":"uint256","nodeType":"ElementaryTypeName","src":"2302:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2264:60:14"},"returnParameters":{"id":2489,"nodeType":"ParameterList","parameters":[],"src":"2371:0:14"},"scope":2531,"src":"2248:331:14","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2529,"nodeType":"Block","src":"2771:218:14","statements":[{"assignments":[2508],"declarations":[{"constant":false,"id":2508,"mutability":"mutable","name":"link","nameLocation":"2800:4:14","nodeType":"VariableDeclaration","scope":2529,"src":"2781:23:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"},"typeName":{"id":2507,"nodeType":"UserDefinedTypeName","pathNode":{"id":2506,"name":"LinkTokenInterface","nameLocations":["2781:18:14"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"2781:18:14"},"referencedDeclaration":1251,"src":"2781:18:14","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"visibility":"internal"}],"id":2513,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2510,"name":"chainlinkTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"2826:21:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2826:23:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2509,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"2807:18:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1251_$","typeString":"type(contract LinkTokenInterface)"}},"id":2512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2807:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"nodeType":"VariableDeclarationStatement","src":"2781:69:14"},{"expression":{"arguments":[{"arguments":[{"id":2517,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2394,"src":"2895:11:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":2522,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2931:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_AdmodConsumer_$2531","typeString":"contract AdmodConsumer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AdmodConsumer_$2531","typeString":"contract AdmodConsumer"}],"id":2521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2923:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2520,"name":"address","nodeType":"ElementaryTypeName","src":"2923:7:14","typeDescriptions":{}}},"id":2523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2518,"name":"link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"2908:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":2519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2913:9:14","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1183,"src":"2908:14:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2908:29:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2515,"name":"link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"2881:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1251","typeString":"contract LinkTokenInterface"}},"id":2516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2886:8:14","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":1228,"src":"2881:13:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2881:57:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e61626c6520746f207472616e73666572","id":2526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2952:20:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1","typeString":"literal_string \"Unable to transfer\""},"value":"Unable to transfer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1","typeString":"literal_string \"Unable to transfer\""}],"id":2514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2860:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2860:122:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2528,"nodeType":"ExpressionStatement","src":"2860:122:14"}]},"documentation":{"id":2501,"nodeType":"StructuredDocumentation","src":"2585:139:14","text":"@notice\n Allow withdraw of Link tokens from the contract\n LINK will always be sent to beneficiary 0xSplits contract"},"functionSelector":"8dc654a2","id":2530,"implemented":true,"kind":"function","modifiers":[{"id":2504,"kind":"modifierInvocation","modifierName":{"id":2503,"name":"onlyOwner","nameLocations":["2761:9:14"],"nodeType":"IdentifierPath","referencedDeclaration":1042,"src":"2761:9:14"},"nodeType":"ModifierInvocation","src":"2761:9:14"}],"name":"withdrawLink","nameLocation":"2739:12:14","nodeType":"FunctionDefinition","parameters":{"id":2502,"nodeType":"ParameterList","parameters":[],"src":"2751:2:14"},"returnParameters":{"id":2505,"nodeType":"ParameterList","parameters":[],"src":"2771:0:14"},"scope":2531,"src":"2730:259:14","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":2532,"src":"177:2814:14","usedErrors":[]}],"src":"32:2959:14"},"id":14}},"contracts":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"Chainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220105cba522c50bcfa40d79857ca1cf61e43326a5bb6975a5f5eafaf335714c55f64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 LT 0x5C 0xBA MSTORE 0x2C POP 0xBC STATICCALL BLOCKHASH 0xD7 SWAP9 JUMPI 0xCA SHR 0xF6 0x1E NUMBER ORIGIN PUSH11 0x5BB6975A5F5EAFAF335714 0xC5 0x5F PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;293:3494:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220105cba522c50bcfa40d79857ca1cf61e43326a5bb6975a5f5eafaf335714c55f64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT 0x5C 0xBA MSTORE 0x2C POP 0xBC STATICCALL BLOCKHASH 0xD7 SWAP9 JUMPI 0xCA SHR 0xF6 0x1E NUMBER ORIGIN PUSH11 0x5BB6975A5F5EAFAF335714 0xC5 0x5F PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Uses imported CBOR library for encoding to buffer\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Library for common Chainlink functions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":\"Chainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ChainlinkClient":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ChainlinkClient contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contract writers can inherit this contract in order to create requests for the Chainlink network\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":\"ChainlinkClient\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol":{"ConfirmedOwner":{"abi":[{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_880":{"entryPoint":null,"id":880,"parameterSlots":1,"returnSlots":0},"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":197,"id":1021,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":366,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1011:15","statements":[{"nodeType":"YulBlock","src":"6:3:15","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:15","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:15"},"nodeType":"YulFunctionCall","src":"143:12:15"},"nodeType":"YulExpressionStatement","src":"143:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:15"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:15"},"nodeType":"YulFunctionCall","src":"112:23:15"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:15","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:15"},"nodeType":"YulFunctionCall","src":"108:32:15"},"nodeType":"YulIf","src":"105:52:15"},{"nodeType":"YulVariableDeclaration","src":"166:29:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:15"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:15"},"nodeType":"YulFunctionCall","src":"179:16:15"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:15","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:15"},"nodeType":"YulFunctionCall","src":"260:12:15"},"nodeType":"YulExpressionStatement","src":"260:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:15"},"nodeType":"YulFunctionCall","src":"239:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:15"},"nodeType":"YulFunctionCall","src":"235:19:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:15"},"nodeType":"YulFunctionCall","src":"224:31:15"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:15"},"nodeType":"YulFunctionCall","src":"214:42:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:15"},"nodeType":"YulFunctionCall","src":"207:50:15"},"nodeType":"YulIf","src":"204:70:15"},{"nodeType":"YulAssignment","src":"283:15:15","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:15"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:15"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:15","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:15","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:15","type":""}],"src":"14:290:15"},{"body":{"nodeType":"YulBlock","src":"483:174:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"500:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"511:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:15"},"nodeType":"YulFunctionCall","src":"493:21:15"},"nodeType":"YulExpressionStatement","src":"493:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"534:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"545:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"530:3:15"},"nodeType":"YulFunctionCall","src":"530:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"550:2:15","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"523:6:15"},"nodeType":"YulFunctionCall","src":"523:30:15"},"nodeType":"YulExpressionStatement","src":"523:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"573:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"584:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:15"},"nodeType":"YulFunctionCall","src":"569:18:15"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"589:26:15","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"562:6:15"},"nodeType":"YulFunctionCall","src":"562:54:15"},"nodeType":"YulExpressionStatement","src":"562:54:15"},{"nodeType":"YulAssignment","src":"625:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"637:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"648:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"633:3:15"},"nodeType":"YulFunctionCall","src":"633:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"625:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"460:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"474:4:15","type":""}],"src":"309:348:15"},{"body":{"nodeType":"YulBlock","src":"836:173:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"853:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"864:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"846:6:15"},"nodeType":"YulFunctionCall","src":"846:21:15"},"nodeType":"YulExpressionStatement","src":"846:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"887:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"898:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"883:3:15"},"nodeType":"YulFunctionCall","src":"883:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"903:2:15","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"876:6:15"},"nodeType":"YulFunctionCall","src":"876:30:15"},"nodeType":"YulExpressionStatement","src":"876:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"926:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"937:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"922:3:15"},"nodeType":"YulFunctionCall","src":"922:18:15"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"942:25:15","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"915:6:15"},"nodeType":"YulFunctionCall","src":"915:53:15"},"nodeType":"YulExpressionStatement","src":"915:53:15"},{"nodeType":"YulAssignment","src":"977:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"989:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1000:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"985:3:15"},"nodeType":"YulFunctionCall","src":"985:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"977:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"813:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"827:4:15","type":""}],"src":"662:347:15"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":15,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161045638038061045683398101604081905261002f9161016e565b8060006001600160a01b03821661008d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03848116919091179091558116156100bd576100bd816100c5565b50505061019e565b336001600160a01b0382160361011d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610084565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561018057600080fd5b81516001600160a01b038116811461019757600080fd5b9392505050565b6102a9806101ad6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea26469706673582212201739d59a9a74282c0b5b391ffbf3f28ae1e523716204ee3945844347ccadf1d664736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x456 CODESIZE SUB DUP1 PUSH2 0x456 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x16E JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH2 0xBD JUMPI PUSH2 0xBD DUP2 PUSH2 0xC5 JUMP JUMPDEST POP POP POP PUSH2 0x19E JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x11D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x84 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x197 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2A9 DUP1 PUSH2 0x1AD 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR CODECOPY 0xD5 SWAP11 SWAP11 PUSH21 0x282C0B5B391FFBF3F28AE1E523716204EE39458443 SELFBALANCE 0xCC 0xAD CALL 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"212:141:2:-:0;;;270:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;327:8;345:1;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;511:2:15;544:59:3;;;493:21:15;550:2;530:18;;;523:30;589:26;569:18;;;562:54;633:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;270:81:2;212:141;;1497:188:3;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;864:2:15;1551:52:3;;;846:21:15;903:2;883:18;;;876:30;942:25;922:18;;;915:53;985:18;;1551:52:3;662:347:15;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;14:290:15:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:15;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:15:o;662:347::-;212:141:2;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_transferOwnership_1021":{"entryPoint":410,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":325,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":130,"id":987,"parameterSlots":0,"returnSlots":0},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@transferOwnership_951":{"entryPoint":305,"id":951,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":579,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1564:15","statements":[{"nodeType":"YulBlock","src":"6:3:15","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:102:15","statements":[{"nodeType":"YulAssignment","src":"125:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:15"},"nodeType":"YulFunctionCall","src":"133:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:15"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:15"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"182:6:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"198:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"203:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"194:3:15"},"nodeType":"YulFunctionCall","src":"194:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"207:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"190:3:15"},"nodeType":"YulFunctionCall","src":"190:19:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"178:3:15"},"nodeType":"YulFunctionCall","src":"178:32:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:15"},"nodeType":"YulFunctionCall","src":"160:51:15"},"nodeType":"YulExpressionStatement","src":"160:51:15"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:15","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:15","type":""}],"src":"14:203:15"},{"body":{"nodeType":"YulBlock","src":"292:216:15","statements":[{"body":{"nodeType":"YulBlock","src":"338:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"347:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"350:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"340:6:15"},"nodeType":"YulFunctionCall","src":"340:12:15"},"nodeType":"YulExpressionStatement","src":"340:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"313:7:15"},{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"309:3:15"},"nodeType":"YulFunctionCall","src":"309:23:15"},{"kind":"number","nodeType":"YulLiteral","src":"334:2:15","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"305:3:15"},"nodeType":"YulFunctionCall","src":"305:32:15"},"nodeType":"YulIf","src":"302:52:15"},{"nodeType":"YulVariableDeclaration","src":"363:36:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"389:9:15"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"376:12:15"},"nodeType":"YulFunctionCall","src":"376:23:15"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"367:5:15","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"471:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"474:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"464:6:15"},"nodeType":"YulFunctionCall","src":"464:12:15"},"nodeType":"YulExpressionStatement","src":"464:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"421:5:15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"432:5:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"447:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"452:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"443:3:15"},"nodeType":"YulFunctionCall","src":"443:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"456:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"439:3:15"},"nodeType":"YulFunctionCall","src":"439:19:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"428:3:15"},"nodeType":"YulFunctionCall","src":"428:31:15"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"418:2:15"},"nodeType":"YulFunctionCall","src":"418:42:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"411:6:15"},"nodeType":"YulFunctionCall","src":"411:50:15"},"nodeType":"YulIf","src":"408:70:15"},{"nodeType":"YulAssignment","src":"487:15:15","value":{"name":"value","nodeType":"YulIdentifier","src":"497:5:15"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"487:6:15"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"258:9:15","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"269:7:15","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"281:6:15","type":""}],"src":"222:286:15"},{"body":{"nodeType":"YulBlock","src":"687:172:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"704:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"715:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"697:6:15"},"nodeType":"YulFunctionCall","src":"697:21:15"},"nodeType":"YulExpressionStatement","src":"697:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"738:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"749:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:15"},"nodeType":"YulFunctionCall","src":"734:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"754:2:15","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:15"},"nodeType":"YulFunctionCall","src":"727:30:15"},"nodeType":"YulExpressionStatement","src":"727:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"777:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"788:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"773:3:15"},"nodeType":"YulFunctionCall","src":"773:18:15"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"793:24:15","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"766:6:15"},"nodeType":"YulFunctionCall","src":"766:52:15"},"nodeType":"YulExpressionStatement","src":"766:52:15"},{"nodeType":"YulAssignment","src":"827:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"839:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"850:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"835:3:15"},"nodeType":"YulFunctionCall","src":"835:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"827:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"664:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"678:4:15","type":""}],"src":"513:346:15"},{"body":{"nodeType":"YulBlock","src":"1038:172:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1066:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1048:6:15"},"nodeType":"YulFunctionCall","src":"1048:21:15"},"nodeType":"YulExpressionStatement","src":"1048:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1089:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1085:3:15"},"nodeType":"YulFunctionCall","src":"1085:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"1105:2:15","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1078:6:15"},"nodeType":"YulFunctionCall","src":"1078:30:15"},"nodeType":"YulExpressionStatement","src":"1078:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1139:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1124:3:15"},"nodeType":"YulFunctionCall","src":"1124:18:15"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1144:24:15","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1117:6:15"},"nodeType":"YulFunctionCall","src":"1117:52:15"},"nodeType":"YulExpressionStatement","src":"1117:52:15"},{"nodeType":"YulAssignment","src":"1178:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1190:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1201:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1186:3:15"},"nodeType":"YulFunctionCall","src":"1186:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1178:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1015:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1029:4:15","type":""}],"src":"864:346:15"},{"body":{"nodeType":"YulBlock","src":"1389:173:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1417:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1399:6:15"},"nodeType":"YulFunctionCall","src":"1399:21:15"},"nodeType":"YulExpressionStatement","src":"1399:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1440:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1451:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:15"},"nodeType":"YulFunctionCall","src":"1436:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"1456:2:15","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1429:6:15"},"nodeType":"YulFunctionCall","src":"1429:30:15"},"nodeType":"YulExpressionStatement","src":"1429:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1479:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1490:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:15"},"nodeType":"YulFunctionCall","src":"1475:18:15"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1495:25:15","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1468:6:15"},"nodeType":"YulFunctionCall","src":"1468:53:15"},"nodeType":"YulExpressionStatement","src":"1468:53:15"},{"nodeType":"YulAssignment","src":"1530:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1542:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1553:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1538:3:15"},"nodeType":"YulFunctionCall","src":"1538:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1530:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1366:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1380:4:15","type":""}],"src":"1215:347:15"}]},"contents":"{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":15,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea26469706673582212201739d59a9a74282c0b5b391ffbf3f28ae1e523716204ee3945844347ccadf1d664736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR CODECOPY 0xD5 SWAP11 SWAP11 PUSH21 0x282C0B5B391FFBF3F28AE1E523716204EE39458443 SELFBALANCE 0xCC 0xAD CALL 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"212:141:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:265:3;;;:::i;:::-;;1332:81;1379:7;1401;1332:81;;;-1:-1:-1;;;;;1401:7:3;;;160:51:15;;1332:81:3;;;;;148:2:15;1332:81:3;;;826:98;;;;;;:::i;:::-;;:::i;1016:265::-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;715:2:15;1067:63:3;;;697:21:15;754:2;734:18;;;727:30;-1:-1:-1;;;773:18:15;;;766:52;835:18;;1067:63:3;;;;;;;;;1137:16;1156:7;;1179:10;-1:-1:-1;;;;;;1169:20:3;;;;;;;-1:-1:-1;1195:27:3;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;;1156:7;;1234:42;;;1061:220;1016:265::o;826:98::-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;:::-;826:98:::0;:::o;1730:111::-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;1066:2:15;1780:56:3;;;1048:21:15;1105:2;1085:18;;;1078:30;-1:-1:-1;;;1124:18:15;;;1117:52;1186:18;;1780:56:3;864:346:15;1780:56:3;1730:111::o;1497:188::-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1417:2:15;1551:52:3;;;1399:21:15;1456:2;1436:18;;;1429:30;1495:25;1475:18;;;1468:53;1538:18;;1551:52:3;1215:347:15;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;222:286:15:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:15;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:15:o"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ConfirmedOwner contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"}},\"notice\":\"A contract with helpers for basic contract ownership.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":\"ConfirmedOwner\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":{\"keccak256\":\"0x99d0b0786fe368970009c703f2249bfbc56340ddf1a28b60d2915bb58c34cd72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0371c1af45db651823b9a3d5af761b08243c78f105166342eee28de356c8dd\",\"dweb:/ipfs/QmPnC9qNDKwJFd5unwLb9pxjrutoe8MWjm5EXHTxq2kJ4x\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol":{"ConfirmedOwnerWithProposal":{"abi":[{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":193,"id":1021,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":362,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":390,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1196:15","statements":[{"nodeType":"YulBlock","src":"6:3:15","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:15","statements":[{"nodeType":"YulAssignment","src":"84:22:15","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:15"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:15"},"nodeType":"YulFunctionCall","src":"93:13:15"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:15"}]},{"body":{"nodeType":"YulBlock","src":"169:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:15"},"nodeType":"YulFunctionCall","src":"171:12:15"},"nodeType":"YulExpressionStatement","src":"171:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:15"},"nodeType":"YulFunctionCall","src":"150:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:15"},"nodeType":"YulFunctionCall","src":"146:19:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:15"},"nodeType":"YulFunctionCall","src":"135:31:15"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:15"},"nodeType":"YulFunctionCall","src":"125:42:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:15"},"nodeType":"YulFunctionCall","src":"118:50:15"},"nodeType":"YulIf","src":"115:70:15"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:15","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:15","type":""}],"src":"14:177:15"},{"body":{"nodeType":"YulBlock","src":"294:195:15","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:15"},"nodeType":"YulFunctionCall","src":"342:12:15"},"nodeType":"YulExpressionStatement","src":"342:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:15"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:15"},"nodeType":"YulFunctionCall","src":"311:23:15"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:15","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:15"},"nodeType":"YulFunctionCall","src":"307:32:15"},"nodeType":"YulIf","src":"304:52:15"},{"nodeType":"YulAssignment","src":"365:50:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:15"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:15"},"nodeType":"YulFunctionCall","src":"375:40:15"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:15"}]},{"nodeType":"YulAssignment","src":"424:59:15","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:15"},"nodeType":"YulFunctionCall","src":"464:18:15"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:15"},"nodeType":"YulFunctionCall","src":"434:49:15"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:15"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:15","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:15","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:15","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:15","type":""}],"src":"196:293:15"},{"body":{"nodeType":"YulBlock","src":"668:174:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:15"},"nodeType":"YulFunctionCall","src":"678:21:15"},"nodeType":"YulExpressionStatement","src":"678:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:15"},"nodeType":"YulFunctionCall","src":"715:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:15","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:15"},"nodeType":"YulFunctionCall","src":"708:30:15"},"nodeType":"YulExpressionStatement","src":"708:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:15"},"nodeType":"YulFunctionCall","src":"754:18:15"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"774:26:15","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:15"},"nodeType":"YulFunctionCall","src":"747:54:15"},"nodeType":"YulExpressionStatement","src":"747:54:15"},{"nodeType":"YulAssignment","src":"810:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"822:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"833:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"818:3:15"},"nodeType":"YulFunctionCall","src":"818:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"810:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:15","type":""}],"src":"494:348:15"},{"body":{"nodeType":"YulBlock","src":"1021:173:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1038:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1031:6:15"},"nodeType":"YulFunctionCall","src":"1031:21:15"},"nodeType":"YulExpressionStatement","src":"1031:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1072:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1083:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1068:3:15"},"nodeType":"YulFunctionCall","src":"1068:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"1088:2:15","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1061:6:15"},"nodeType":"YulFunctionCall","src":"1061:30:15"},"nodeType":"YulExpressionStatement","src":"1061:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1111:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1122:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1107:3:15"},"nodeType":"YulFunctionCall","src":"1107:18:15"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1127:25:15","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1100:6:15"},"nodeType":"YulFunctionCall","src":"1100:53:15"},"nodeType":"YulExpressionStatement","src":"1100:53:15"},{"nodeType":"YulAssignment","src":"1162:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1174:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1185:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1170:3:15"},"nodeType":"YulFunctionCall","src":"1170:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1162:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"998:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1012:4:15","type":""}],"src":"847:347:15"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":15,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161047138038061047183398101604081905261002f91610186565b6001600160a01b03821661008a5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03848116919091179091558116156100ba576100ba816100c1565b50506101b9565b336001600160a01b038216036101195760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610081565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b038116811461018157600080fd5b919050565b6000806040838503121561019957600080fd5b6101a28361016a565b91506101b06020840161016a565b90509250929050565b6102a9806101c86000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea2646970667358221220768354278908a9a8fa21a7093ee5414379b9ee80a33d9f06b906f6d52bff6b1c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x471 CODESIZE SUB DUP1 PUSH2 0x471 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x186 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH2 0xBA JUMPI PUSH2 0xBA DUP2 PUSH2 0xC1 JUMP JUMPDEST POP POP PUSH2 0x1B9 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x119 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x81 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x181 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A2 DUP4 PUSH2 0x16A JUMP JUMPDEST SWAP2 POP PUSH2 0x1B0 PUSH1 0x20 DUP5 ADD PUSH2 0x16A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A9 DUP1 PUSH2 0x1C8 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x8354278908A9A8FA21A7093EE5414379B9EE80A33D9F06 0xB9 MOD 0xF6 0xD5 0x2B SELFDESTRUCT PUSH12 0x1C64736F6C63430008110033 ","sourceMap":"213:1777:3:-:0;;;486:231;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;696:2:15;544:59:3;;;678:21:15;735:2;715:18;;;708:30;774:26;754:18;;;747:54;818:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;213:1777;;1497:188;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1049:2:15;1551:52:3;;;1031:21:15;1088:2;1068:18;;;1061:30;1127:25;1107:18;;;1100:53;1170:18;;1551:52:3;847:347:15;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;14:177:15:-;93:13;;-1:-1:-1;;;;;135:31:15;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;847:347::-;213:1777:3;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_transferOwnership_1021":{"entryPoint":410,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":325,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":130,"id":987,"parameterSlots":0,"returnSlots":0},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@transferOwnership_951":{"entryPoint":305,"id":951,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":579,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1564:15","statements":[{"nodeType":"YulBlock","src":"6:3:15","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:102:15","statements":[{"nodeType":"YulAssignment","src":"125:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:15"},"nodeType":"YulFunctionCall","src":"133:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:15"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:15"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"182:6:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"198:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"203:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"194:3:15"},"nodeType":"YulFunctionCall","src":"194:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"207:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"190:3:15"},"nodeType":"YulFunctionCall","src":"190:19:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"178:3:15"},"nodeType":"YulFunctionCall","src":"178:32:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:15"},"nodeType":"YulFunctionCall","src":"160:51:15"},"nodeType":"YulExpressionStatement","src":"160:51:15"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:15","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:15","type":""}],"src":"14:203:15"},{"body":{"nodeType":"YulBlock","src":"292:216:15","statements":[{"body":{"nodeType":"YulBlock","src":"338:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"347:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"350:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"340:6:15"},"nodeType":"YulFunctionCall","src":"340:12:15"},"nodeType":"YulExpressionStatement","src":"340:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"313:7:15"},{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"309:3:15"},"nodeType":"YulFunctionCall","src":"309:23:15"},{"kind":"number","nodeType":"YulLiteral","src":"334:2:15","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"305:3:15"},"nodeType":"YulFunctionCall","src":"305:32:15"},"nodeType":"YulIf","src":"302:52:15"},{"nodeType":"YulVariableDeclaration","src":"363:36:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"389:9:15"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"376:12:15"},"nodeType":"YulFunctionCall","src":"376:23:15"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"367:5:15","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"471:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"474:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"464:6:15"},"nodeType":"YulFunctionCall","src":"464:12:15"},"nodeType":"YulExpressionStatement","src":"464:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"421:5:15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"432:5:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"447:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"452:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"443:3:15"},"nodeType":"YulFunctionCall","src":"443:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"456:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"439:3:15"},"nodeType":"YulFunctionCall","src":"439:19:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"428:3:15"},"nodeType":"YulFunctionCall","src":"428:31:15"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"418:2:15"},"nodeType":"YulFunctionCall","src":"418:42:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"411:6:15"},"nodeType":"YulFunctionCall","src":"411:50:15"},"nodeType":"YulIf","src":"408:70:15"},{"nodeType":"YulAssignment","src":"487:15:15","value":{"name":"value","nodeType":"YulIdentifier","src":"497:5:15"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"487:6:15"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"258:9:15","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"269:7:15","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"281:6:15","type":""}],"src":"222:286:15"},{"body":{"nodeType":"YulBlock","src":"687:172:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"704:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"715:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"697:6:15"},"nodeType":"YulFunctionCall","src":"697:21:15"},"nodeType":"YulExpressionStatement","src":"697:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"738:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"749:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:15"},"nodeType":"YulFunctionCall","src":"734:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"754:2:15","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:15"},"nodeType":"YulFunctionCall","src":"727:30:15"},"nodeType":"YulExpressionStatement","src":"727:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"777:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"788:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"773:3:15"},"nodeType":"YulFunctionCall","src":"773:18:15"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"793:24:15","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"766:6:15"},"nodeType":"YulFunctionCall","src":"766:52:15"},"nodeType":"YulExpressionStatement","src":"766:52:15"},{"nodeType":"YulAssignment","src":"827:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"839:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"850:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"835:3:15"},"nodeType":"YulFunctionCall","src":"835:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"827:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"664:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"678:4:15","type":""}],"src":"513:346:15"},{"body":{"nodeType":"YulBlock","src":"1038:172:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1066:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1048:6:15"},"nodeType":"YulFunctionCall","src":"1048:21:15"},"nodeType":"YulExpressionStatement","src":"1048:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1089:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1085:3:15"},"nodeType":"YulFunctionCall","src":"1085:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"1105:2:15","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1078:6:15"},"nodeType":"YulFunctionCall","src":"1078:30:15"},"nodeType":"YulExpressionStatement","src":"1078:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1139:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1124:3:15"},"nodeType":"YulFunctionCall","src":"1124:18:15"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1144:24:15","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1117:6:15"},"nodeType":"YulFunctionCall","src":"1117:52:15"},"nodeType":"YulExpressionStatement","src":"1117:52:15"},{"nodeType":"YulAssignment","src":"1178:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1190:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1201:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1186:3:15"},"nodeType":"YulFunctionCall","src":"1186:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1178:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1015:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1029:4:15","type":""}],"src":"864:346:15"},{"body":{"nodeType":"YulBlock","src":"1389:173:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1417:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1399:6:15"},"nodeType":"YulFunctionCall","src":"1399:21:15"},"nodeType":"YulExpressionStatement","src":"1399:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1440:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1451:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:15"},"nodeType":"YulFunctionCall","src":"1436:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"1456:2:15","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1429:6:15"},"nodeType":"YulFunctionCall","src":"1429:30:15"},"nodeType":"YulExpressionStatement","src":"1429:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1479:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1490:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:15"},"nodeType":"YulFunctionCall","src":"1475:18:15"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1495:25:15","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1468:6:15"},"nodeType":"YulFunctionCall","src":"1468:53:15"},"nodeType":"YulExpressionStatement","src":"1468:53:15"},{"nodeType":"YulAssignment","src":"1530:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1542:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1553:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1538:3:15"},"nodeType":"YulFunctionCall","src":"1538:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1530:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1366:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1380:4:15","type":""}],"src":"1215:347:15"}]},"contents":"{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":15,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c806379ba5097146100465780638da5cb5b14610050578063f2fde38b1461006f575b600080fd5b61004e610082565b005b600054604080516001600160a01b039092168252519081900360200190f35b61004e61007d366004610243565b610131565b6001546001600160a01b031633146100da5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610139610145565b6101428161019a565b50565b6000546001600160a01b031633146101985760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b60448201526064016100d1565b565b336001600160a01b038216036101f25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100d1565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006020828403121561025557600080fd5b81356001600160a01b038116811461026c57600080fd5b939250505056fea2646970667358221220768354278908a9a8fa21a7093ee5414379b9ee80a33d9f06b906f6d52bff6b1c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x243 JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP4 AND DUP3 OR DUP5 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x139 PUSH2 0x145 JUMP JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x198 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP4 AND SWAP2 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x8354278908A9A8FA21A7093EE5414379B9EE80A33D9F06 0xB9 MOD 0xF6 0xD5 0x2B SELFDESTRUCT PUSH12 0x1C64736F6C63430008110033 ","sourceMap":"213:1777:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:265;;;:::i;:::-;;1332:81;1379:7;1401;1332:81;;;-1:-1:-1;;;;;1401:7:3;;;160:51:15;;1332:81:3;;;;;148:2:15;1332:81:3;;;826:98;;;;;;:::i;:::-;;:::i;1016:265::-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;715:2:15;1067:63:3;;;697:21:15;754:2;734:18;;;727:30;-1:-1:-1;;;773:18:15;;;766:52;835:18;;1067:63:3;;;;;;;;;1137:16;1156:7;;1179:10;-1:-1:-1;;;;;;1169:20:3;;;;;;;-1:-1:-1;1195:27:3;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;;1156:7;;1234:42;;;1061:220;1016:265::o;826:98::-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;:::-;826:98:::0;:::o;1730:111::-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;1066:2:15;1780:56:3;;;1048:21:15;1105:2;1085:18;;;1078:30;-1:-1:-1;;;1124:18:15;;;1117:52;1186:18;;1780:56:3;864:346:15;1780:56:3;1730:111::o;1497:188::-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1417:2:15;1551:52:3;;;1399:21:15;1456:2;1436:18;;;1429:30;1495:25;1475:18;;;1468:53;1538:18;;1551:52:3;1215:347:15;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;-1:-1:-1;1668:7:3;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;1641:39:3;1497:188;:::o;222:286:15:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:15;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:15:o"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ConfirmedOwner contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"}},\"notice\":\"A contract with helpers for basic contract ownership.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":\"ConfirmedOwnerWithProposal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ChainlinkRequestInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":\"ChainlinkRequestInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ENSInterface":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"label","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner(bytes32)":"02571be3","resolver(bytes32)":"0178b8bf","setOwner(bytes32,address)":"5b0fc9c3","setResolver(bytes32,address)":"1896f70a","setSubnodeOwner(bytes32,bytes32,address)":"06ab5923","setTTL(bytes32,uint64)":"14ab9038","ttl(bytes32)":"16a25cbd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":\"ENSInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"LinkTokenInterface":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"decimalPlaces","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"increaseApproval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"tokenName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"tokenSymbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"totalTokensIssued","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseApproval(address,uint256)":"66188463","increaseApproval(address,uint256)":"d73dd623","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferAndCall(address,uint256,bytes)":"4000aea0","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"decimalPlaces\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalTokensIssued\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":\"LinkTokenInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"OperatorInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"distributeFunds","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"fulfillOracleRequest2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAuthorizedSenders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getForwarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes32","name":"specId","type":"bytes32"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"operatorRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ownerTransferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"senders","type":"address[]"}],"name":"setAuthorizedSenders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","distributeFunds(address[],uint256[])":"6bd59ec0","fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)":"6ae0bc76","getAuthorizedSenders()":"2408afaa","getForwarder()":"a0042526","isAuthorizedSender(address)":"fa00763a","operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes)":"3c6d41b9","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946","ownerTransferAndCall(address,uint256,bytes)":"902fc370","setAuthorizedSenders(address[])":"ee56997b","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"distributeFunds\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"fulfillOracleRequest2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuthorizedSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"specId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"operatorRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ownerTransferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"senders\",\"type\":\"address[]\"}],\"name\":\"setAuthorizedSenders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":\"OperatorInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"OracleInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","isAuthorizedSender(address)":"fa00763a","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":\"OracleInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol":{"OwnableInterface":{"abi":[{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":\"OwnableInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"PointerInterface":{"abi":[{"inputs":[],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getAddress()":"38cc4831"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":\"PointerInterface\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"BufferChainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e86a3ae4595e07c02fc63bb9fa7644f0282d309680ceb2c0cfb8ba039b2776bb64736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0xE8 PUSH11 0x3AE4595E07C02FC63BB9FA PUSH23 0x44F0282D309680CEB2C0CFB8BA039B2776BB64736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"441:9632:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;441:9632:11;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e86a3ae4595e07c02fc63bb9fa7644f0282d309680ceb2c0cfb8ba039b2776bb64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE8 PUSH11 0x3AE4595E07C02FC63BB9FA PUSH23 0x44F0282D309680CEB2C0CFB8BA039B2776BB64736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"441:9632:11:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"A library for working with mutable byte buffers in Solidity. Byte buffers are mutable and expandable, and provide a variety of primitives for writing to them. At any time you can fetch a bytes object containing the current contents of the buffer. The bytes object should not be stored between operations, as it may change due to resizing of the buffer.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":\"BufferChainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"CBORChainlink":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7f6205a46b5929d7528a5cbcc4e9160178d1084fdd91e38d125311819bd729164736f6c63430008110033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0xD7 0xF6 KECCAK256 GAS CHAINID 0xB5 SWAP3 SWAP14 PUSH22 0x28A5CBCC4E9160178D1084FDD91E38D125311819BD72 SWAP2 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"115:3271:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;115:3271:12;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7f6205a46b5929d7528a5cbcc4e9160178d1084fdd91e38d125311819bd729164736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 0xF6 KECCAK256 GAS CHAINID 0xB5 SWAP3 SWAP14 PUSH22 0x28A5CBCC4E9160178D1084FDD91E38D125311819BD72 SWAP2 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"115:3271:12:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":\"CBORChainlink\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ENSResolver":{"abi":[{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"addr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addr(bytes32)":"3b3b57de"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":\"ENSResolver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"contracts/AdmodConsumer.sol":{"AdmodConsumer":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"earning","type":"uint256"}],"name":"RequestEarning","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_requestId","type":"bytes32"},{"internalType":"uint256","name":"_earning","type":"uint256"}],"name":"fulfill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"requestWeekEarning","outputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawLink","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_2437":{"entryPoint":null,"id":2437,"parameterSlots":2,"returnSlots":0},"@_880":{"entryPoint":null,"id":880,"parameterSlots":1,"returnSlots":0},"@_937":{"entryPoint":null,"id":937,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_1021":{"entryPoint":395,"id":1021,"parameterSlots":1,"returnSlots":0},"@setChainlinkOracle_656":{"entryPoint":null,"id":656,"parameterSlots":1,"returnSlots":0},"@setChainlinkToken_669":{"entryPoint":567,"id":669,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":601,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":630,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":730,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":686,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1688:15","statements":[{"nodeType":"YulBlock","src":"6:3:15","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:15","statements":[{"nodeType":"YulAssignment","src":"84:22:15","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:15"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:15"},"nodeType":"YulFunctionCall","src":"93:13:15"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:15"}]},{"body":{"nodeType":"YulBlock","src":"169:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:15"},"nodeType":"YulFunctionCall","src":"171:12:15"},"nodeType":"YulExpressionStatement","src":"171:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:15"},"nodeType":"YulFunctionCall","src":"150:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:15"},"nodeType":"YulFunctionCall","src":"146:19:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:15"},"nodeType":"YulFunctionCall","src":"135:31:15"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:15"},"nodeType":"YulFunctionCall","src":"125:42:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:15"},"nodeType":"YulFunctionCall","src":"118:50:15"},"nodeType":"YulIf","src":"115:70:15"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:15","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:15","type":""}],"src":"14:177:15"},{"body":{"nodeType":"YulBlock","src":"294:195:15","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:15"},"nodeType":"YulFunctionCall","src":"342:12:15"},"nodeType":"YulExpressionStatement","src":"342:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:15"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:15"},"nodeType":"YulFunctionCall","src":"311:23:15"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:15","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:15"},"nodeType":"YulFunctionCall","src":"307:32:15"},"nodeType":"YulIf","src":"304:52:15"},{"nodeType":"YulAssignment","src":"365:50:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:15"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:15"},"nodeType":"YulFunctionCall","src":"375:40:15"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:15"}]},{"nodeType":"YulAssignment","src":"424:59:15","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:15"},"nodeType":"YulFunctionCall","src":"464:18:15"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:15"},"nodeType":"YulFunctionCall","src":"434:49:15"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:15"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:15","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:15","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:15","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:15","type":""}],"src":"196:293:15"},{"body":{"nodeType":"YulBlock","src":"668:174:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:15"},"nodeType":"YulFunctionCall","src":"678:21:15"},"nodeType":"YulExpressionStatement","src":"678:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:15"},"nodeType":"YulFunctionCall","src":"715:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:15","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:15"},"nodeType":"YulFunctionCall","src":"708:30:15"},"nodeType":"YulExpressionStatement","src":"708:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:15"},"nodeType":"YulFunctionCall","src":"754:18:15"},{"hexValue":"43616e6e6f7420736574206f776e657220746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"774:26:15","type":"","value":"Cannot set owner to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:15"},"nodeType":"YulFunctionCall","src":"747:54:15"},"nodeType":"YulExpressionStatement","src":"747:54:15"},{"nodeType":"YulAssignment","src":"810:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"822:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"833:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"818:3:15"},"nodeType":"YulFunctionCall","src":"818:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"810:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:15","type":""}],"src":"494:348:15"},{"body":{"nodeType":"YulBlock","src":"899:213:15","statements":[{"nodeType":"YulAssignment","src":"909:20:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"924:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"927:1:15"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"920:3:15"},"nodeType":"YulFunctionCall","src":"920:9:15"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"909:7:15"}]},{"body":{"nodeType":"YulBlock","src":"995:111:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1016:1:15","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1023:3:15","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1028:10:15","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1019:3:15"},"nodeType":"YulFunctionCall","src":"1019:20:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1009:6:15"},"nodeType":"YulFunctionCall","src":"1009:31:15"},"nodeType":"YulExpressionStatement","src":"1009:31:15"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1060:1:15","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1063:4:15","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1053:6:15"},"nodeType":"YulFunctionCall","src":"1053:15:15"},"nodeType":"YulExpressionStatement","src":"1053:15:15"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1088:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1091:4:15","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1081:6:15"},"nodeType":"YulFunctionCall","src":"1081:15:15"},"nodeType":"YulExpressionStatement","src":"1081:15:15"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"958:1:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"951:6:15"},"nodeType":"YulFunctionCall","src":"951:9:15"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"965:1:15"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"972:7:15"},{"name":"x","nodeType":"YulIdentifier","src":"981:1:15"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"968:3:15"},"nodeType":"YulFunctionCall","src":"968:15:15"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"962:2:15"},"nodeType":"YulFunctionCall","src":"962:22:15"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"948:2:15"},"nodeType":"YulFunctionCall","src":"948:37:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"941:6:15"},"nodeType":"YulFunctionCall","src":"941:45:15"},"nodeType":"YulIf","src":"938:168:15"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"878:1:15","type":""},{"name":"y","nodeType":"YulTypedName","src":"881:1:15","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"887:7:15","type":""}],"src":"847:265:15"},{"body":{"nodeType":"YulBlock","src":"1163:171:15","statements":[{"body":{"nodeType":"YulBlock","src":"1194:111:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1215:1:15","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1222:3:15","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1227:10:15","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1218:3:15"},"nodeType":"YulFunctionCall","src":"1218:20:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1208:6:15"},"nodeType":"YulFunctionCall","src":"1208:31:15"},"nodeType":"YulExpressionStatement","src":"1208:31:15"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1259:1:15","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1262:4:15","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1252:6:15"},"nodeType":"YulFunctionCall","src":"1252:15:15"},"nodeType":"YulExpressionStatement","src":"1252:15:15"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1287:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1290:4:15","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1280:6:15"},"nodeType":"YulFunctionCall","src":"1280:15:15"},"nodeType":"YulExpressionStatement","src":"1280:15:15"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1183:1:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1176:6:15"},"nodeType":"YulFunctionCall","src":"1176:9:15"},"nodeType":"YulIf","src":"1173:132:15"},{"nodeType":"YulAssignment","src":"1314:14:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1323:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"1326:1:15"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1319:3:15"},"nodeType":"YulFunctionCall","src":"1319:9:15"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1314:1:15"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1148:1:15","type":""},{"name":"y","nodeType":"YulTypedName","src":"1151:1:15","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"1157:1:15","type":""}],"src":"1117:217:15"},{"body":{"nodeType":"YulBlock","src":"1513:173:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1530:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1541:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1523:6:15"},"nodeType":"YulFunctionCall","src":"1523:21:15"},"nodeType":"YulExpressionStatement","src":"1523:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1564:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1575:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1560:3:15"},"nodeType":"YulFunctionCall","src":"1560:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"1580:2:15","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1553:6:15"},"nodeType":"YulFunctionCall","src":"1553:30:15"},"nodeType":"YulExpressionStatement","src":"1553:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1603:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1614:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1599:3:15"},"nodeType":"YulFunctionCall","src":"1599:18:15"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"1619:25:15","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1592:6:15"},"nodeType":"YulFunctionCall","src":"1592:53:15"},"nodeType":"YulExpressionStatement","src":"1592:53:15"},{"nodeType":"YulAssignment","src":"1654:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1666:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1677:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1662:3:15"},"nodeType":"YulFunctionCall","src":"1662:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1654:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1490:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1504:4:15","type":""}],"src":"1339:347:15"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_7dca76038b520c88e70cf97566ce5d47f70366a14444d2decb0ce7bf6a19e7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Cannot set owner to zero\")\n tail := add(headStart, 96)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x))))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n}","id":15,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405260016004553480156200001657600080fd5b506040516200133538038062001335833981016040819052620000399162000276565b818060006001600160a01b038216620000995760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0384811691909117909155811615620000cc57620000cc816200018b565b505050620000f473326c977e6efc84e512bb9c30f76e30c160ed06fb6200023760201b60201c565b600380546001600160a01b03191673aa37473c8d78f0f1c86c9d8aee53e8b896bcb4d51790557f6231643432636435346133613432303062316637323561363865343838383838600955600a62000155670de0b6b3a76400006001620002ae565b620001619190620002da565b600a55600b80546001600160a01b0319166001600160a01b039290921691909117905550620002fd565b336001600160a01b03821603620001e55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000090565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b03811681146200027157600080fd5b919050565b600080604083850312156200028a57600080fd5b620002958362000259565b9150620002a56020840162000259565b90509250929050565b8082028115828204841417620002d457634e487b7160e01b600052601160045260246000fd5b92915050565b600082620002f857634e487b7160e01b600052601260045260246000fd5b500490565b611028806200030d6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100f05780638dc654a214610101578063df78abe614610109578063f2fde38b1461011257600080fd5b806338af3eed1461008d5780634357855e146100bd57806350ed6a95146100d257806379ba5097146100e8575b600080fd5b600b546100a0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d06100cb366004610cb0565b610125565b005b6100da610227565b6040519081526020016100b4565b6100d06102d3565b6006546001600160a01b03166100a0565b6100d0610381565b6100da60085481565b6100d0610120366004610cd2565b6104cc565b60008281526005602052604090205482906001600160a01b031633146101a35760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084015b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c08360405161021891815260200190565b60405180910390a25060085550565b60008061023e60095430634357855e60e01b6104dd565b90506102806040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c8152602001610f78604c9139839190610502565b6102c1604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001610fc4602f9139839190610502565b6102cd81600a54610525565b91505090565b6007546001600160a01b031633146103265760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161019a565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b610389610548565b600061039d6002546001600160a01b031690565b600b546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156103f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104199190610d02565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610464573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104889190610d1b565b6104c95760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161019a565b50565b6104d4610548565b6104c98161059d565b6104e5610c75565b6104ed610c75565b6104f981868686610647565b95945050505050565b6080830151610511908361068d565b6080830151610520908261068d565b505050565b60035460009061053f906001600160a01b031684846106a4565b90505b92915050565b6006546001600160a01b0316331461059b5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161019a565b565b336001600160a01b038216036105f55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161019a565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b61064f610c75565b61065f8560800151610100610737565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b61069a826003835161079c565b61052082826108b1565b6004546000906106b5816001610d53565b600455835160408086015160808701515191516000936320214ca360e11b936106ed9386938493923092918a91600191602401610dac565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061072d868386846108d8565b9695505050505050565b604080518082019091526060815260006020820152610757602083610e14565b1561077f57610767602083610e14565b610772906020610e36565b61077c9083610d53565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116107c7576107c18360e0600585901b168317610a36565b50505050565b60ff8167ffffffffffffffff1611610805576107ee836018611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166001610a5b565b61ffff8167ffffffffffffffff16116108445761082d836019611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166002610a5b565b63ffffffff8167ffffffffffffffff16116108855761086e83601a611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166004610a5b565b61089a83601b611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166008610a5b565b60408051808201909152606081526000602082015261053f83846000015151848551610a81565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea09061099b90889087908790600401610e49565b6020604051808303816000875af11580156109ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109de9190610d1b565b6106855760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161019a565b60408051808201909152606081526000602082015261053f8384600001515184610b6b565b604080518082019091526060815260006020820152610685848560000151518585610bc6565b6040805180820190915260608152600060208201528251821115610aa457600080fd5b6020850151610ab38386610d53565b1115610ae657610ae685610ad687602001518786610ad19190610d53565b610c47565b610ae1906002610e70565b610c5e565b600080865180518760208301019350808887011115610b055787860182525b505050602084015b60208410610b455780518252610b24602083610d53565b9150610b31602082610d53565b9050610b3e602085610e36565b9350610b0d565b51815160001960208690036101000a019081169019919091161790525083949350505050565b60408051808201909152606081526000602082015283602001518310610ba057610ba08485602001516002610ae19190610e70565b8351805160208583010184815350808503610bbc576001810182525b5093949350505050565b6040805180820190915260608152600060208201526020850151610bea8584610d53565b1115610bfe57610bfe85610ad68685610d53565b60006001610c0e84610100610f6b565b610c189190610e36565b9050855183868201018583198251161781525080518487011115610c3c5783860181525b509495945050505050565b600081831115610c58575081610542565b50919050565b8151610c6a8383610737565b506107c183826108b1565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b60008060408385031215610cc357600080fd5b50508035926020909101359150565b600060208284031215610ce457600080fd5b81356001600160a01b0381168114610cfb57600080fd5b9392505050565b600060208284031215610d1457600080fd5b5051919050565b600060208284031215610d2d57600080fd5b81518015158114610cfb57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561054257610542610d3d565b6000815180845260005b81811015610d8c57602081850181015186830182015201610d70565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e08201819052600090610e0583820185610d66565b9b9a5050505050505050505050565b600082610e3157634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111561054257610542610d3d565b60018060a01b03841681528260208201526060604082015260006104f96060830184610d66565b808202811582820484141761054257610542610d3d565b600181815b80851115610ec2578160001904821115610ea857610ea8610d3d565b80851615610eb557918102915b93841c9390800290610e8c565b509250929050565b600082610ed957506001610542565b81610ee657506000610542565b8160018114610efc5760028114610f0657610f22565b6001915050610542565b60ff841115610f1757610f17610d3d565b50506001821b610542565b5060208310610133831016604e8410600b8410161715610f45575081810a610542565b610f4f8383610e87565b8060001904821115610f6357610f63610d3d565b029392505050565b600061053f8383610eca56fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a2646970667358221220a3440c4d48dbf505db52796c147907ce3a7151a8aaf08cb7456bc83a86c3b9d964736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1335 CODESIZE SUB DUP1 PUSH3 0x1335 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x39 SWAP2 PUSH3 0x276 JUMP JUMPDEST DUP2 DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F7420736574206F776E657220746F207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 AND ISZERO PUSH3 0xCC JUMPI PUSH3 0xCC DUP2 PUSH3 0x18B JUMP JUMPDEST POP POP POP PUSH3 0xF4 PUSH20 0x326C977E6EFC84E512BB9C30F76E30C160ED06FB PUSH3 0x237 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH20 0xAA37473C8D78F0F1C86C9D8AEE53E8B896BCB4D5 OR SWAP1 SSTORE PUSH32 0x6231643432636435346133613432303062316637323561363865343838383838 PUSH1 0x9 SSTORE PUSH1 0xA PUSH3 0x155 PUSH8 0xDE0B6B3A7640000 PUSH1 0x1 PUSH3 0x2AE JUMP JUMPDEST PUSH3 0x161 SWAP2 SWAP1 PUSH3 0x2DA JUMP JUMPDEST PUSH1 0xA SSTORE PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x2FD JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH3 0x1E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x90 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x28A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x295 DUP4 PUSH3 0x259 JUMP JUMPDEST SWAP2 POP PUSH3 0x2A5 PUSH1 0x20 DUP5 ADD PUSH3 0x259 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH3 0x2D4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x2F8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH2 0x1028 DUP1 PUSH3 0x30D 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 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xF0 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xDF78ABE6 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x38AF3EED EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x4357855E EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0x50ED6A95 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xE8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD PUSH2 0xA0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD0 PUSH2 0xCB CALLDATASIZE PUSH1 0x4 PUSH2 0xCB0 JUMP JUMPDEST PUSH2 0x125 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDA PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB4 JUMP JUMPDEST PUSH2 0xD0 PUSH2 0x2D3 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA0 JUMP JUMPDEST PUSH2 0xD0 PUSH2 0x381 JUMP JUMPDEST PUSH2 0xDA PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xD0 PUSH2 0x120 CALLDATASIZE PUSH1 0x4 PUSH2 0xCD2 JUMP JUMPDEST PUSH2 0x4CC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x9721E7802F825C56833DB455A0081C7DD8C7DA03ED285E582C2AF90DD7D442C0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x218 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x8 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x23E PUSH1 0x9 SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x4DD JUMP JUMPDEST SWAP1 POP PUSH2 0x280 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x19D95D PUSH1 0xEA SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF78 PUSH1 0x4C SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x502 JUMP JUMPDEST PUSH2 0x2C1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFC4 PUSH1 0x2F SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x502 JUMP JUMPDEST PUSH2 0x2CD DUP2 PUSH1 0xA SLOAD PUSH2 0x525 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x326 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x19A JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP3 AND CALLER SWAP1 DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x389 PUSH2 0x548 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39D PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 SWAP2 SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3F5 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 0x419 SWAP2 SWAP1 PUSH2 0xD02 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x464 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 0x488 SWAP2 SWAP1 PUSH2 0xD1B JUMP JUMPDEST PUSH2 0x4C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x2AB730B13632903A37903A3930B739B332B9 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x4D4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x4C9 DUP2 PUSH2 0x59D JUMP JUMPDEST PUSH2 0x4E5 PUSH2 0xC75 JUMP JUMPDEST PUSH2 0x4ED PUSH2 0xC75 JUMP JUMPDEST PUSH2 0x4F9 DUP2 DUP7 DUP7 DUP7 PUSH2 0x647 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x511 SWAP1 DUP4 PUSH2 0x68D JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x520 SWAP1 DUP3 PUSH2 0x68D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x53F SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x59B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x19A JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x5F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x19A JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x64F PUSH2 0xC75 JUMP JUMPDEST PUSH2 0x65F DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x737 JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x69A DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x79C JUMP JUMPDEST PUSH2 0x520 DUP3 DUP3 PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x6B5 DUP2 PUSH1 0x1 PUSH2 0xD53 JUMP JUMPDEST PUSH1 0x4 SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0x6ED SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0x72D DUP7 DUP4 DUP7 DUP5 PUSH2 0x8D8 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x757 PUSH1 0x20 DUP4 PUSH2 0xE14 JUMP JUMPDEST ISZERO PUSH2 0x77F JUMPI PUSH2 0x767 PUSH1 0x20 DUP4 PUSH2 0xE14 JUMP JUMPDEST PUSH2 0x772 SWAP1 PUSH1 0x20 PUSH2 0xE36 JUMP JUMPDEST PUSH2 0x77C SWAP1 DUP4 PUSH2 0xD53 JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x7C7 JUMPI PUSH2 0x7C1 DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0xA36 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x805 JUMPI PUSH2 0x7EE DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xA36 JUMP JUMPDEST POP PUSH2 0x7C1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0xA5B JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x844 JUMPI PUSH2 0x82D DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xA36 JUMP JUMPDEST POP PUSH2 0x7C1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0xA5B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x885 JUMPI PUSH2 0x86E DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xA36 JUMP JUMPDEST POP PUSH2 0x7C1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0xA5B JUMP JUMPDEST PUSH2 0x89A DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xA36 JUMP JUMPDEST POP PUSH2 0x7C1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0xA5B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x53F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0x99B SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xE49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9BA 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 0x9DE SWAP2 SWAP1 PUSH2 0xD1B JUMP JUMPDEST PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x19A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x53F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0xB6B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x685 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0xAA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0xAB3 DUP4 DUP7 PUSH2 0xD53 JUMP JUMPDEST GT ISZERO PUSH2 0xAE6 JUMPI PUSH2 0xAE6 DUP6 PUSH2 0xAD6 DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0xAD1 SWAP2 SWAP1 PUSH2 0xD53 JUMP JUMPDEST PUSH2 0xC47 JUMP JUMPDEST PUSH2 0xAE1 SWAP1 PUSH1 0x2 PUSH2 0xE70 JUMP JUMPDEST PUSH2 0xC5E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0xB05 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0xB45 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0xB24 PUSH1 0x20 DUP4 PUSH2 0xD53 JUMP JUMPDEST SWAP2 POP PUSH2 0xB31 PUSH1 0x20 DUP3 PUSH2 0xD53 JUMP JUMPDEST SWAP1 POP PUSH2 0xB3E PUSH1 0x20 DUP6 PUSH2 0xE36 JUMP JUMPDEST SWAP4 POP PUSH2 0xB0D JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0xBA0 JUMPI PUSH2 0xBA0 DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0xAE1 SWAP2 SWAP1 PUSH2 0xE70 JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 SUB PUSH2 0xBBC JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0xBEA DUP6 DUP5 PUSH2 0xD53 JUMP JUMPDEST GT ISZERO PUSH2 0xBFE JUMPI PUSH2 0xBFE DUP6 PUSH2 0xAD6 DUP7 DUP6 PUSH2 0xD53 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0xC0E DUP5 PUSH2 0x100 PUSH2 0xF6B JUMP JUMPDEST PUSH2 0xC18 SWAP2 SWAP1 PUSH2 0xE36 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0xC3C JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0xC58 JUMPI POP DUP2 PUSH2 0x542 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0xC6A DUP4 DUP4 PUSH2 0x737 JUMP JUMPDEST POP PUSH2 0x7C1 DUP4 DUP3 PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xCFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xCFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x542 JUMPI PUSH2 0x542 PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD8C JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xD70 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xE05 DUP4 DUP3 ADD DUP6 PUSH2 0xD66 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE31 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x542 JUMPI PUSH2 0x542 PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4F9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xD66 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x542 JUMPI PUSH2 0x542 PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0xEC2 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0xD3D JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0xEB5 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0xE8C JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xED9 JUMPI POP PUSH1 0x1 PUSH2 0x542 JUMP JUMPDEST DUP2 PUSH2 0xEE6 JUMPI POP PUSH1 0x0 PUSH2 0x542 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xEFC JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xF06 JUMPI PUSH2 0xF22 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x542 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xF17 JUMPI PUSH2 0xF17 PUSH2 0xD3D JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x542 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xF45 JUMPI POP DUP2 DUP2 EXP PUSH2 0x542 JUMP JUMPDEST PUSH2 0xF4F DUP4 DUP4 PUSH2 0xE87 JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF63 PUSH2 0xD3D JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53F DUP4 DUP4 PUSH2 0xECA JUMP INVALID PUSH9 0x747470733A2F2F7465 PUSH20 0x746170692E696F2F6170692F48617964656E2F76 BALANCE 0x2F PUSH2 0x6363 PUSH16 0x756E74732F7075622D39393838373736 CALLDATASIZE CALLDATALOAD CALLDATALOAD CALLVALUE CALLVALUE CALLER CALLER ORIGIN ORIGIN 0x2F PUSH15 0x6574776F726B5265706F7274726F77 0x2C PUSH14 0x657472696356616C7565732C4553 SLOAD 0x49 0x4D COINBASE SLOAD GASLIMIT DIFFICULTY 0x5F GASLIMIT COINBASE MSTORE 0x4E 0x49 0x4E SELFBALANCE MSTORE8 0x2C PUSH14 0x6963726F7356616C7565A2646970 PUSH7 0x7358221220A344 0xC 0x4D BASEFEE 0xDB CREATE2 SDIV 0xDB MSTORE PUSH26 0x6C147907CE3A7151A8AAF08CB7456BC83A86C3B9D964736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"177:2814:14:-:0;;;1291:1:1;1258:34;;1010:399:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1075:6;;345:1:2;-1:-1:-1;;;;;552:22:3;;544:59;;;;-1:-1:-1;;;544:59:3;;696:2:15;544:59:3;;;678:21:15;735:2;715:18;;;708:30;774:26;754:18;;;747:54;818:18;;544:59:3;;;;;;;;;610:7;:18;;-1:-1:-1;;;;;;610:18:3;-1:-1:-1;;;;;610:18:3;;;;;;;;;;638:26;;;634:79;;674:32;693:12;674:18;:32::i;:::-;486:231;;270:81:2;1093:61:14::1;1111:42;1093:17;;;:61;;:::i;:::-;8457:8:1::0;:43;;-1:-1:-1;;;;;;8457:43:1;1183:42:14::1;8457:43:1::0;;;1236:42:14::1;:5;:42:::0;1320:2:::1;1295:21;675:6:1;1295:1:14;:21;:::i;:::-;1294:28;;;;:::i;:::-;1288:3;:34:::0;1376:11:::1;:26:::0;;-1:-1:-1;;;;;;1376:26:14::1;-1:-1:-1::0;;;;;1376:26:14;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;177:2814:14;;1497:188:3;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;1541:2:15;1551:52:3;;;1523:21:15;1580:2;1560:18;;;1553:30;1619:25;1599:18;;;1592:53;1662:18;;1551:52:3;1339:347:15;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;1668:7;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;;1641:39:3;1497:188;:::o;8625:108:1:-;8688:6;:40;;-1:-1:-1;;;;;;8688:40:1;-1:-1:-1;;;;;8688:40:1;;;;;;;;;;8625:108::o;14:177:15:-;93:13;;-1:-1:-1;;;;;135:31:15;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;847:265::-;920:9;;;951;;968:15;;;962:22;;948:37;938:168;;1028:10;1023:3;1019:20;1016:1;1009:31;1063:4;1060:1;1053:15;1091:4;1088:1;1081:15;938:168;847:265;;;;:::o;1117:217::-;1157:1;1183;1173:132;;1227:10;1222:3;1218:20;1215:1;1208:31;1262:4;1259:1;1252:15;1290:4;1287:1;1280:15;1173:132;-1:-1:-1;1319:9:15;;1117:217::o;1339:347::-;177:2814:14;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_rawRequest_594":{"entryPoint":2264,"id":594,"parameterSlots":4,"returnSlots":1},"@_transferOwnership_1021":{"entryPoint":1437,"id":1021,"parameterSlots":1,"returnSlots":0},"@_validateOwnership_1034":{"entryPoint":1352,"id":1034,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_987":{"entryPoint":723,"id":987,"parameterSlots":0,"returnSlots":0},"@add_125":{"entryPoint":1282,"id":125,"parameterSlots":3,"returnSlots":0},"@appendInt_1915":{"entryPoint":2651,"id":1915,"parameterSlots":3,"returnSlots":1},"@appendUint8_1712":{"entryPoint":2614,"id":1712,"parameterSlots":2,"returnSlots":1},"@append_1659":{"entryPoint":2225,"id":1659,"parameterSlots":2,"returnSlots":1},"@beneficiary_2394":{"entryPoint":null,"id":2394,"parameterSlots":0,"returnSlots":0},"@buildChainlinkRequest_373":{"entryPoint":1245,"id":373,"parameterSlots":3,"returnSlots":1},"@chainlinkTokenAddress_694":{"entryPoint":null,"id":694,"parameterSlots":0,"returnSlots":1},"@earning_2387":{"entryPoint":null,"id":2387,"parameterSlots":0,"returnSlots":0},"@encodeFixedNumeric_2084":{"entryPoint":1948,"id":2084,"parameterSlots":3,"returnSlots":0},"@encodeString_2326":{"entryPoint":1677,"id":2326,"parameterSlots":2,"returnSlots":0},"@fulfill_2500":{"entryPoint":293,"id":2500,"parameterSlots":2,"returnSlots":0},"@init_1440":{"entryPoint":1847,"id":1440,"parameterSlots":2,"returnSlots":1},"@initialize_70":{"entryPoint":1607,"id":70,"parameterSlots":4,"returnSlots":1},"@max_1512":{"entryPoint":3143,"id":1512,"parameterSlots":2,"returnSlots":1},"@owner_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@requestWeekEarning_2479":{"entryPoint":551,"id":2479,"parameterSlots":0,"returnSlots":1},"@resize_1493":{"entryPoint":3166,"id":1493,"parameterSlots":2,"returnSlots":0},"@sendChainlinkRequestTo_477":{"entryPoint":1700,"id":477,"parameterSlots":3,"returnSlots":1},"@sendChainlinkRequest_422":{"entryPoint":1317,"id":422,"parameterSlots":2,"returnSlots":1},"@transferOwnership_951":{"entryPoint":1228,"id":951,"parameterSlots":1,"returnSlots":0},"@withdrawLink_2530":{"entryPoint":897,"id":2530,"parameterSlots":0,"returnSlots":0},"@writeInt_1891":{"entryPoint":3014,"id":1891,"parameterSlots":4,"returnSlots":1},"@writeUint8_1691":{"entryPoint":2923,"id":1691,"parameterSlots":3,"returnSlots":1},"@write_1612":{"entryPoint":2689,"id":1612,"parameterSlots":4,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3282,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3355,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":3248,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":3330,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":3430,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3500,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3657,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3411,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":3719,"id":null,"parameterSlots":2,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3947,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3786,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":3696,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":3638,"id":null,"parameterSlots":2,"returnSlots":1},"mod_t_uint256":{"entryPoint":3604,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":3389,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:8212:15","statements":[{"nodeType":"YulBlock","src":"6:3:15","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:102:15","statements":[{"nodeType":"YulAssignment","src":"125:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:15"},"nodeType":"YulFunctionCall","src":"133:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:15"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:15"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"182:6:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"198:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"203:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"194:3:15"},"nodeType":"YulFunctionCall","src":"194:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"207:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"190:3:15"},"nodeType":"YulFunctionCall","src":"190:19:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"178:3:15"},"nodeType":"YulFunctionCall","src":"178:32:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:15"},"nodeType":"YulFunctionCall","src":"160:51:15"},"nodeType":"YulExpressionStatement","src":"160:51:15"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:15","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:15","type":""}],"src":"14:203:15"},{"body":{"nodeType":"YulBlock","src":"309:161:15","statements":[{"body":{"nodeType":"YulBlock","src":"355:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"364:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"367:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"357:6:15"},"nodeType":"YulFunctionCall","src":"357:12:15"},"nodeType":"YulExpressionStatement","src":"357:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"330:7:15"},{"name":"headStart","nodeType":"YulIdentifier","src":"339:9:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:15"},"nodeType":"YulFunctionCall","src":"326:23:15"},{"kind":"number","nodeType":"YulLiteral","src":"351:2:15","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"322:3:15"},"nodeType":"YulFunctionCall","src":"322:32:15"},"nodeType":"YulIf","src":"319:52:15"},{"nodeType":"YulAssignment","src":"380:33:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"403:9:15"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"390:12:15"},"nodeType":"YulFunctionCall","src":"390:23:15"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"380:6:15"}]},{"nodeType":"YulAssignment","src":"422:42:15","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"449:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"460:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"445:3:15"},"nodeType":"YulFunctionCall","src":"445:18:15"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"432:12:15"},"nodeType":"YulFunctionCall","src":"432:32:15"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"422:6:15"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"267:9:15","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"278:7:15","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"290:6:15","type":""},{"name":"value1","nodeType":"YulTypedName","src":"298:6:15","type":""}],"src":"222:248:15"},{"body":{"nodeType":"YulBlock","src":"576:76:15","statements":[{"nodeType":"YulAssignment","src":"586:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"598:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"609:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"594:3:15"},"nodeType":"YulFunctionCall","src":"594:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"586:4:15"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"628:9:15"},{"name":"value0","nodeType":"YulIdentifier","src":"639:6:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"621:6:15"},"nodeType":"YulFunctionCall","src":"621:25:15"},"nodeType":"YulExpressionStatement","src":"621:25:15"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"545:9:15","type":""},{"name":"value0","nodeType":"YulTypedName","src":"556:6:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"567:4:15","type":""}],"src":"475:177:15"},{"body":{"nodeType":"YulBlock","src":"758:76:15","statements":[{"nodeType":"YulAssignment","src":"768:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"780:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"791:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"776:3:15"},"nodeType":"YulFunctionCall","src":"776:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"768:4:15"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"810:9:15"},{"name":"value0","nodeType":"YulIdentifier","src":"821:6:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"803:6:15"},"nodeType":"YulFunctionCall","src":"803:25:15"},"nodeType":"YulExpressionStatement","src":"803:25:15"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"727:9:15","type":""},{"name":"value0","nodeType":"YulTypedName","src":"738:6:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"749:4:15","type":""}],"src":"657:177:15"},{"body":{"nodeType":"YulBlock","src":"909:216:15","statements":[{"body":{"nodeType":"YulBlock","src":"955:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"964:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"967:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"957:6:15"},"nodeType":"YulFunctionCall","src":"957:12:15"},"nodeType":"YulExpressionStatement","src":"957:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"930:7:15"},{"name":"headStart","nodeType":"YulIdentifier","src":"939:9:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"926:3:15"},"nodeType":"YulFunctionCall","src":"926:23:15"},{"kind":"number","nodeType":"YulLiteral","src":"951:2:15","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"922:3:15"},"nodeType":"YulFunctionCall","src":"922:32:15"},"nodeType":"YulIf","src":"919:52:15"},{"nodeType":"YulVariableDeclaration","src":"980:36:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1006:9:15"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"993:12:15"},"nodeType":"YulFunctionCall","src":"993:23:15"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"984:5:15","type":""}]},{"body":{"nodeType":"YulBlock","src":"1079:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1088:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1091:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1081:6:15"},"nodeType":"YulFunctionCall","src":"1081:12:15"},"nodeType":"YulExpressionStatement","src":"1081:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1038:5:15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1049:5:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1064:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1069:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1060:3:15"},"nodeType":"YulFunctionCall","src":"1060:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"1073:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1056:3:15"},"nodeType":"YulFunctionCall","src":"1056:19:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1045:3:15"},"nodeType":"YulFunctionCall","src":"1045:31:15"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1035:2:15"},"nodeType":"YulFunctionCall","src":"1035:42:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1028:6:15"},"nodeType":"YulFunctionCall","src":"1028:50:15"},"nodeType":"YulIf","src":"1025:70:15"},{"nodeType":"YulAssignment","src":"1104:15:15","value":{"name":"value","nodeType":"YulIdentifier","src":"1114:5:15"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1104:6:15"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"875:9:15","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"886:7:15","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"898:6:15","type":""}],"src":"839:286:15"},{"body":{"nodeType":"YulBlock","src":"1304:230:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1321:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1332:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1314:6:15"},"nodeType":"YulFunctionCall","src":"1314:21:15"},"nodeType":"YulExpressionStatement","src":"1314:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1355:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1366:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1351:3:15"},"nodeType":"YulFunctionCall","src":"1351:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"1371:2:15","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1344:6:15"},"nodeType":"YulFunctionCall","src":"1344:30:15"},"nodeType":"YulExpressionStatement","src":"1344:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1394:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1405:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1390:3:15"},"nodeType":"YulFunctionCall","src":"1390:18:15"},{"hexValue":"536f75726365206d75737420626520746865206f7261636c65206f6620746865","kind":"string","nodeType":"YulLiteral","src":"1410:34:15","type":"","value":"Source must be the oracle of the"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1383:6:15"},"nodeType":"YulFunctionCall","src":"1383:62:15"},"nodeType":"YulExpressionStatement","src":"1383:62:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1465:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1476:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1461:3:15"},"nodeType":"YulFunctionCall","src":"1461:18:15"},{"hexValue":"2072657175657374","kind":"string","nodeType":"YulLiteral","src":"1481:10:15","type":"","value":" request"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1454:6:15"},"nodeType":"YulFunctionCall","src":"1454:38:15"},"nodeType":"YulExpressionStatement","src":"1454:38:15"},{"nodeType":"YulAssignment","src":"1501:27:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1513:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1524:3:15","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1509:3:15"},"nodeType":"YulFunctionCall","src":"1509:19:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1501:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1281:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1295:4:15","type":""}],"src":"1130:404:15"},{"body":{"nodeType":"YulBlock","src":"1713:172:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1730:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1741:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1723:6:15"},"nodeType":"YulFunctionCall","src":"1723:21:15"},"nodeType":"YulExpressionStatement","src":"1723:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1764:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1775:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1760:3:15"},"nodeType":"YulFunctionCall","src":"1760:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"1780:2:15","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1753:6:15"},"nodeType":"YulFunctionCall","src":"1753:30:15"},"nodeType":"YulExpressionStatement","src":"1753:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1803:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1814:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1799:3:15"},"nodeType":"YulFunctionCall","src":"1799:18:15"},{"hexValue":"4d7573742062652070726f706f736564206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1819:24:15","type":"","value":"Must be proposed owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1792:6:15"},"nodeType":"YulFunctionCall","src":"1792:52:15"},"nodeType":"YulExpressionStatement","src":"1792:52:15"},{"nodeType":"YulAssignment","src":"1853:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1865:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"1876:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1861:3:15"},"nodeType":"YulFunctionCall","src":"1861:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1853:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1690:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1704:4:15","type":""}],"src":"1539:346:15"},{"body":{"nodeType":"YulBlock","src":"1971:103:15","statements":[{"body":{"nodeType":"YulBlock","src":"2017:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2026:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2029:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2019:6:15"},"nodeType":"YulFunctionCall","src":"2019:12:15"},"nodeType":"YulExpressionStatement","src":"2019:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1992:7:15"},{"name":"headStart","nodeType":"YulIdentifier","src":"2001:9:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1988:3:15"},"nodeType":"YulFunctionCall","src":"1988:23:15"},{"kind":"number","nodeType":"YulLiteral","src":"2013:2:15","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1984:3:15"},"nodeType":"YulFunctionCall","src":"1984:32:15"},"nodeType":"YulIf","src":"1981:52:15"},{"nodeType":"YulAssignment","src":"2042:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2058:9:15"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2052:5:15"},"nodeType":"YulFunctionCall","src":"2052:16:15"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2042:6:15"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1937:9:15","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1948:7:15","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1960:6:15","type":""}],"src":"1890:184:15"},{"body":{"nodeType":"YulBlock","src":"2208:145:15","statements":[{"nodeType":"YulAssignment","src":"2218:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2230:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"2241:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2226:3:15"},"nodeType":"YulFunctionCall","src":"2226:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2218:4:15"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2260:9:15"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2275:6:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2291:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2296:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2287:3:15"},"nodeType":"YulFunctionCall","src":"2287:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"2300:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2283:3:15"},"nodeType":"YulFunctionCall","src":"2283:19:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2271:3:15"},"nodeType":"YulFunctionCall","src":"2271:32:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2253:6:15"},"nodeType":"YulFunctionCall","src":"2253:51:15"},"nodeType":"YulExpressionStatement","src":"2253:51:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2324:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"2335:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2320:3:15"},"nodeType":"YulFunctionCall","src":"2320:18:15"},{"name":"value1","nodeType":"YulIdentifier","src":"2340:6:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2313:6:15"},"nodeType":"YulFunctionCall","src":"2313:34:15"},"nodeType":"YulExpressionStatement","src":"2313:34:15"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2169:9:15","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2180:6:15","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2188:6:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2199:4:15","type":""}],"src":"2079:274:15"},{"body":{"nodeType":"YulBlock","src":"2436:199:15","statements":[{"body":{"nodeType":"YulBlock","src":"2482:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2491:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2494:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2484:6:15"},"nodeType":"YulFunctionCall","src":"2484:12:15"},"nodeType":"YulExpressionStatement","src":"2484:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2457:7:15"},{"name":"headStart","nodeType":"YulIdentifier","src":"2466:9:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2453:3:15"},"nodeType":"YulFunctionCall","src":"2453:23:15"},{"kind":"number","nodeType":"YulLiteral","src":"2478:2:15","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2449:3:15"},"nodeType":"YulFunctionCall","src":"2449:32:15"},"nodeType":"YulIf","src":"2446:52:15"},{"nodeType":"YulVariableDeclaration","src":"2507:29:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2526:9:15"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2520:5:15"},"nodeType":"YulFunctionCall","src":"2520:16:15"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2511:5:15","type":""}]},{"body":{"nodeType":"YulBlock","src":"2589:16:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2598:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2601:1:15","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2591:6:15"},"nodeType":"YulFunctionCall","src":"2591:12:15"},"nodeType":"YulExpressionStatement","src":"2591:12:15"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2558:5:15"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2579:5:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2572:6:15"},"nodeType":"YulFunctionCall","src":"2572:13:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2565:6:15"},"nodeType":"YulFunctionCall","src":"2565:21:15"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2555:2:15"},"nodeType":"YulFunctionCall","src":"2555:32:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2548:6:15"},"nodeType":"YulFunctionCall","src":"2548:40:15"},"nodeType":"YulIf","src":"2545:60:15"},{"nodeType":"YulAssignment","src":"2614:15:15","value":{"name":"value","nodeType":"YulIdentifier","src":"2624:5:15"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2614:6:15"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2402:9:15","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2413:7:15","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2425:6:15","type":""}],"src":"2358:277:15"},{"body":{"nodeType":"YulBlock","src":"2814:168:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2831:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"2842:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2824:6:15"},"nodeType":"YulFunctionCall","src":"2824:21:15"},"nodeType":"YulExpressionStatement","src":"2824:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2865:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"2876:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2861:3:15"},"nodeType":"YulFunctionCall","src":"2861:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"2881:2:15","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2854:6:15"},"nodeType":"YulFunctionCall","src":"2854:30:15"},"nodeType":"YulExpressionStatement","src":"2854:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2904:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"2915:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2900:3:15"},"nodeType":"YulFunctionCall","src":"2900:18:15"},{"hexValue":"556e61626c6520746f207472616e73666572","kind":"string","nodeType":"YulLiteral","src":"2920:20:15","type":"","value":"Unable to transfer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2893:6:15"},"nodeType":"YulFunctionCall","src":"2893:48:15"},"nodeType":"YulExpressionStatement","src":"2893:48:15"},{"nodeType":"YulAssignment","src":"2950:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2962:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"2973:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2958:3:15"},"nodeType":"YulFunctionCall","src":"2958:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2950:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2791:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2805:4:15","type":""}],"src":"2640:342:15"},{"body":{"nodeType":"YulBlock","src":"3161:172:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3178:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"3189:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3171:6:15"},"nodeType":"YulFunctionCall","src":"3171:21:15"},"nodeType":"YulExpressionStatement","src":"3171:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3212:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"3223:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3208:3:15"},"nodeType":"YulFunctionCall","src":"3208:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"3228:2:15","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3201:6:15"},"nodeType":"YulFunctionCall","src":"3201:30:15"},"nodeType":"YulExpressionStatement","src":"3201:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3251:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"3262:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3247:3:15"},"nodeType":"YulFunctionCall","src":"3247:18:15"},{"hexValue":"4f6e6c792063616c6c61626c65206279206f776e6572","kind":"string","nodeType":"YulLiteral","src":"3267:24:15","type":"","value":"Only callable by owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3240:6:15"},"nodeType":"YulFunctionCall","src":"3240:52:15"},"nodeType":"YulExpressionStatement","src":"3240:52:15"},{"nodeType":"YulAssignment","src":"3301:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3313:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"3324:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3309:3:15"},"nodeType":"YulFunctionCall","src":"3309:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3301:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3138:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3152:4:15","type":""}],"src":"2987:346:15"},{"body":{"nodeType":"YulBlock","src":"3512:173:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3529:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"3540:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3522:6:15"},"nodeType":"YulFunctionCall","src":"3522:21:15"},"nodeType":"YulExpressionStatement","src":"3522:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3563:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"3574:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3559:3:15"},"nodeType":"YulFunctionCall","src":"3559:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"3579:2:15","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3552:6:15"},"nodeType":"YulFunctionCall","src":"3552:30:15"},"nodeType":"YulExpressionStatement","src":"3552:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3602:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"3613:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3598:3:15"},"nodeType":"YulFunctionCall","src":"3598:18:15"},{"hexValue":"43616e6e6f74207472616e7366657220746f2073656c66","kind":"string","nodeType":"YulLiteral","src":"3618:25:15","type":"","value":"Cannot transfer to self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3591:6:15"},"nodeType":"YulFunctionCall","src":"3591:53:15"},"nodeType":"YulExpressionStatement","src":"3591:53:15"},{"nodeType":"YulAssignment","src":"3653:26:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3665:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"3676:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3661:3:15"},"nodeType":"YulFunctionCall","src":"3661:18:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3653:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3489:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3503:4:15","type":""}],"src":"3338:347:15"},{"body":{"nodeType":"YulBlock","src":"3722:95:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3739:1:15","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3746:3:15","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3751:10:15","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3742:3:15"},"nodeType":"YulFunctionCall","src":"3742:20:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3732:6:15"},"nodeType":"YulFunctionCall","src":"3732:31:15"},"nodeType":"YulExpressionStatement","src":"3732:31:15"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3779:1:15","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3782:4:15","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3772:6:15"},"nodeType":"YulFunctionCall","src":"3772:15:15"},"nodeType":"YulExpressionStatement","src":"3772:15:15"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3803:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3806:4:15","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3796:6:15"},"nodeType":"YulFunctionCall","src":"3796:15:15"},"nodeType":"YulExpressionStatement","src":"3796:15:15"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"3690:127:15"},{"body":{"nodeType":"YulBlock","src":"3870:77:15","statements":[{"nodeType":"YulAssignment","src":"3880:16:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3891:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"3894:1:15"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3887:3:15"},"nodeType":"YulFunctionCall","src":"3887:9:15"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3880:3:15"}]},{"body":{"nodeType":"YulBlock","src":"3919:22:15","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3921:16:15"},"nodeType":"YulFunctionCall","src":"3921:18:15"},"nodeType":"YulExpressionStatement","src":"3921:18:15"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3911:1:15"},{"name":"sum","nodeType":"YulIdentifier","src":"3914:3:15"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3908:2:15"},"nodeType":"YulFunctionCall","src":"3908:10:15"},"nodeType":"YulIf","src":"3905:36:15"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3853:1:15","type":""},{"name":"y","nodeType":"YulTypedName","src":"3856:1:15","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3862:3:15","type":""}],"src":"3822:125:15"},{"body":{"nodeType":"YulBlock","src":"4001:373:15","statements":[{"nodeType":"YulVariableDeclaration","src":"4011:26:15","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4031:5:15"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4025:5:15"},"nodeType":"YulFunctionCall","src":"4025:12:15"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4015:6:15","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4053:3:15"},{"name":"length","nodeType":"YulIdentifier","src":"4058:6:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4046:6:15"},"nodeType":"YulFunctionCall","src":"4046:19:15"},"nodeType":"YulExpressionStatement","src":"4046:19:15"},{"nodeType":"YulVariableDeclaration","src":"4074:10:15","value":{"kind":"number","nodeType":"YulLiteral","src":"4083:1:15","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4078:1:15","type":""}]},{"body":{"nodeType":"YulBlock","src":"4145:110:15","statements":[{"nodeType":"YulVariableDeclaration","src":"4159:14:15","value":{"kind":"number","nodeType":"YulLiteral","src":"4169:4:15","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4163:2:15","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4201:3:15"},{"name":"i","nodeType":"YulIdentifier","src":"4206:1:15"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4197:3:15"},"nodeType":"YulFunctionCall","src":"4197:11:15"},{"name":"_1","nodeType":"YulIdentifier","src":"4210:2:15"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4193:3:15"},"nodeType":"YulFunctionCall","src":"4193:20:15"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4229:5:15"},{"name":"i","nodeType":"YulIdentifier","src":"4236:1:15"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4225:3:15"},"nodeType":"YulFunctionCall","src":"4225:13:15"},{"name":"_1","nodeType":"YulIdentifier","src":"4240:2:15"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4221:3:15"},"nodeType":"YulFunctionCall","src":"4221:22:15"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4215:5:15"},"nodeType":"YulFunctionCall","src":"4215:29:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4186:6:15"},"nodeType":"YulFunctionCall","src":"4186:59:15"},"nodeType":"YulExpressionStatement","src":"4186:59:15"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4104:1:15"},{"name":"length","nodeType":"YulIdentifier","src":"4107:6:15"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4101:2:15"},"nodeType":"YulFunctionCall","src":"4101:13:15"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4115:21:15","statements":[{"nodeType":"YulAssignment","src":"4117:17:15","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4126:1:15"},{"kind":"number","nodeType":"YulLiteral","src":"4129:4:15","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4122:3:15"},"nodeType":"YulFunctionCall","src":"4122:12:15"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4117:1:15"}]}]},"pre":{"nodeType":"YulBlock","src":"4097:3:15","statements":[]},"src":"4093:162:15"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4279:3:15"},{"name":"length","nodeType":"YulIdentifier","src":"4284:6:15"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4275:3:15"},"nodeType":"YulFunctionCall","src":"4275:16:15"},{"kind":"number","nodeType":"YulLiteral","src":"4293:4:15","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4271:3:15"},"nodeType":"YulFunctionCall","src":"4271:27:15"},{"kind":"number","nodeType":"YulLiteral","src":"4300:1:15","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4264:6:15"},"nodeType":"YulFunctionCall","src":"4264:38:15"},"nodeType":"YulExpressionStatement","src":"4264:38:15"},{"nodeType":"YulAssignment","src":"4311:57:15","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4326:3:15"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4339:6:15"},{"kind":"number","nodeType":"YulLiteral","src":"4347:2:15","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4335:3:15"},"nodeType":"YulFunctionCall","src":"4335:15:15"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4356:2:15","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4352:3:15"},"nodeType":"YulFunctionCall","src":"4352:7:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4331:3:15"},"nodeType":"YulFunctionCall","src":"4331:29:15"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4322:3:15"},"nodeType":"YulFunctionCall","src":"4322:39:15"},{"kind":"number","nodeType":"YulLiteral","src":"4363:4:15","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:15"},"nodeType":"YulFunctionCall","src":"4318:50:15"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4311:3:15"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3978:5:15","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3985:3:15","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3993:3:15","type":""}],"src":"3952:422:15"},{"body":{"nodeType":"YulBlock","src":"4692:508:15","statements":[{"nodeType":"YulVariableDeclaration","src":"4702:13:15","value":{"kind":"number","nodeType":"YulLiteral","src":"4712:3:15","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4706:2:15","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4724:29:15","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4742:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4747:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4738:3:15"},"nodeType":"YulFunctionCall","src":"4738:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"4751:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4734:3:15"},"nodeType":"YulFunctionCall","src":"4734:19:15"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4728:2:15","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4769:9:15"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4784:6:15"},{"name":"_2","nodeType":"YulIdentifier","src":"4792:2:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4780:3:15"},"nodeType":"YulFunctionCall","src":"4780:15:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4762:6:15"},"nodeType":"YulFunctionCall","src":"4762:34:15"},"nodeType":"YulExpressionStatement","src":"4762:34:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4816:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"4827:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4812:3:15"},"nodeType":"YulFunctionCall","src":"4812:18:15"},{"name":"value1","nodeType":"YulIdentifier","src":"4832:6:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4805:6:15"},"nodeType":"YulFunctionCall","src":"4805:34:15"},"nodeType":"YulExpressionStatement","src":"4805:34:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4859:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"4870:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4855:3:15"},"nodeType":"YulFunctionCall","src":"4855:18:15"},{"name":"value2","nodeType":"YulIdentifier","src":"4875:6:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4848:6:15"},"nodeType":"YulFunctionCall","src":"4848:34:15"},"nodeType":"YulExpressionStatement","src":"4848:34:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4902:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"4913:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4898:3:15"},"nodeType":"YulFunctionCall","src":"4898:18:15"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4922:6:15"},{"name":"_2","nodeType":"YulIdentifier","src":"4930:2:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4918:3:15"},"nodeType":"YulFunctionCall","src":"4918:15:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4891:6:15"},"nodeType":"YulFunctionCall","src":"4891:43:15"},"nodeType":"YulExpressionStatement","src":"4891:43:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4954:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"4965:3:15","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4950:3:15"},"nodeType":"YulFunctionCall","src":"4950:19:15"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4975:6:15"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4987:3:15","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4992:10:15","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4983:3:15"},"nodeType":"YulFunctionCall","src":"4983:20:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4971:3:15"},"nodeType":"YulFunctionCall","src":"4971:33:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4943:6:15"},"nodeType":"YulFunctionCall","src":"4943:62:15"},"nodeType":"YulExpressionStatement","src":"4943:62:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5025:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"5036:3:15","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5021:3:15"},"nodeType":"YulFunctionCall","src":"5021:19:15"},{"name":"value5","nodeType":"YulIdentifier","src":"5042:6:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5014:6:15"},"nodeType":"YulFunctionCall","src":"5014:35:15"},"nodeType":"YulExpressionStatement","src":"5014:35:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5069:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"5080:3:15","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5065:3:15"},"nodeType":"YulFunctionCall","src":"5065:19:15"},{"name":"value6","nodeType":"YulIdentifier","src":"5086:6:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5058:6:15"},"nodeType":"YulFunctionCall","src":"5058:35:15"},"nodeType":"YulExpressionStatement","src":"5058:35:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5113:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"5124:3:15","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5109:3:15"},"nodeType":"YulFunctionCall","src":"5109:19:15"},{"name":"_1","nodeType":"YulIdentifier","src":"5130:2:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5102:6:15"},"nodeType":"YulFunctionCall","src":"5102:31:15"},"nodeType":"YulExpressionStatement","src":"5102:31:15"},{"nodeType":"YulAssignment","src":"5142:52:15","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"5167:6:15"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5179:9:15"},{"name":"_1","nodeType":"YulIdentifier","src":"5190:2:15"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5175:3:15"},"nodeType":"YulFunctionCall","src":"5175:18:15"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5150:16:15"},"nodeType":"YulFunctionCall","src":"5150:44:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5142:4:15"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4605:9:15","type":""},{"name":"value7","nodeType":"YulTypedName","src":"4616:6:15","type":""},{"name":"value6","nodeType":"YulTypedName","src":"4624:6:15","type":""},{"name":"value5","nodeType":"YulTypedName","src":"4632:6:15","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4640:6:15","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4648:6:15","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4656:6:15","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4664:6:15","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4672:6:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4683:4:15","type":""}],"src":"4379:821:15"},{"body":{"nodeType":"YulBlock","src":"5243:171:15","statements":[{"body":{"nodeType":"YulBlock","src":"5274:111:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5295:1:15","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5302:3:15","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5307:10:15","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5298:3:15"},"nodeType":"YulFunctionCall","src":"5298:20:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5288:6:15"},"nodeType":"YulFunctionCall","src":"5288:31:15"},"nodeType":"YulExpressionStatement","src":"5288:31:15"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5339:1:15","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5342:4:15","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5332:6:15"},"nodeType":"YulFunctionCall","src":"5332:15:15"},"nodeType":"YulExpressionStatement","src":"5332:15:15"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5367:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5370:4:15","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5360:6:15"},"nodeType":"YulFunctionCall","src":"5360:15:15"},"nodeType":"YulExpressionStatement","src":"5360:15:15"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5263:1:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5256:6:15"},"nodeType":"YulFunctionCall","src":"5256:9:15"},"nodeType":"YulIf","src":"5253:132:15"},{"nodeType":"YulAssignment","src":"5394:14:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5403:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"5406:1:15"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"5399:3:15"},"nodeType":"YulFunctionCall","src":"5399:9:15"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5394:1:15"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5228:1:15","type":""},{"name":"y","nodeType":"YulTypedName","src":"5231:1:15","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"5237:1:15","type":""}],"src":"5205:209:15"},{"body":{"nodeType":"YulBlock","src":"5468:79:15","statements":[{"nodeType":"YulAssignment","src":"5478:17:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5490:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"5493:1:15"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5486:3:15"},"nodeType":"YulFunctionCall","src":"5486:9:15"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"5478:4:15"}]},{"body":{"nodeType":"YulBlock","src":"5519:22:15","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5521:16:15"},"nodeType":"YulFunctionCall","src":"5521:18:15"},"nodeType":"YulExpressionStatement","src":"5521:18:15"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"5510:4:15"},{"name":"x","nodeType":"YulIdentifier","src":"5516:1:15"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5507:2:15"},"nodeType":"YulFunctionCall","src":"5507:11:15"},"nodeType":"YulIf","src":"5504:37:15"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5450:1:15","type":""},{"name":"y","nodeType":"YulTypedName","src":"5453:1:15","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"5459:4:15","type":""}],"src":"5419:128:15"},{"body":{"nodeType":"YulBlock","src":"5722:147:15","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5739:3:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5752:2:15","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"5756:6:15"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5748:3:15"},"nodeType":"YulFunctionCall","src":"5748:15:15"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5769:26:15","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5765:3:15"},"nodeType":"YulFunctionCall","src":"5765:31:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5744:3:15"},"nodeType":"YulFunctionCall","src":"5744:53:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5732:6:15"},"nodeType":"YulFunctionCall","src":"5732:66:15"},"nodeType":"YulExpressionStatement","src":"5732:66:15"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5818:3:15"},{"kind":"number","nodeType":"YulLiteral","src":"5823:2:15","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5814:3:15"},"nodeType":"YulFunctionCall","src":"5814:12:15"},{"name":"value1","nodeType":"YulIdentifier","src":"5828:6:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5807:6:15"},"nodeType":"YulFunctionCall","src":"5807:28:15"},"nodeType":"YulExpressionStatement","src":"5807:28:15"},{"nodeType":"YulAssignment","src":"5844:19:15","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5855:3:15"},{"kind":"number","nodeType":"YulLiteral","src":"5860:2:15","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5851:3:15"},"nodeType":"YulFunctionCall","src":"5851:12:15"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5844:3:15"}]}]},"name":"abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5690:3:15","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5695:6:15","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5703:6:15","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5714:3:15","type":""}],"src":"5552:317:15"},{"body":{"nodeType":"YulBlock","src":"6049:210:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6066:9:15"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6081:6:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6097:3:15","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6102:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6093:3:15"},"nodeType":"YulFunctionCall","src":"6093:11:15"},{"kind":"number","nodeType":"YulLiteral","src":"6106:1:15","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6089:3:15"},"nodeType":"YulFunctionCall","src":"6089:19:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6077:3:15"},"nodeType":"YulFunctionCall","src":"6077:32:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6059:6:15"},"nodeType":"YulFunctionCall","src":"6059:51:15"},"nodeType":"YulExpressionStatement","src":"6059:51:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6130:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"6141:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6126:3:15"},"nodeType":"YulFunctionCall","src":"6126:18:15"},{"name":"value1","nodeType":"YulIdentifier","src":"6146:6:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6119:6:15"},"nodeType":"YulFunctionCall","src":"6119:34:15"},"nodeType":"YulExpressionStatement","src":"6119:34:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6173:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"6184:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6169:3:15"},"nodeType":"YulFunctionCall","src":"6169:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"6189:2:15","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6162:6:15"},"nodeType":"YulFunctionCall","src":"6162:30:15"},"nodeType":"YulExpressionStatement","src":"6162:30:15"},{"nodeType":"YulAssignment","src":"6201:52:15","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6226:6:15"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6238:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"6249:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6234:3:15"},"nodeType":"YulFunctionCall","src":"6234:18:15"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6209:16:15"},"nodeType":"YulFunctionCall","src":"6209:44:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6201:4:15"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6002:9:15","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6013:6:15","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6021:6:15","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6029:6:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6040:4:15","type":""}],"src":"5874:385:15"},{"body":{"nodeType":"YulBlock","src":"6438:225:15","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6455:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"6466:2:15","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6448:6:15"},"nodeType":"YulFunctionCall","src":"6448:21:15"},"nodeType":"YulExpressionStatement","src":"6448:21:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6489:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"6500:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6485:3:15"},"nodeType":"YulFunctionCall","src":"6485:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"6505:2:15","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6478:6:15"},"nodeType":"YulFunctionCall","src":"6478:30:15"},"nodeType":"YulExpressionStatement","src":"6478:30:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6528:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"6539:2:15","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6524:3:15"},"nodeType":"YulFunctionCall","src":"6524:18:15"},{"hexValue":"756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261","kind":"string","nodeType":"YulLiteral","src":"6544:34:15","type":"","value":"unable to transferAndCall to ora"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6517:6:15"},"nodeType":"YulFunctionCall","src":"6517:62:15"},"nodeType":"YulExpressionStatement","src":"6517:62:15"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6599:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"6610:2:15","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6595:3:15"},"nodeType":"YulFunctionCall","src":"6595:18:15"},{"hexValue":"636c65","kind":"string","nodeType":"YulLiteral","src":"6615:5:15","type":"","value":"cle"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6588:6:15"},"nodeType":"YulFunctionCall","src":"6588:33:15"},"nodeType":"YulExpressionStatement","src":"6588:33:15"},{"nodeType":"YulAssignment","src":"6630:27:15","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6642:9:15"},{"kind":"number","nodeType":"YulLiteral","src":"6653:3:15","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6638:3:15"},"nodeType":"YulFunctionCall","src":"6638:19:15"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6630:4:15"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6415:9:15","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6429:4:15","type":""}],"src":"6264:399:15"},{"body":{"nodeType":"YulBlock","src":"6720:116:15","statements":[{"nodeType":"YulAssignment","src":"6730:20:15","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6745:1:15"},{"name":"y","nodeType":"YulIdentifier","src":"6748:1:15"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6741:3:15"},"nodeType":"YulFunctionCall","src":"6741:9:15"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"6730:7:15"}]},{"body":{"nodeType":"YulBlock","src":"6808:22:15","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6810:16:15"},"nodeType":"YulFunctionCall","src":"6810:18:15"},"nodeType":"YulExpressionStatement","src":"6810:18:15"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6779:1:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6772:6:15"},"nodeType":"YulFunctionCall","src":"6772:9:15"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6786:1:15"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"6793:7:15"},{"name":"x","nodeType":"YulIdentifier","src":"6802:1:15"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6789:3:15"},"nodeType":"YulFunctionCall","src":"6789:15:15"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6783:2:15"},"nodeType":"YulFunctionCall","src":"6783:22:15"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"6769:2:15"},"nodeType":"YulFunctionCall","src":"6769:37:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6762:6:15"},"nodeType":"YulFunctionCall","src":"6762:45:15"},"nodeType":"YulIf","src":"6759:71:15"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6699:1:15","type":""},{"name":"y","nodeType":"YulTypedName","src":"6702:1:15","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"6708:7:15","type":""}],"src":"6668:168:15"},{"body":{"nodeType":"YulBlock","src":"6905:358:15","statements":[{"nodeType":"YulVariableDeclaration","src":"6915:16:15","value":{"kind":"number","nodeType":"YulLiteral","src":"6930:1:15","type":"","value":"1"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"6919:7:15","type":""}]},{"nodeType":"YulAssignment","src":"6940:16:15","value":{"name":"power_1","nodeType":"YulIdentifier","src":"6949:7:15"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"6940:5:15"}]},{"nodeType":"YulAssignment","src":"6965:13:15","value":{"name":"_base","nodeType":"YulIdentifier","src":"6973:5:15"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"6965:4:15"}]},{"body":{"nodeType":"YulBlock","src":"7029:228:15","statements":[{"body":{"nodeType":"YulBlock","src":"7074:22:15","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7076:16:15"},"nodeType":"YulFunctionCall","src":"7076:18:15"},"nodeType":"YulExpressionStatement","src":"7076:18:15"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"7049:4:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7063:1:15","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7059:3:15"},"nodeType":"YulFunctionCall","src":"7059:6:15"},{"name":"base","nodeType":"YulIdentifier","src":"7067:4:15"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7055:3:15"},"nodeType":"YulFunctionCall","src":"7055:17:15"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7046:2:15"},"nodeType":"YulFunctionCall","src":"7046:27:15"},"nodeType":"YulIf","src":"7043:53:15"},{"body":{"nodeType":"YulBlock","src":"7135:29:15","statements":[{"nodeType":"YulAssignment","src":"7137:25:15","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"7150:5:15"},{"name":"base","nodeType":"YulIdentifier","src":"7157:4:15"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7146:3:15"},"nodeType":"YulFunctionCall","src":"7146:16:15"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7137:5:15"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"7116:8:15"},{"name":"power_1","nodeType":"YulIdentifier","src":"7126:7:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7112:3:15"},"nodeType":"YulFunctionCall","src":"7112:22:15"},"nodeType":"YulIf","src":"7109:55:15"},{"nodeType":"YulAssignment","src":"7177:23:15","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"7189:4:15"},{"name":"base","nodeType":"YulIdentifier","src":"7195:4:15"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7185:3:15"},"nodeType":"YulFunctionCall","src":"7185:15:15"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"7177:4:15"}]},{"nodeType":"YulAssignment","src":"7213:34:15","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"7229:7:15"},{"name":"exponent","nodeType":"YulIdentifier","src":"7238:8:15"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7225:3:15"},"nodeType":"YulFunctionCall","src":"7225:22:15"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"7213:8:15"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"6998:8:15"},{"name":"power_1","nodeType":"YulIdentifier","src":"7008:7:15"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6995:2:15"},"nodeType":"YulFunctionCall","src":"6995:21:15"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7017:3:15","statements":[]},"pre":{"nodeType":"YulBlock","src":"6991:3:15","statements":[]},"src":"6987:270:15"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nodeType":"YulTypedName","src":"6869:5:15","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"6876:8:15","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"6889:5:15","type":""},{"name":"base","nodeType":"YulTypedName","src":"6896:4:15","type":""}],"src":"6841:422:15"},{"body":{"nodeType":"YulBlock","src":"7327:747:15","statements":[{"body":{"nodeType":"YulBlock","src":"7365:52:15","statements":[{"nodeType":"YulAssignment","src":"7379:10:15","value":{"kind":"number","nodeType":"YulLiteral","src":"7388:1:15","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7379:5:15"}]},{"nodeType":"YulLeave","src":"7402:5:15"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"7347:8:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7340:6:15"},"nodeType":"YulFunctionCall","src":"7340:16:15"},"nodeType":"YulIf","src":"7337:80:15"},{"body":{"nodeType":"YulBlock","src":"7450:52:15","statements":[{"nodeType":"YulAssignment","src":"7464:10:15","value":{"kind":"number","nodeType":"YulLiteral","src":"7473:1:15","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7464:5:15"}]},{"nodeType":"YulLeave","src":"7487:5:15"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"7436:4:15"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7429:6:15"},"nodeType":"YulFunctionCall","src":"7429:12:15"},"nodeType":"YulIf","src":"7426:76:15"},{"cases":[{"body":{"nodeType":"YulBlock","src":"7538:52:15","statements":[{"nodeType":"YulAssignment","src":"7552:10:15","value":{"kind":"number","nodeType":"YulLiteral","src":"7561:1:15","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7552:5:15"}]},{"nodeType":"YulLeave","src":"7575:5:15"}]},"nodeType":"YulCase","src":"7531:59:15","value":{"kind":"number","nodeType":"YulLiteral","src":"7536:1:15","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"7606:123:15","statements":[{"body":{"nodeType":"YulBlock","src":"7641:22:15","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7643:16:15"},"nodeType":"YulFunctionCall","src":"7643:18:15"},"nodeType":"YulExpressionStatement","src":"7643:18:15"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"7626:8:15"},{"kind":"number","nodeType":"YulLiteral","src":"7636:3:15","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7623:2:15"},"nodeType":"YulFunctionCall","src":"7623:17:15"},"nodeType":"YulIf","src":"7620:43:15"},{"nodeType":"YulAssignment","src":"7676:25:15","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"7689:8:15"},{"kind":"number","nodeType":"YulLiteral","src":"7699:1:15","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7685:3:15"},"nodeType":"YulFunctionCall","src":"7685:16:15"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7676:5:15"}]},{"nodeType":"YulLeave","src":"7714:5:15"}]},"nodeType":"YulCase","src":"7599:130:15","value":{"kind":"number","nodeType":"YulLiteral","src":"7604:1:15","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"7518:4:15"},"nodeType":"YulSwitch","src":"7511:218:15"},{"body":{"nodeType":"YulBlock","src":"7827:70:15","statements":[{"nodeType":"YulAssignment","src":"7841:28:15","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"7854:4:15"},{"name":"exponent","nodeType":"YulIdentifier","src":"7860:8:15"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"7850:3:15"},"nodeType":"YulFunctionCall","src":"7850:19:15"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7841:5:15"}]},{"nodeType":"YulLeave","src":"7882:5:15"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"7751:4:15"},{"kind":"number","nodeType":"YulLiteral","src":"7757:2:15","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7748:2:15"},"nodeType":"YulFunctionCall","src":"7748:12:15"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"7765:8:15"},{"kind":"number","nodeType":"YulLiteral","src":"7775:2:15","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7762:2:15"},"nodeType":"YulFunctionCall","src":"7762:16:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7744:3:15"},"nodeType":"YulFunctionCall","src":"7744:35:15"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"7788:4:15"},{"kind":"number","nodeType":"YulLiteral","src":"7794:3:15","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7785:2:15"},"nodeType":"YulFunctionCall","src":"7785:13:15"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"7803:8:15"},{"kind":"number","nodeType":"YulLiteral","src":"7813:2:15","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7800:2:15"},"nodeType":"YulFunctionCall","src":"7800:16:15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7781:3:15"},"nodeType":"YulFunctionCall","src":"7781:36:15"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7741:2:15"},"nodeType":"YulFunctionCall","src":"7741:77:15"},"nodeType":"YulIf","src":"7738:159:15"},{"nodeType":"YulVariableDeclaration","src":"7906:57:15","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"7948:4:15"},{"name":"exponent","nodeType":"YulIdentifier","src":"7954:8:15"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"7929:18:15"},"nodeType":"YulFunctionCall","src":"7929:34:15"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"7910:7:15","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"7919:6:15","type":""}]},{"body":{"nodeType":"YulBlock","src":"8008:22:15","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8010:16:15"},"nodeType":"YulFunctionCall","src":"8010:18:15"},"nodeType":"YulExpressionStatement","src":"8010:18:15"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"7978:7:15"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7995:1:15","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7991:3:15"},"nodeType":"YulFunctionCall","src":"7991:6:15"},{"name":"base_1","nodeType":"YulIdentifier","src":"7999:6:15"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7987:3:15"},"nodeType":"YulFunctionCall","src":"7987:19:15"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7975:2:15"},"nodeType":"YulFunctionCall","src":"7975:32:15"},"nodeType":"YulIf","src":"7972:58:15"},{"nodeType":"YulAssignment","src":"8039:29:15","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"8052:7:15"},{"name":"base_1","nodeType":"YulIdentifier","src":"8061:6:15"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8048:3:15"},"nodeType":"YulFunctionCall","src":"8048:20:15"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8039:5:15"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"7298:4:15","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"7304:8:15","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"7317:5:15","type":""}],"src":"7268:806:15"},{"body":{"nodeType":"YulBlock","src":"8149:61:15","statements":[{"nodeType":"YulAssignment","src":"8159:45:15","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"8189:4:15"},{"name":"exponent","nodeType":"YulIdentifier","src":"8195:8:15"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"8168:20:15"},"nodeType":"YulFunctionCall","src":"8168:36:15"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8159:5:15"}]}]},"name":"checked_exp_t_uint256_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"8120:4:15","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"8126:8:15","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"8139:5:15","type":""}],"src":"8079:131:15"}]},"contents":"{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"Source must be the oracle of the\")\n mstore(add(headStart, 96), \" request\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0ff46bbb058c6b1431d73c360a5974025321b7ff6f532fcd8fc819bb0d10498c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Must be proposed owner\")\n tail := add(headStart, 96)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_8e1f7009e5aca473fdde21442dae29568050b67581f4b146dca8997db684dff1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Unable to transfer\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3bfd5788f2773712a5315b58174111e9db21853c8f7d7554f565be615cce78d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Only callable by owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3012c42c6ebc769df901053b800579e25c59d0072411860a37a10b5e66ce5e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Cannot transfer to self\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 256\n let _2 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _2))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, shl(224, 0xffffffff)))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), _1)\n tail := abi_encode_bytes(value7, add(headStart, _1))\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := mod(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), value1)\n end := add(pos, 52)\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"unable to transferAndCall to ora\")\n mstore(add(headStart, 96), \"cle\")\n tail := add(headStart, 128)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function checked_exp_helper(_base, exponent) -> power, base\n {\n let power_1 := 1\n power := power_1\n base := _base\n for { } gt(exponent, power_1) { }\n {\n if gt(base, div(not(0), base)) { panic_error_0x11() }\n if and(exponent, power_1) { power := mul(power, base) }\n base := mul(base, base)\n exponent := shr(power_1, exponent)\n }\n }\n function checked_exp_unsigned(base, exponent) -> power\n {\n if iszero(exponent)\n {\n power := 1\n leave\n }\n if iszero(base)\n {\n power := 0\n leave\n }\n switch base\n case 1 {\n power := 1\n leave\n }\n case 2 {\n if gt(exponent, 255) { panic_error_0x11() }\n power := shl(exponent, 1)\n leave\n }\n if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n {\n power := exp(base, exponent)\n leave\n }\n let power_1, base_1 := checked_exp_helper(base, exponent)\n if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n power := mul(power_1, base_1)\n }\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power\n {\n power := checked_exp_unsigned(base, exponent)\n }\n}","id":15,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100f05780638dc654a214610101578063df78abe614610109578063f2fde38b1461011257600080fd5b806338af3eed1461008d5780634357855e146100bd57806350ed6a95146100d257806379ba5097146100e8575b600080fd5b600b546100a0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d06100cb366004610cb0565b610125565b005b6100da610227565b6040519081526020016100b4565b6100d06102d3565b6006546001600160a01b03166100a0565b6100d0610381565b6100da60085481565b6100d0610120366004610cd2565b6104cc565b60008281526005602052604090205482906001600160a01b031633146101a35760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084015b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c08360405161021891815260200190565b60405180910390a25060085550565b60008061023e60095430634357855e60e01b6104dd565b90506102806040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c8152602001610f78604c9139839190610502565b6102c1604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001610fc4602f9139839190610502565b6102cd81600a54610525565b91505090565b6007546001600160a01b031633146103265760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161019a565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b610389610548565b600061039d6002546001600160a01b031690565b600b546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156103f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104199190610d02565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610464573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104889190610d1b565b6104c95760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161019a565b50565b6104d4610548565b6104c98161059d565b6104e5610c75565b6104ed610c75565b6104f981868686610647565b95945050505050565b6080830151610511908361068d565b6080830151610520908261068d565b505050565b60035460009061053f906001600160a01b031684846106a4565b90505b92915050565b6006546001600160a01b0316331461059b5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161019a565b565b336001600160a01b038216036105f55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161019a565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b61064f610c75565b61065f8560800151610100610737565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b61069a826003835161079c565b61052082826108b1565b6004546000906106b5816001610d53565b600455835160408086015160808701515191516000936320214ca360e11b936106ed9386938493923092918a91600191602401610dac565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061072d868386846108d8565b9695505050505050565b604080518082019091526060815260006020820152610757602083610e14565b1561077f57610767602083610e14565b610772906020610e36565b61077c9083610d53565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116107c7576107c18360e0600585901b168317610a36565b50505050565b60ff8167ffffffffffffffff1611610805576107ee836018611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166001610a5b565b61ffff8167ffffffffffffffff16116108445761082d836019611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166002610a5b565b63ffffffff8167ffffffffffffffff16116108855761086e83601a611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166004610a5b565b61089a83601b611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166008610a5b565b60408051808201909152606081526000602082015261053f83846000015151848551610a81565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea09061099b90889087908790600401610e49565b6020604051808303816000875af11580156109ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109de9190610d1b565b6106855760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161019a565b60408051808201909152606081526000602082015261053f8384600001515184610b6b565b604080518082019091526060815260006020820152610685848560000151518585610bc6565b6040805180820190915260608152600060208201528251821115610aa457600080fd5b6020850151610ab38386610d53565b1115610ae657610ae685610ad687602001518786610ad19190610d53565b610c47565b610ae1906002610e70565b610c5e565b600080865180518760208301019350808887011115610b055787860182525b505050602084015b60208410610b455780518252610b24602083610d53565b9150610b31602082610d53565b9050610b3e602085610e36565b9350610b0d565b51815160001960208690036101000a019081169019919091161790525083949350505050565b60408051808201909152606081526000602082015283602001518310610ba057610ba08485602001516002610ae19190610e70565b8351805160208583010184815350808503610bbc576001810182525b5093949350505050565b6040805180820190915260608152600060208201526020850151610bea8584610d53565b1115610bfe57610bfe85610ad68685610d53565b60006001610c0e84610100610f6b565b610c189190610e36565b9050855183868201018583198251161781525080518487011115610c3c5783860181525b509495945050505050565b600081831115610c58575081610542565b50919050565b8151610c6a8383610737565b506107c183826108b1565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b60008060408385031215610cc357600080fd5b50508035926020909101359150565b600060208284031215610ce457600080fd5b81356001600160a01b0381168114610cfb57600080fd5b9392505050565b600060208284031215610d1457600080fd5b5051919050565b600060208284031215610d2d57600080fd5b81518015158114610cfb57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561054257610542610d3d565b6000815180845260005b81811015610d8c57602081850181015186830182015201610d70565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e08201819052600090610e0583820185610d66565b9b9a5050505050505050505050565b600082610e3157634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111561054257610542610d3d565b60018060a01b03841681528260208201526060604082015260006104f96060830184610d66565b808202811582820484141761054257610542610d3d565b600181815b80851115610ec2578160001904821115610ea857610ea8610d3d565b80851615610eb557918102915b93841c9390800290610e8c565b509250929050565b600082610ed957506001610542565b81610ee657506000610542565b8160018114610efc5760028114610f0657610f22565b6001915050610542565b60ff841115610f1757610f17610d3d565b50506001821b610542565b5060208310610133831016604e8410600b8410161715610f45575081810a610542565b610f4f8383610e87565b8060001904821115610f6357610f63610d3d565b029392505050565b600061053f8383610eca56fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a2646970667358221220a3440c4d48dbf505db52796c147907ce3a7151a8aaf08cb7456bc83a86c3b9d964736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xF0 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xDF78ABE6 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x38AF3EED EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x4357855E EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0x50ED6A95 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xE8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD PUSH2 0xA0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD0 PUSH2 0xCB CALLDATASIZE PUSH1 0x4 PUSH2 0xCB0 JUMP JUMPDEST PUSH2 0x125 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDA PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB4 JUMP JUMPDEST PUSH2 0xD0 PUSH2 0x2D3 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA0 JUMP JUMPDEST PUSH2 0xD0 PUSH2 0x381 JUMP JUMPDEST PUSH2 0xDA PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xD0 PUSH2 0x120 CALLDATASIZE PUSH1 0x4 PUSH2 0xCD2 JUMP JUMPDEST PUSH2 0x4CC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 DUP3 PUSH32 0x9721E7802F825C56833DB455A0081C7DD8C7DA03ED285E582C2AF90DD7D442C0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x218 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x8 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x23E PUSH1 0x9 SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x4DD JUMP JUMPDEST SWAP1 POP PUSH2 0x280 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x19D95D PUSH1 0xEA SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF78 PUSH1 0x4C SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x502 JUMP JUMPDEST PUSH2 0x2C1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0xE0C2E8D PUSH1 0xE3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFC4 PUSH1 0x2F SWAP2 CODECOPY DUP4 SWAP2 SWAP1 PUSH2 0x502 JUMP JUMPDEST PUSH2 0x2CD DUP2 PUSH1 0xA SLOAD PUSH2 0x525 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x326 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x26BAB9BA10313290383937B837B9B2B21037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x19A JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP3 AND CALLER SWAP1 DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x389 PUSH2 0x548 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39D PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 SWAP2 SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3F5 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 0x419 SWAP2 SWAP1 PUSH2 0xD02 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x464 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 0x488 SWAP2 SWAP1 PUSH2 0xD1B JUMP JUMPDEST PUSH2 0x4C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x2AB730B13632903A37903A3930B739B332B9 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x19A JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x4D4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x4C9 DUP2 PUSH2 0x59D JUMP JUMPDEST PUSH2 0x4E5 PUSH2 0xC75 JUMP JUMPDEST PUSH2 0x4ED PUSH2 0xC75 JUMP JUMPDEST PUSH2 0x4F9 DUP2 DUP7 DUP7 DUP7 PUSH2 0x647 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x511 SWAP1 DUP4 PUSH2 0x68D JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x520 SWAP1 DUP3 PUSH2 0x68D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x53F SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x59B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x27B7363C9031B0B63630B1363290313C9037BBB732B9 PUSH1 0x51 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x19A JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x5F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207472616E7366657220746F2073656C66000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x19A JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 AND SWAP1 PUSH32 0xED8889F560326EB138920D842192F0EB3DD22B4F139C87A2C57538E05BAE1278 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x64F PUSH2 0xC75 JUMP JUMPDEST PUSH2 0x65F DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x737 JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x69A DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x79C JUMP JUMPDEST PUSH2 0x520 DUP3 DUP3 PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x6B5 DUP2 PUSH1 0x1 PUSH2 0xD53 JUMP JUMPDEST PUSH1 0x4 SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0x6ED SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0x72D DUP7 DUP4 DUP7 DUP5 PUSH2 0x8D8 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x757 PUSH1 0x20 DUP4 PUSH2 0xE14 JUMP JUMPDEST ISZERO PUSH2 0x77F JUMPI PUSH2 0x767 PUSH1 0x20 DUP4 PUSH2 0xE14 JUMP JUMPDEST PUSH2 0x772 SWAP1 PUSH1 0x20 PUSH2 0xE36 JUMP JUMPDEST PUSH2 0x77C SWAP1 DUP4 PUSH2 0xD53 JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x7C7 JUMPI PUSH2 0x7C1 DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0xA36 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x805 JUMPI PUSH2 0x7EE DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xA36 JUMP JUMPDEST POP PUSH2 0x7C1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0xA5B JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x844 JUMPI PUSH2 0x82D DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xA36 JUMP JUMPDEST POP PUSH2 0x7C1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0xA5B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x885 JUMPI PUSH2 0x86E DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xA36 JUMP JUMPDEST POP PUSH2 0x7C1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0xA5B JUMP JUMPDEST PUSH2 0x89A DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0xA36 JUMP JUMPDEST POP PUSH2 0x7C1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0xA5B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x53F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0x99B SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xE49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9BA 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 0x9DE SWAP2 SWAP1 PUSH2 0xD1B JUMP JUMPDEST PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x19A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x53F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0xB6B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x685 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0xAA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0xAB3 DUP4 DUP7 PUSH2 0xD53 JUMP JUMPDEST GT ISZERO PUSH2 0xAE6 JUMPI PUSH2 0xAE6 DUP6 PUSH2 0xAD6 DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0xAD1 SWAP2 SWAP1 PUSH2 0xD53 JUMP JUMPDEST PUSH2 0xC47 JUMP JUMPDEST PUSH2 0xAE1 SWAP1 PUSH1 0x2 PUSH2 0xE70 JUMP JUMPDEST PUSH2 0xC5E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0xB05 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0xB45 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0xB24 PUSH1 0x20 DUP4 PUSH2 0xD53 JUMP JUMPDEST SWAP2 POP PUSH2 0xB31 PUSH1 0x20 DUP3 PUSH2 0xD53 JUMP JUMPDEST SWAP1 POP PUSH2 0xB3E PUSH1 0x20 DUP6 PUSH2 0xE36 JUMP JUMPDEST SWAP4 POP PUSH2 0xB0D JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0xBA0 JUMPI PUSH2 0xBA0 DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0xAE1 SWAP2 SWAP1 PUSH2 0xE70 JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 SUB PUSH2 0xBBC JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0xBEA DUP6 DUP5 PUSH2 0xD53 JUMP JUMPDEST GT ISZERO PUSH2 0xBFE JUMPI PUSH2 0xBFE DUP6 PUSH2 0xAD6 DUP7 DUP6 PUSH2 0xD53 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0xC0E DUP5 PUSH2 0x100 PUSH2 0xF6B JUMP JUMPDEST PUSH2 0xC18 SWAP2 SWAP1 PUSH2 0xE36 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0xC3C JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0xC58 JUMPI POP DUP2 PUSH2 0x542 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0xC6A DUP4 DUP4 PUSH2 0x737 JUMP JUMPDEST POP PUSH2 0x7C1 DUP4 DUP3 PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xCFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xCFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x542 JUMPI PUSH2 0x542 PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD8C JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xD70 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xE05 DUP4 DUP3 ADD DUP6 PUSH2 0xD66 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE31 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x542 JUMPI PUSH2 0x542 PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4F9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xD66 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x542 JUMPI PUSH2 0x542 PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0xEC2 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0xD3D JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0xEB5 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0xE8C JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xED9 JUMPI POP PUSH1 0x1 PUSH2 0x542 JUMP JUMPDEST DUP2 PUSH2 0xEE6 JUMPI POP PUSH1 0x0 PUSH2 0x542 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xEFC JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xF06 JUMPI PUSH2 0xF22 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x542 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xF17 JUMPI PUSH2 0xF17 PUSH2 0xD3D JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x542 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xF45 JUMPI POP DUP2 DUP2 EXP PUSH2 0x542 JUMP JUMPDEST PUSH2 0xF4F DUP4 DUP4 PUSH2 0xE87 JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF63 PUSH2 0xD3D JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53F DUP4 DUP4 PUSH2 0xECA JUMP INVALID PUSH9 0x747470733A2F2F7465 PUSH20 0x746170692E696F2F6170692F48617964656E2F76 BALANCE 0x2F PUSH2 0x6363 PUSH16 0x756E74732F7075622D39393838373736 CALLDATASIZE CALLDATALOAD CALLDATALOAD CALLVALUE CALLVALUE CALLER CALLER ORIGIN ORIGIN 0x2F PUSH15 0x6574776F726B5265706F7274726F77 0x2C PUSH14 0x657472696356616C7565732C4553 SLOAD 0x49 0x4D COINBASE SLOAD GASLIMIT DIFFICULTY 0x5F GASLIMIT COINBASE MSTORE 0x4E 0x49 0x4E SELFBALANCE MSTORE8 0x2C PUSH14 0x6963726F7356616C7565A2646970 PUSH7 0x7358221220A344 0xC 0x4D BASEFEE 0xDB CREATE2 SDIV 0xDB MSTORE PUSH26 0x6C147907CE3A7151A8AAF08CB7456BC83A86C3B9D964736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"177:2814:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;618:26;;;;;-1:-1:-1;;;;;618:26:14;;;;;;-1:-1:-1;;;;;178:32:15;;;160:51;;148:2;133:18;618:26:14;;;;;;;;2248:331;;;;;;:::i;:::-;;:::i;:::-;;1596:571;;;:::i;:::-;;;621:25:15;;;609:2;594:18;1596:571:14;475:177:15;1016:265:3;;;:::i;1332:81::-;1401:7;;-1:-1:-1;;;;;1401:7:3;1332:81;;2730:259:14;;;:::i;324:22::-;;;;;;826:98:3;;;;;;:::i;:::-;;:::i;2248:331:14:-;11663:28:1;;;;:17;:28;;;;;;;;-1:-1:-1;;;;;11663:28:1;11649:10;:42;11641:95;;;;-1:-1:-1;;;11641:95:1;;1332:2:15;11641:95:1;;;1314:21:15;1371:2;1351:18;;;1344:30;1410:34;1390:18;;;1383:62;-1:-1:-1;;;1461:18:15;;;1454:38;1509:19;;11641:95:1;;;;;;;;;11749:28;;;;:17;:28;;;;;;11742:35;;-1:-1:-1;;;;;;11742:35:1;;;11788:29;11767:9;;11788:29;;;2401:10:14::1;2386:36;2413:8;2386:36;;;;621:25:15::0;;609:2;594:18;;475:177;2386:36:14::1;;;;;;;;-1:-1:-1::0;2554:7:14::1;:18:::0;-1:-1:-1;2248:331:14:o;1596:571::-;1642:17;1671:28;1702:112;1737:5;;1764:4;1783:21;;;1702;:112::i;:::-;1671:143;;1878:128;;;;;;;;;;;;;;-1:-1:-1;;;1878:128:14;;;;;;;;;;;;;;;;;;;;:3;;:128;:7;:128::i;:::-;2017:66;;;;;;;;;;;;;;-1:-1:-1;;;2017:66:14;;;;;;;;;;;;;;;;;;;;:3;;:66;:7;:66::i;:::-;2130:30;2151:3;2156;;2130:20;:30::i;:::-;2123:37;;;1596:571;:::o;1016:265:3:-;1089:14;;-1:-1:-1;;;;;1089:14:3;1075:10;:28;1067:63;;;;-1:-1:-1;;;1067:63:3;;1741:2:15;1067:63:3;;;1723:21:15;1780:2;1760:18;;;1753:30;-1:-1:-1;;;1799:18:15;;;1792:52;1861:18;;1067:63:3;1539:346:15;1067:63:3;1156:7;;;-1:-1:-1;;;;;;1169:20:3;;;1179:10;1169:20;;;;;;1195:14;:27;;;;;;;1234:42;;-1:-1:-1;;;;;1156:7:3;;;;1179:10;1156:7;;1234:42;;1137:16;;1234:42;1061:220;1016:265::o;2730:259:14:-;1956:20:3;:18;:20::i;:::-;2781:23:14::1;2826;9184:6:1::0;;-1:-1:-1;;;;;9184:6:1;;9098:98;2826:23:14::1;2895:11;::::0;2908:29:::1;::::0;-1:-1:-1;;;2908:29:14;;2931:4:::1;2908:29;::::0;::::1;160:51:15::0;2781:69:14;;-1:-1:-1;;;;;;2881:13:14;;::::1;::::0;::::1;::::0;2895:11;;;::::1;::::0;2881:13;;2908:14:::1;::::0;133:18:15;;2908:29:14::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2881:57;::::0;-1:-1:-1;;;;;;2881:57:14::1;::::0;;;;;;-1:-1:-1;;;;;2271:32:15;;;2881:57:14::1;::::0;::::1;2253:51:15::0;2320:18;;;2313:34;2226:18;;2881:57:14::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2860:122;;;::::0;-1:-1:-1;;;2860:122:14;;2842:2:15;2860:122:14::1;::::0;::::1;2824:21:15::0;2881:2;2861:18;;;2854:30;-1:-1:-1;;;2900:18:15;;;2893:48;2958:18;;2860:122:14::1;2640:342:15::0;2860:122:14::1;2771:218;2730:259::o:0;826:98:3:-;1956:20;:18;:20::i;:::-;897:22:::1;916:2;897:18;:22::i;1850:283:1:-:0;1992:24;;:::i;:::-;2024:28;;:::i;:::-;2065:63;:3;2080:6;2088:12;2102:25;2065:14;:63::i;:::-;2058:70;1850:283;-1:-1:-1;;;;;1850:283:1:o;1951:175:0:-;2061:8;;;;:26;;2083:3;2061:21;:26::i;:::-;2093:8;;;;:28;;2115:5;2093:21;:28::i;:::-;1951:175;;;:::o;2992:177:1:-;3140:8;;3087:7;;3109:55;;-1:-1:-1;;;;;3140:8:1;3151:3;3156:7;3109:22;:55::i;:::-;3102:62;;2992:177;;;;;:::o;1730:111:3:-;1802:7;;-1:-1:-1;;;;;1802:7:3;1788:10;:21;1780:56;;;;-1:-1:-1;;;1780:56:3;;3189:2:15;1780:56:3;;;3171:21:15;3228:2;3208:18;;;3201:30;-1:-1:-1;;;3247:18:15;;;3240:52;3309:18;;1780:56:3;2987:346:15;1780:56:3;1730:111::o;1497:188::-;1565:10;-1:-1:-1;;;;;1559:16:3;;;1551:52;;;;-1:-1:-1;;;1551:52:3;;3540:2:15;1551:52:3;;;3522:21:15;3579:2;3559:18;;;3552:30;3618:25;3598:18;;;3591:53;3661:18;;1551:52:3;3338:347:15;1551:52:3;1610:14;:19;;-1:-1:-1;;;;;;1610:19:3;-1:-1:-1;;;;;1610:19:3;;;;;;;;;1668:7;;1641:39;;1610:19;;1668:7;;1641:39;;-1:-1:-1;;1641:39:3;1497:188;:::o;987:351:0:-;1129:24;;:::i;:::-;1161:49;1182:4;:8;;;361:3;1161:20;:49::i;:::-;-1:-1:-1;;1216:15:0;;;-1:-1:-1;;;;;1237:35:0;;:20;;;:35;-1:-1:-1;;;;;;1278:38:0;;:23;;;:38;1216:4;987:351;;;;;;;:::o;2777:204:12:-;2875:71;2894:3;383:1;2931:5;2925:19;2875:18;:71::i;:::-;2952:24;:3;2969:5;2952:10;:24::i;3687:756:1:-;3864:14;;3823:17;;3901:9;3864:14;3909:1;3901:9;:::i;:::-;3884:14;:26;4245:6;;4280:22;;;;;4350:7;;;;:11;3946:421;;3916:27;;-1:-1:-1;;;3976:48:1;3946:421;;3916:27;;;;4245:6;4267:4;;4280:22;4310:5;;837:1;;3946:421;;;:::i;:::-;;;;-1:-1:-1;;3946:421:1;;;;;;;;;;;;;;-1:-1:-1;;;;;3946:421:1;-1:-1:-1;;;;;;3946:421:1;;;;;;;;;;;-1:-1:-1;4380:58:1;4392:13;4407:5;4414:7;3946:421;4380:11;:58::i;:::-;4373:65;3687:756;-1:-1:-1;;;;;;3687:756:1:o;1001:399:11:-;-1:-1:-1;;;;;;;;;;;;;;;;;1100:13:11;1111:2;1100:8;:13;:::i;:::-;:18;1096:71;;1146:13;1157:2;1146:8;:13;:::i;:::-;1140:20;;:2;:20;:::i;:::-;1128:32;;;;:::i;:::-;;;1096:71;-1:-1:-1;1214:12:11;;;;:23;;;1277:4;1271:11;;1289:16;;;-1:-1:-1;1312:14:11;;1354:18;;;1346:27;1333:41;;1214:12;1001:399::o;682:625:12:-;803:2;794:5;:11;;;791:512;;815:44;:3;837:20;847:1;838:10;;;837:20;;;815:15;:44::i;:::-;;1951:175:0;;;:::o;791:512:12:-;885:4;876:5;:13;;;872:431;;899:41;:3;936:2;922:10;931:1;922:10;;;;921:17;899:15;:41::i;:::-;-1:-1:-1;948:23:12;:3;:23;;;969:1;948:13;:23::i;872:431::-;997:6;988:5;:15;;;984:319;;1013:41;:3;1050:2;1036:10;1045:1;1036:10;;;;1035:17;1013:15;:41::i;:::-;-1:-1:-1;1062:23:12;:3;:23;;;1083:1;1062:13;:23::i;984:319::-;1111:10;1102:5;:19;;;1098:205;;1131:41;:3;1168:2;1154:10;1163:1;1154:10;;;;1153:17;1131:15;:41::i;:::-;-1:-1:-1;1180:23:12;:3;:23;;;1201:1;1180:13;:23::i;1098:205::-;1224:41;:3;1261:2;1247:10;1256:1;1247:10;;;;1246:17;1224:15;:41::i;:::-;-1:-1:-1;1273:23:12;:3;:23;;;1294:1;1273:13;:23::i;4692:155:11:-;-1:-1:-1;;;;;;;;;;;;;;;;;4797:45:11;4803:3;4808;:7;;;:14;4824:4;4830;:11;4797:5;:45::i;6629:430:1:-;6818:29;;-1:-1:-1;;6835:4:1;5752:2:15;5748:15;5744:53;6818:29:1;;;5732:66:15;5814:12;;;5807:28;;;6771:17:1;;5851:12:15;;6818:29:1;;;;;;-1:-1:-1;;6818:29:1;;;;;;6808:40;;6818:29;6808:40;;;;6854:28;;;;:17;:28;;;;;;:44;;-1:-1:-1;;;;;;6854:44:1;-1:-1:-1;;;;;6854:44:1;;;;;6808:40;;-1:-1:-1;6808:40:1;;6909:29;;6854:28;6909:29;6952:6;;:62;;-1:-1:-1;;;6952:62:1;;-1:-1:-1;;;;;6952:6:1;;;;:22;;:62;;6975:13;;6990:7;;6999:14;;6952:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6944:110;;;;-1:-1:-1;;;6944:110:1;;6466:2:15;6944:110:1;;;6448:21:15;6505:2;6485:18;;;6478:30;6544:34;6524:18;;;6517:62;-1:-1:-1;;;6595:18:15;;;6588:33;6638:19;;6944:110:1;6264:399:15;6040:145:11;-1:-1:-1;;;;;;;;;;;;;;;;;6143:37:11;6154:3;6159;:7;;;:14;6175:4;6143:10;:37::i;9894:177::-;-1:-1:-1;;;;;;;;;;;;;;;;;10026:40:11;10035:3;10040;:7;;;:14;10056:4;10062:3;10026:8;:40::i;2745:1210::-;-1:-1:-1;;;;;;;;;;;;;;;;;2903:4:11;:11;2896:3;:18;;2888:27;;;;;;2938:12;;;;2926:9;2932:3;2926;:9;:::i;:::-;:24;2922:90;;;2960:45;2967:3;2972:28;2976:3;:12;;;2996:3;2990;:9;;;;:::i;:::-;2972:3;:28::i;:::-;:32;;3003:1;2972:32;:::i;:::-;2960:6;:45::i;:::-;3018:12;3036:11;3133:3;3127:10;3204:6;3198:13;3320:3;3315:2;3307:6;3303:15;3299:25;3291:33;;3404:6;3398:3;3393;3389:13;3386:25;3383:76;;;3446:3;3441;3437:13;3429:6;3422:29;3383:76;-1:-1:-1;;;3483:2:11;3473:13;;3544:129;3558:2;3551:3;:9;3544:129;;3613:10;;3600:24;;3639:10;3647:2;3607:4;3639:10;:::i;:::-;;-1:-1:-1;3657:9:11;3664:2;3657:9;;:::i;:::-;;-1:-1:-1;3562:9:11;3569:2;3562:9;;:::i;:::-;;;3544:129;;;3807:10;3858:11;;-1:-1:-1;;3747:2:11;:8;;;3741:3;:15;3740:21;3854:22;;;3819:9;;3803:26;;;;3898:21;3885:35;;-1:-1:-1;3947:3:11;2745:1210;;;;;;:::o;5148:639::-;-1:-1:-1;;;;;;;;;;;;;;;;;5283:3:11;:12;;;5276:3;:19;5272:69;;5305:29;5312:3;5317;:12;;;5332:1;5317:16;;;;:::i;5305:29::-;5427:3;5421:10;5498:6;5492:13;5610:2;5604:3;5596:6;5592:16;5588:25;5634:4;5628;5620:19;;5705:6;5700:3;5697:15;5694:67;;5750:1;5742:6;5738:14;5730:6;5723:30;5694:67;-1:-1:-1;5779:3:11;;5148:639;-1:-1:-1;;;;5148:639:11:o;8974:675::-;-1:-1:-1;;;;;;;;;;;;;;;;;9130:12:11;;;;9118:9;9124:3;9118;:9;:::i;:::-;:24;9114:73;;;9152:28;9159:3;9165:9;9171:3;9165;:9;:::i;9152:28::-;9193:12;9221:1;9209:8;9214:3;9209;:8;:::i;:::-;9208:14;;;;:::i;:::-;9193:29;;9308:3;9302:10;9423:3;9417;9409:6;9405:16;9401:26;9479:4;9471;9467:9;9460:4;9454:11;9450:27;9447:37;9441:4;9434:51;;9567:6;9561:13;9555:3;9550;9546:13;9543:32;9540:83;;;9610:3;9605;9601:13;9593:6;9586:29;9540:83;-1:-1:-1;9641:3:11;;8974:675;-1:-1:-1;;;;;8974:675:11:o;1961:124::-;2018:7;2041:1;2037;:5;2033:34;;;-1:-1:-1;2059:1:11;2052:8;;2033:34;-1:-1:-1;2079:1:11;1961:124;-1:-1:-1;1961:124:11:o;1801:156::-;1895:7;;1908:19;1895:3;1918:8;1908:4;:19::i;:::-;;1933;1940:3;1945:6;1933;:19::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;222:248:15:-;290:6;298;351:2;339:9;330:7;326:23;322:32;319:52;;;367:1;364;357:12;319:52;-1:-1:-1;;390:23:15;;;460:2;445:18;;;432:32;;-1:-1:-1;222:248:15:o;839:286::-;898:6;951:2;939:9;930:7;926:23;922:32;919:52;;;967:1;964;957:12;919:52;993:23;;-1:-1:-1;;;;;1045:31:15;;1035:42;;1025:70;;1091:1;1088;1081:12;1025:70;1114:5;839:286;-1:-1:-1;;;839:286:15:o;1890:184::-;1960:6;2013:2;2001:9;1992:7;1988:23;1984:32;1981:52;;;2029:1;2026;2019:12;1981:52;-1:-1:-1;2052:16:15;;1890:184;-1:-1:-1;1890:184:15:o;2358:277::-;2425:6;2478:2;2466:9;2457:7;2453:23;2449:32;2446:52;;;2494:1;2491;2484:12;2446:52;2526:9;2520:16;2579:5;2572:13;2565:21;2558:5;2555:32;2545:60;;2601:1;2598;2591:12;3690:127;3751:10;3746:3;3742:20;3739:1;3732:31;3782:4;3779:1;3772:15;3806:4;3803:1;3796:15;3822:125;3887:9;;;3908:10;;;3905:36;;;3921:18;;:::i;3952:422::-;3993:3;4031:5;4025:12;4058:6;4053:3;4046:19;4083:1;4093:162;4107:6;4104:1;4101:13;4093:162;;;4169:4;4225:13;;;4221:22;;4215:29;4197:11;;;4193:20;;4186:59;4122:12;4093:162;;;4097:3;4300:1;4293:4;4284:6;4279:3;4275:16;4271:27;4264:38;4363:4;4356:2;4352:7;4347:2;4339:6;4335:15;4331:29;4326:3;4322:39;4318:50;4311:57;;;3952:422;;;;:::o;4379:821::-;-1:-1:-1;;;;;4780:15:15;;;4762:34;;4827:2;4812:18;;4805:34;;;4870:2;4855:18;;4848:34;;;4918:15;;4913:2;4898:18;;4891:43;-1:-1:-1;;;;;;4971:33:15;;4965:3;4950:19;;4943:62;4742:3;5021:19;;5014:35;;;5080:3;5065:19;;5058:35;;;4712:3;4987;5109:19;;5102:31;;;4683:4;;5150:44;5175:18;;;5167:6;5150:44;:::i;:::-;5142:52;4379:821;-1:-1:-1;;;;;;;;;;;4379:821:15:o;5205:209::-;5237:1;5263;5253:132;;5307:10;5302:3;5298:20;5295:1;5288:31;5342:4;5339:1;5332:15;5370:4;5367:1;5360:15;5253:132;-1:-1:-1;5399:9:15;;5205:209::o;5419:128::-;5486:9;;;5507:11;;;5504:37;;;5521:18;;:::i;5874:385::-;6106:1;6102;6097:3;6093:11;6089:19;6081:6;6077:32;6066:9;6059:51;6146:6;6141:2;6130:9;6126:18;6119:34;6189:2;6184;6173:9;6169:18;6162:30;6040:4;6209:44;6249:2;6238:9;6234:18;6226:6;6209:44;:::i;6668:168::-;6741:9;;;6772;;6789:15;;;6783:22;;6769:37;6759:71;;6810:18;;:::i;6841:422::-;6930:1;6973:5;6930:1;6987:270;7008:7;6998:8;6995:21;6987:270;;;7067:4;7063:1;7059:6;7055:17;7049:4;7046:27;7043:53;;;7076:18;;:::i;:::-;7126:7;7116:8;7112:22;7109:55;;;7146:16;;;;7109:55;7225:22;;;;7185:15;;;;6987:270;;;6991:3;6841:422;;;;;:::o;7268:806::-;7317:5;7347:8;7337:80;;-1:-1:-1;7388:1:15;7402:5;;7337:80;7436:4;7426:76;;-1:-1:-1;7473:1:15;7487:5;;7426:76;7518:4;7536:1;7531:59;;;;7604:1;7599:130;;;;7511:218;;7531:59;7561:1;7552:10;;7575:5;;;7599:130;7636:3;7626:8;7623:17;7620:43;;;7643:18;;:::i;:::-;-1:-1:-1;;7699:1:15;7685:16;;7714:5;;7511:218;;7813:2;7803:8;7800:16;7794:3;7788:4;7785:13;7781:36;7775:2;7765:8;7762:16;7757:2;7751:4;7748:12;7744:35;7741:77;7738:159;;;-1:-1:-1;7850:19:15;;;7882:5;;7738:159;7929:34;7954:8;7948:4;7929:34;:::i;:::-;7999:6;7995:1;7991:6;7987:19;7978:7;7975:32;7972:58;;;8010:18;;:::i;:::-;8048:20;;7268:806;-1:-1:-1;;;7268:806:15:o;8079:131::-;8139:5;8168:36;8195:8;8189:4;8168:36;:::i"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","beneficiary()":"38af3eed","earning()":"df78abe6","fulfill(bytes32,uint256)":"4357855e","owner()":"8da5cb5b","requestWeekEarning()":"50ed6a95","transferOwnership(address)":"f2fde38b","withdrawLink()":"8dc654a2"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"earning\",\"type\":\"uint256\"}],\"name\":\"RequestEarning\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beneficiary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"earning\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_earning\",\"type\":\"uint256\"}],\"name\":\"fulfill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestWeekEarning\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawLink\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"beneficiary()\":{\"notice\":\"@beneficiary: An 0xSplits contract that has 1 Gnosis contract as Controller of it In this 0xSplits contract will contain the list of charity organizations' addresses\"},\"constructor\":{\"notice\":\"Initialize the link token and target oracle Mumbai Testnet details: Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 jobId: b1d42cd54a3a4200b1f725a68e488888\"},\"fulfill(bytes32,uint256)\":{\"notice\":\"Receive the response in the form of uint256\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"requestWeekEarning()\":{\"notice\":\"Create a Chainlink request to retrieve API response, find the target data, then multiply by 1000000000000000000 (to remove decimal places from data).\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address, pending.\"},\"withdrawLink()\":{\"notice\":\"Allow withdraw of Link tokens from the contract LINK will always be sent to beneficiary 0xSplits contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/AdmodConsumer.sol\":\"AdmodConsumer\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwner.sol\":{\"keccak256\":\"0x99d0b0786fe368970009c703f2249bfbc56340ddf1a28b60d2915bb58c34cd72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0371c1af45db651823b9a3d5af761b08243c78f105166342eee28de356c8dd\",\"dweb:/ipfs/QmPnC9qNDKwJFd5unwLb9pxjrutoe8MWjm5EXHTxq2kJ4x\"]},\"@chainlink/contracts/src/v0.8/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0xa2f137a1d066795aeac76226e58f33c982278cdd34b4f09e5a2243d5a0924654\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a73f185d79d82e6d9baa531d55ffb88c80def1f6187dff93d3df6b2cb5ab7187\",\"dweb:/ipfs/QmVZEePJvcN1KxSTaD5rhKhaMBWHqs6ZeZ5s17Ft6mR5hJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol\":{\"keccak256\":\"0xb8b3a97783dddc198b790c4cec1eda7fb47aa38cbaea6555220d0ed8c735c086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf7ed6aff47fbddeff1b85e1225a717dfa8bfb3ab89db0e6564346afcf03693\",\"dweb:/ipfs/QmQQn5sKn1ARbt1WhYoHwfTJhK8fbQi8MbDQeHxGXTPbPE\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]},\"contracts/AdmodConsumer.sol\":{\"keccak256\":\"0x7be9f328cfdefcacd7b4faaf0cbf37dfa6abfb473e65c92e6357280b4cedfb47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a370900c5c41fce3425443beab4e4cfe8c9cd499a8b51085d6ec61da0b06ed6\",\"dweb:/ipfs/QmWzrA5gKrhjguN8P6JHqcpqBmBhPAaqgojFw4dXrBFVqS\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/contracts/AdmodConsumer.sol/AdmodConsumer.dbg.json b/artifacts/contracts/AdmodConsumer.sol/AdmodConsumer.dbg.json index d3e5291..ee6b470 100644 --- a/artifacts/contracts/AdmodConsumer.sol/AdmodConsumer.dbg.json +++ b/artifacts/contracts/AdmodConsumer.sol/AdmodConsumer.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/ffff62e34f1018458229b74fccd2a227.json" + "buildInfo": "../../build-info/f2eb4e173b43c52d2ccd8f62dc3118c6.json" } diff --git a/artifacts/contracts/AdmodConsumer.sol/AdmodConsumer.json b/artifacts/contracts/AdmodConsumer.sol/AdmodConsumer.json index 43626bf..108e640 100644 --- a/artifacts/contracts/AdmodConsumer.sol/AdmodConsumer.json +++ b/artifacts/contracts/AdmodConsumer.sol/AdmodConsumer.json @@ -96,6 +96,25 @@ "name": "OwnershipTransferred", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "linkAmount", + "type": "uint256" + } + ], + "name": "RequestBoughtAmount", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -148,6 +167,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "earningReports", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -166,6 +204,63 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_requestId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "_linkAmount", + "type": "uint256" + } + ], + "name": "fulfillTransakPrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "ggJobId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isEligible", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "linkAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "owner", @@ -192,6 +287,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "transakJobId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -213,8 +321,8 @@ "type": "function" } ], - "bytecode": "0x608060405260016004553480156200001657600080fd5b506040516200133538038062001335833981016040819052620000399162000276565b818060006001600160a01b038216620000995760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0384811691909117909155811615620000cc57620000cc816200018b565b505050620000f473326c977e6efc84e512bb9c30f76e30c160ed06fb6200023760201b60201c565b600380546001600160a01b03191673aa37473c8d78f0f1c86c9d8aee53e8b896bcb4d51790557f6231643432636435346133613432303062316637323561363865343838383838600955600a62000155670de0b6b3a76400006001620002ae565b620001619190620002da565b600a55600b80546001600160a01b0319166001600160a01b039290921691909117905550620002fd565b336001600160a01b03821603620001e55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000090565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b03811681146200027157600080fd5b919050565b600080604083850312156200028a57600080fd5b620002958362000259565b9150620002a56020840162000259565b90509250929050565b8082028115828204841417620002d457634e487b7160e01b600052601160045260246000fd5b92915050565b600082620002f857634e487b7160e01b600052601260045260246000fd5b500490565b611028806200030d6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100f05780638dc654a214610101578063df78abe614610109578063f2fde38b1461011257600080fd5b806338af3eed1461008d5780634357855e146100bd57806350ed6a95146100d257806379ba5097146100e8575b600080fd5b600b546100a0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d06100cb366004610cb0565b610125565b005b6100da610227565b6040519081526020016100b4565b6100d06102d3565b6006546001600160a01b03166100a0565b6100d0610381565b6100da60085481565b6100d0610120366004610cd2565b6104cc565b60008281526005602052604090205482906001600160a01b031633146101a35760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084015b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c08360405161021891815260200190565b60405180910390a25060085550565b60008061023e60095430634357855e60e01b6104dd565b90506102806040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c8152602001610f78604c9139839190610502565b6102c1604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001610fc4602f9139839190610502565b6102cd81600a54610525565b91505090565b6007546001600160a01b031633146103265760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161019a565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b610389610548565b600061039d6002546001600160a01b031690565b600b546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156103f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104199190610d02565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610464573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104889190610d1b565b6104c95760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161019a565b50565b6104d4610548565b6104c98161059d565b6104e5610c75565b6104ed610c75565b6104f981868686610647565b95945050505050565b6080830151610511908361068d565b6080830151610520908261068d565b505050565b60035460009061053f906001600160a01b031684846106a4565b90505b92915050565b6006546001600160a01b0316331461059b5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161019a565b565b336001600160a01b038216036105f55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161019a565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b61064f610c75565b61065f8560800151610100610737565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b61069a826003835161079c565b61052082826108b1565b6004546000906106b5816001610d53565b600455835160408086015160808701515191516000936320214ca360e11b936106ed9386938493923092918a91600191602401610dac565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061072d868386846108d8565b9695505050505050565b604080518082019091526060815260006020820152610757602083610e14565b1561077f57610767602083610e14565b610772906020610e36565b61077c9083610d53565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116107c7576107c18360e0600585901b168317610a36565b50505050565b60ff8167ffffffffffffffff1611610805576107ee836018611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166001610a5b565b61ffff8167ffffffffffffffff16116108445761082d836019611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166002610a5b565b63ffffffff8167ffffffffffffffff16116108855761086e83601a611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166004610a5b565b61089a83601b611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166008610a5b565b60408051808201909152606081526000602082015261053f83846000015151848551610a81565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea09061099b90889087908790600401610e49565b6020604051808303816000875af11580156109ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109de9190610d1b565b6106855760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161019a565b60408051808201909152606081526000602082015261053f8384600001515184610b6b565b604080518082019091526060815260006020820152610685848560000151518585610bc6565b6040805180820190915260608152600060208201528251821115610aa457600080fd5b6020850151610ab38386610d53565b1115610ae657610ae685610ad687602001518786610ad19190610d53565b610c47565b610ae1906002610e70565b610c5e565b600080865180518760208301019350808887011115610b055787860182525b505050602084015b60208410610b455780518252610b24602083610d53565b9150610b31602082610d53565b9050610b3e602085610e36565b9350610b0d565b51815160001960208690036101000a019081169019919091161790525083949350505050565b60408051808201909152606081526000602082015283602001518310610ba057610ba08485602001516002610ae19190610e70565b8351805160208583010184815350808503610bbc576001810182525b5093949350505050565b6040805180820190915260608152600060208201526020850151610bea8584610d53565b1115610bfe57610bfe85610ad68685610d53565b60006001610c0e84610100610f6b565b610c189190610e36565b9050855183868201018583198251161781525080518487011115610c3c5783860181525b509495945050505050565b600081831115610c58575081610542565b50919050565b8151610c6a8383610737565b506107c183826108b1565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b60008060408385031215610cc357600080fd5b50508035926020909101359150565b600060208284031215610ce457600080fd5b81356001600160a01b0381168114610cfb57600080fd5b9392505050565b600060208284031215610d1457600080fd5b5051919050565b600060208284031215610d2d57600080fd5b81518015158114610cfb57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561054257610542610d3d565b6000815180845260005b81811015610d8c57602081850181015186830182015201610d70565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e08201819052600090610e0583820185610d66565b9b9a5050505050505050505050565b600082610e3157634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111561054257610542610d3d565b60018060a01b03841681528260208201526060604082015260006104f96060830184610d66565b808202811582820484141761054257610542610d3d565b600181815b80851115610ec2578160001904821115610ea857610ea8610d3d565b80851615610eb557918102915b93841c9390800290610e8c565b509250929050565b600082610ed957506001610542565b81610ee657506000610542565b8160018114610efc5760028114610f0657610f22565b6001915050610542565b60ff841115610f1757610f17610d3d565b50506001821b610542565b5060208310610133831016604e8410600b8410161715610f45575081810a610542565b610f4f8383610e87565b8060001904821115610f6357610f63610d3d565b029392505050565b600061053f8383610eca56fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a2646970667358221220a3440c4d48dbf505db52796c147907ce3a7151a8aaf08cb7456bc83a86c3b9d964736f6c63430008110033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100f05780638dc654a214610101578063df78abe614610109578063f2fde38b1461011257600080fd5b806338af3eed1461008d5780634357855e146100bd57806350ed6a95146100d257806379ba5097146100e8575b600080fd5b600b546100a0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d06100cb366004610cb0565b610125565b005b6100da610227565b6040519081526020016100b4565b6100d06102d3565b6006546001600160a01b03166100a0565b6100d0610381565b6100da60085481565b6100d0610120366004610cd2565b6104cc565b60008281526005602052604090205482906001600160a01b031633146101a35760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084015b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c08360405161021891815260200190565b60405180910390a25060085550565b60008061023e60095430634357855e60e01b6104dd565b90506102806040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c8152602001610f78604c9139839190610502565b6102c1604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001610fc4602f9139839190610502565b6102cd81600a54610525565b91505090565b6007546001600160a01b031633146103265760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161019a565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b610389610548565b600061039d6002546001600160a01b031690565b600b546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156103f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104199190610d02565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610464573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104889190610d1b565b6104c95760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161019a565b50565b6104d4610548565b6104c98161059d565b6104e5610c75565b6104ed610c75565b6104f981868686610647565b95945050505050565b6080830151610511908361068d565b6080830151610520908261068d565b505050565b60035460009061053f906001600160a01b031684846106a4565b90505b92915050565b6006546001600160a01b0316331461059b5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161019a565b565b336001600160a01b038216036105f55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161019a565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b61064f610c75565b61065f8560800151610100610737565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b61069a826003835161079c565b61052082826108b1565b6004546000906106b5816001610d53565b600455835160408086015160808701515191516000936320214ca360e11b936106ed9386938493923092918a91600191602401610dac565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061072d868386846108d8565b9695505050505050565b604080518082019091526060815260006020820152610757602083610e14565b1561077f57610767602083610e14565b610772906020610e36565b61077c9083610d53565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116107c7576107c18360e0600585901b168317610a36565b50505050565b60ff8167ffffffffffffffff1611610805576107ee836018611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166001610a5b565b61ffff8167ffffffffffffffff16116108445761082d836019611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166002610a5b565b63ffffffff8167ffffffffffffffff16116108855761086e83601a611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166004610a5b565b61089a83601b611fe0600586901b1617610a36565b506107c18367ffffffffffffffff83166008610a5b565b60408051808201909152606081526000602082015261053f83846000015151848551610a81565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea09061099b90889087908790600401610e49565b6020604051808303816000875af11580156109ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109de9190610d1b565b6106855760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161019a565b60408051808201909152606081526000602082015261053f8384600001515184610b6b565b604080518082019091526060815260006020820152610685848560000151518585610bc6565b6040805180820190915260608152600060208201528251821115610aa457600080fd5b6020850151610ab38386610d53565b1115610ae657610ae685610ad687602001518786610ad19190610d53565b610c47565b610ae1906002610e70565b610c5e565b600080865180518760208301019350808887011115610b055787860182525b505050602084015b60208410610b455780518252610b24602083610d53565b9150610b31602082610d53565b9050610b3e602085610e36565b9350610b0d565b51815160001960208690036101000a019081169019919091161790525083949350505050565b60408051808201909152606081526000602082015283602001518310610ba057610ba08485602001516002610ae19190610e70565b8351805160208583010184815350808503610bbc576001810182525b5093949350505050565b6040805180820190915260608152600060208201526020850151610bea8584610d53565b1115610bfe57610bfe85610ad68685610d53565b60006001610c0e84610100610f6b565b610c189190610e36565b9050855183868201018583198251161781525080518487011115610c3c5783860181525b509495945050505050565b600081831115610c58575081610542565b50919050565b8151610c6a8383610737565b506107c183826108b1565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b60008060408385031215610cc357600080fd5b50508035926020909101359150565b600060208284031215610ce457600080fd5b81356001600160a01b0381168114610cfb57600080fd5b9392505050565b600060208284031215610d1457600080fd5b5051919050565b600060208284031215610d2d57600080fd5b81518015158114610cfb57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561054257610542610d3d565b6000815180845260005b81811015610d8c57602081850181015186830182015201610d70565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e08201819052600090610e0583820185610d66565b9b9a5050505050505050505050565b600082610e3157634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111561054257610542610d3d565b60018060a01b03841681528260208201526060604082015260006104f96060830184610d66565b808202811582820484141761054257610542610d3d565b600181815b80851115610ec2578160001904821115610ea857610ea8610d3d565b80851615610eb557918102915b93841c9390800290610e8c565b509250929050565b600082610ed957506001610542565b81610ee657506000610542565b8160018114610efc5760028114610f0657610f22565b6001915050610542565b60ff841115610f1757610f17610d3d565b50506001821b610542565b5060208310610133831016604e8410600b8410161715610f45575081810a610542565b610f4f8383610e87565b8060001904821115610f6357610f63610d3d565b029392505050565b600061053f8383610eca56fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a2646970667358221220a3440c4d48dbf505db52796c147907ce3a7151a8aaf08cb7456bc83a86c3b9d964736f6c63430008110033", + "bytecode": "0x608060405260016004553480156200001657600080fd5b5060405162001ab638038062001ab68339810160408190526200003991620002a5565b818060006001600160a01b038216620000995760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0384811691909117909155811615620000cc57620000cc81620001ba565b505050620000f473326c977e6efc84e512bb9c30f76e30c160ed06fb6200026660201b60201c565b600380546001600160a01b03191673aa37473c8d78f0f1c86c9d8aee53e8b896bcb4d51790557f6231643432636435346133613432303062316637323561363865343838383838600a9081557f6231643432636435346133613432303062316637323561363865343838393939600b5562000179670de0b6b3a76400006001620002dd565b62000185919062000309565b600c55600e80546001600160a81b0319166101006001600160a01b03939093169290920260ff1916919091179055506200032c565b336001600160a01b03821603620002145760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000090565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b0381168114620002a057600080fd5b919050565b60008060408385031215620002b957600080fd5b620002c48362000288565b9150620002d46020840162000288565b90509250929050565b80820281158282048414176200030357634e487b7160e01b600052601160045260246000fd5b92915050565b6000826200032757634e487b7160e01b600052601260045260246000fd5b500490565b61177a806200033c6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c5780639e2f9084116100665780639e2f9084146101b2578063df78abe6146101d2578063ea21b098146101db578063f2fde38b146101e457600080fd5b80638da5cb5b146101865780638dc654a21461019757806393232d9f1461019f57600080fd5b80634357855e116100c85780634357855e1461014457806343e1ca491461015957806350ed6a951461017657806379ba50971461017e57600080fd5b8063350844ce146100ef57806338af3eed1461010b578063403a77611461013b575b600080fd5b6100f8600b5481565b6040519081526020015b60405180910390f35b600e546101239061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610102565b6100f8600a5481565b61015761015236600461121c565b6101f7565b005b600e546101669060ff1681565b6040519015158152602001610102565b6100f86102c8565b610157610374565b6006546001600160a01b0316610123565b610157610422565b6101576101ad36600461121c565b610571565b6100f86101c036600461123e565b600d6020526000908152604090205481565b6100f860085481565b6100f860095481565b6101576101f2366004611257565b610638565b60008281526005602052604090205482906001600160a01b031633146102385760405162461bcd60e51b815260040161022f90611287565b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0836040516102ad91815260200190565b60405180910390a260088290556102c2610649565b50505050565b6000806102df600a5430634357855e60e01b610781565b90506103216040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c81526020016116ca604c91398391906107a6565b610362604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001611716602f91398391906107a6565b61036e81600c546107c4565b91505090565b6007546001600160a01b031633146103c75760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161022f565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b61042a6107e7565b600061043e6002546001600160a01b031690565b600e546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb9261010090049091169083906370a0823190602401602060405180830381865afa15801561049a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104be91906112cf565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052d91906112e8565b61056e5760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161022f565b50565b60008281526005602052604090205482906001600160a01b031633146105a95760405162461bcd60e51b815260040161022f90611287565b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f2e48c207bbe18ca424eae69ca096badb69cc821f8cb72b42f49599f3390a3b1c8360405161061e91815260200190565b60405180910390a2600982905561063361083c565b505050565b6106406107e7565b61056e81610900565b600080610660600b54306393232d9f60e01b610781565b90506000610673600854620f42406109aa565b90506000610686600854620f42406109b6565b90506000610693836109c2565b61069c836109c2565b6040516020016106ad92919061132e565b60408051601f19818403018152828201909152600382526219d95d60ea1b602083015291506106de908590836107a6565b61073c604051806040016040528060048152602001630e0c2e8d60e31b815250604051806040016040528060158152602001741c995cdc1bdb9cd94b18dc9e5c1d1bd05b5bdd5b9d605a1b815250866107a69092919063ffffffff16565b60408051808201909152600581526474696d657360d81b602082015261076c908590670de0b6b3a7640000610a55565b61077884600c546107c4565b94505050505090565b6107896111e1565b6107916111e1565b61079d81868686610a73565b95945050505050565b60808301516107b59083610ab9565b60808301516106339082610ab9565b6003546000906107de906001600160a01b03168484610ad0565b90505b92915050565b6006546001600160a01b0316331461083a5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161022f565b565b60006108506002546001600160a01b031690565b600954600e546040516370a0823160e01b81526101009091046001600160a01b03908116600483015292935090918316906370a0823190602401602060405180830381865afa1580156108a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cb91906112cf565b036108f357600854436000908152600d6020526040902055600e805460ff1916600117905550565b600e805460ff1916905550565b336001600160a01b038216036109585760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161022f565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b60006107de82846114a3565b60006107de82846114b7565b606060006109cf83610b63565b600101905060008167ffffffffffffffff8111156109ef576109ef6114cb565b6040519080825280601f01601f191660200182016040528015610a19576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a2357509392505050565b6080830151610a649083610ab9565b60808301516106339082610c3b565b610a7b6111e1565b610a8b8560800151610100610c65565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b610ac68260038351610cca565b6106338282610dd9565b600454600090610ae18160016114e1565b600455835160408086015160808701515191516000936320214ca360e11b93610b199386938493923092918a91600191602401611520565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610b5986838684610e00565b9695505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ba25772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610bce576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610bec57662386f26fc10000830492506010015b6305f5e1008310610c04576305f5e100830492506008015b6127108310610c1857612710830492506004015b60648310610c2a576064830492506002015b600a83106107e15760010192915050565b67ffffffffffffffff811115610c5957610c558282610f5e565b5050565b610c5582600083610cca565b604080518082019091526060815260006020820152610c856020836114b7565b15610cad57610c956020836114b7565b610ca0906020611588565b610caa90836114e1565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff1611610cef576102c28360e0600585901b168317610f95565b60ff8167ffffffffffffffff1611610d2d57610d16836018611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166001610fba565b61ffff8167ffffffffffffffff1611610d6c57610d55836019611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166002610fba565b63ffffffff8167ffffffffffffffff1611610dad57610d9683601a611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166004610fba565b610dc283601b611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166008610fba565b6040805180820190915260608152600060208201526107de83846000015151848551610fe0565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea090610ec39088908790879060040161159b565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0691906112e8565b610ab15760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161022f565b610f698260c2610f95565b50610c558282604051602001610f8191815260200190565b6040516020818303038152906040526110ca565b6040805180820190915260608152600060208201526107de83846000015151846110d7565b604080518082019091526060815260006020820152610ab1848560000151518585611132565b604080518082019091526060815260006020820152825182111561100357600080fd5b602085015161101283866114e1565b111561104557611045856110358760200151878661103091906114e1565b6111b3565b6110409060026115c2565b6111ca565b6000808651805187602083010193508088870111156110645787860182525b505050602084015b602084106110a457805182526110836020836114e1565b91506110906020826114e1565b905061109d602085611588565b935061106c565b51815160001960208690036101000a019081169019919091161790525083949350505050565b610ac68260028351610cca565b6040805180820190915260608152600060208201528360200151831061110c5761110c848560200151600261104091906115c2565b8351805160208583010184815350808503611128576001810182525b5093949350505050565b604080518082019091526060815260006020820152602085015161115685846114e1565b111561116a5761116a8561103586856114e1565b6000600161117a846101006116bd565b6111849190611588565b90508551838682010185831982511617815250805184870111156111a85783860181525b509495945050505050565b6000818311156111c45750816107e1565b50919050565b81516111d68383610c65565b506102c28382610dd9565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000806040838503121561122f57600080fd5b50508035926020909101359150565b60006020828403121561125057600080fd5b5035919050565b60006020828403121561126957600080fd5b81356001600160a01b038116811461128057600080fd5b9392505050565b60208082526028908201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604082015267081c995c5d595cdd60c21b606082015260800190565b6000602082840312156112e157600080fd5b5051919050565b6000602082840312156112fa57600080fd5b8151801515811461128057600080fd5b60005b8381101561132557818101518382015260200161130d565b50506000910152565b7f68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f81527f76322f63757272656e636965732f70726963653f706172746e65724170694b6560208201527f793d30363235323566302d383536622d343330322d396434382d38623639306260408201527f623565363334266669617443757272656e63793d5553442663727970746f437560608201527f7272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f60808201527f726b3d657468657265756d267061796d656e744d6574686f643d63726564697460a08201527f5f64656269745f636172642666696174416d6f756e743d00000000000000000060c08201526000835161144a8160d785016020880161130a565b601760f91b60d791840191820152835161146b8160d884016020880161130a565b0160d801949350505050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826114b2576114b2611477565b500490565b6000826114c6576114c6611477565b500690565b634e487b7160e01b600052604160045260246000fd5b808201808211156107e1576107e161148d565b6000815180845261150c81602086016020860161130a565b601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e08201819052600090611579838201856114f4565b9b9a5050505050505050505050565b818103818111156107e1576107e161148d565b60018060a01b038416815282602082015260606040820152600061079d60608301846114f4565b80820281158282048414176107e1576107e161148d565b600181815b808511156116145781600019048211156115fa576115fa61148d565b8085161561160757918102915b93841c93908002906115de565b509250929050565b60008261162b575060016107e1565b81611638575060006107e1565b816001811461164e576002811461165857611674565b60019150506107e1565b60ff8411156116695761166961148d565b50506001821b6107e1565b5060208310610133831016604e8410600b8410161715611697575081810a6107e1565b6116a183836115d9565b80600019048211156116b5576116b561148d565b029392505050565b60006107de838361161c56fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a2646970667358221220229cc24227ac35cd69ee2057cfd931d5c4b6ae5b5699709a5f88b5e4ae541d9364736f6c63430008110033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c5780639e2f9084116100665780639e2f9084146101b2578063df78abe6146101d2578063ea21b098146101db578063f2fde38b146101e457600080fd5b80638da5cb5b146101865780638dc654a21461019757806393232d9f1461019f57600080fd5b80634357855e116100c85780634357855e1461014457806343e1ca491461015957806350ed6a951461017657806379ba50971461017e57600080fd5b8063350844ce146100ef57806338af3eed1461010b578063403a77611461013b575b600080fd5b6100f8600b5481565b6040519081526020015b60405180910390f35b600e546101239061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610102565b6100f8600a5481565b61015761015236600461121c565b6101f7565b005b600e546101669060ff1681565b6040519015158152602001610102565b6100f86102c8565b610157610374565b6006546001600160a01b0316610123565b610157610422565b6101576101ad36600461121c565b610571565b6100f86101c036600461123e565b600d6020526000908152604090205481565b6100f860085481565b6100f860095481565b6101576101f2366004611257565b610638565b60008281526005602052604090205482906001600160a01b031633146102385760405162461bcd60e51b815260040161022f90611287565b60405180910390fd5b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f9721e7802f825c56833db455a0081c7dd8c7da03ed285e582c2af90dd7d442c0836040516102ad91815260200190565b60405180910390a260088290556102c2610649565b50505050565b6000806102df600a5430634357855e60e01b610781565b90506103216040518060400160405280600381526020016219d95d60ea1b8152506040518060800160405280604c81526020016116ca604c91398391906107a6565b610362604051806040016040528060048152602001630e0c2e8d60e31b8152506040518060600160405280602f8152602001611716602f91398391906107a6565b61036e81600c546107c4565b91505090565b6007546001600160a01b031633146103c75760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161022f565b600680546001600160a01b0319808216339081179093556007805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b61042a6107e7565b600061043e6002546001600160a01b031690565b600e546040516370a0823160e01b81523060048201529192506001600160a01b038084169263a9059cbb9261010090049091169083906370a0823190602401602060405180830381865afa15801561049a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104be91906112cf565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052d91906112e8565b61056e5760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161022f565b50565b60008281526005602052604090205482906001600160a01b031633146105a95760405162461bcd60e51b815260040161022f90611287565b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a2827f2e48c207bbe18ca424eae69ca096badb69cc821f8cb72b42f49599f3390a3b1c8360405161061e91815260200190565b60405180910390a2600982905561063361083c565b505050565b6106406107e7565b61056e81610900565b600080610660600b54306393232d9f60e01b610781565b90506000610673600854620f42406109aa565b90506000610686600854620f42406109b6565b90506000610693836109c2565b61069c836109c2565b6040516020016106ad92919061132e565b60408051601f19818403018152828201909152600382526219d95d60ea1b602083015291506106de908590836107a6565b61073c604051806040016040528060048152602001630e0c2e8d60e31b815250604051806040016040528060158152602001741c995cdc1bdb9cd94b18dc9e5c1d1bd05b5bdd5b9d605a1b815250866107a69092919063ffffffff16565b60408051808201909152600581526474696d657360d81b602082015261076c908590670de0b6b3a7640000610a55565b61077884600c546107c4565b94505050505090565b6107896111e1565b6107916111e1565b61079d81868686610a73565b95945050505050565b60808301516107b59083610ab9565b60808301516106339082610ab9565b6003546000906107de906001600160a01b03168484610ad0565b90505b92915050565b6006546001600160a01b0316331461083a5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161022f565b565b60006108506002546001600160a01b031690565b600954600e546040516370a0823160e01b81526101009091046001600160a01b03908116600483015292935090918316906370a0823190602401602060405180830381865afa1580156108a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cb91906112cf565b036108f357600854436000908152600d6020526040902055600e805460ff1916600117905550565b600e805460ff1916905550565b336001600160a01b038216036109585760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161022f565b600780546001600160a01b0319166001600160a01b03838116918217909255600654604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b60006107de82846114a3565b60006107de82846114b7565b606060006109cf83610b63565b600101905060008167ffffffffffffffff8111156109ef576109ef6114cb565b6040519080825280601f01601f191660200182016040528015610a19576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a2357509392505050565b6080830151610a649083610ab9565b60808301516106339082610c3b565b610a7b6111e1565b610a8b8560800151610100610c65565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b610ac68260038351610cca565b6106338282610dd9565b600454600090610ae18160016114e1565b600455835160408086015160808701515191516000936320214ca360e11b93610b199386938493923092918a91600191602401611520565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610b5986838684610e00565b9695505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ba25772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610bce576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610bec57662386f26fc10000830492506010015b6305f5e1008310610c04576305f5e100830492506008015b6127108310610c1857612710830492506004015b60648310610c2a576064830492506002015b600a83106107e15760010192915050565b67ffffffffffffffff811115610c5957610c558282610f5e565b5050565b610c5582600083610cca565b604080518082019091526060815260006020820152610c856020836114b7565b15610cad57610c956020836114b7565b610ca0906020611588565b610caa90836114e1565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff1611610cef576102c28360e0600585901b168317610f95565b60ff8167ffffffffffffffff1611610d2d57610d16836018611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166001610fba565b61ffff8167ffffffffffffffff1611610d6c57610d55836019611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166002610fba565b63ffffffff8167ffffffffffffffff1611610dad57610d9683601a611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166004610fba565b610dc283601b611fe0600586901b1617610f95565b506102c28367ffffffffffffffff83166008610fba565b6040805180820190915260608152600060208201526107de83846000015151848551610fe0565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600590925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600254604051630200057560e51b81526001600160a01b0390911690634000aea090610ec39088908790879060040161159b565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0691906112e8565b610ab15760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b606482015260840161022f565b610f698260c2610f95565b50610c558282604051602001610f8191815260200190565b6040516020818303038152906040526110ca565b6040805180820190915260608152600060208201526107de83846000015151846110d7565b604080518082019091526060815260006020820152610ab1848560000151518585611132565b604080518082019091526060815260006020820152825182111561100357600080fd5b602085015161101283866114e1565b111561104557611045856110358760200151878661103091906114e1565b6111b3565b6110409060026115c2565b6111ca565b6000808651805187602083010193508088870111156110645787860182525b505050602084015b602084106110a457805182526110836020836114e1565b91506110906020826114e1565b905061109d602085611588565b935061106c565b51815160001960208690036101000a019081169019919091161790525083949350505050565b610ac68260028351610cca565b6040805180820190915260608152600060208201528360200151831061110c5761110c848560200151600261104091906115c2565b8351805160208583010184815350808503611128576001810182525b5093949350505050565b604080518082019091526060815260006020820152602085015161115685846114e1565b111561116a5761116a8561103586856114e1565b6000600161117a846101006116bd565b6111849190611588565b90508551838682010185831982511617815250805184870111156111a85783860181525b509495945050505050565b6000818311156111c45750816107e1565b50919050565b81516111d68383610c65565b506102c28382610dd9565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000806040838503121561122f57600080fd5b50508035926020909101359150565b60006020828403121561125057600080fd5b5035919050565b60006020828403121561126957600080fd5b81356001600160a01b038116811461128057600080fd5b9392505050565b60208082526028908201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604082015267081c995c5d595cdd60c21b606082015260800190565b6000602082840312156112e157600080fd5b5051919050565b6000602082840312156112fa57600080fd5b8151801515811461128057600080fd5b60005b8381101561132557818101518382015260200161130d565b50506000910152565b7f68747470733a2f2f6170692d7374672e7472616e73616b2e636f6d2f6170692f81527f76322f63757272656e636965732f70726963653f706172746e65724170694b6560208201527f793d30363235323566302d383536622d343330322d396434382d38623639306260408201527f623565363334266669617443757272656e63793d5553442663727970746f437560608201527f7272656e63793d4554482669734275794f7253656c6c3d425559266e6574776f60808201527f726b3d657468657265756d267061796d656e744d6574686f643d63726564697460a08201527f5f64656269745f636172642666696174416d6f756e743d00000000000000000060c08201526000835161144a8160d785016020880161130a565b601760f91b60d791840191820152835161146b8160d884016020880161130a565b0160d801949350505050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826114b2576114b2611477565b500490565b6000826114c6576114c6611477565b500690565b634e487b7160e01b600052604160045260246000fd5b808201808211156107e1576107e161148d565b6000815180845261150c81602086016020860161130a565b601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e08201819052600090611579838201856114f4565b9b9a5050505050505050505050565b818103818111156107e1576107e161148d565b60018060a01b038416815282602082015260606040820152600061079d60608301846114f4565b80820281158282048414176107e1576107e161148d565b600181815b808511156116145781600019048211156115fa576115fa61148d565b8085161561160757918102915b93841c93908002906115de565b509250929050565b60008261162b575060016107e1565b81611638575060006107e1565b816001811461164e576002811461165857611674565b60019150506107e1565b60ff8411156116695761166961148d565b50506001821b6107e1565b5060208310610133831016604e8410600b8410161715611697575081810a6107e1565b6116a183836115d9565b80600019048211156116b5576116b561148d565b029392505050565b60006107de838361161c56fe68747470733a2f2f746573746170692e696f2f6170692f48617964656e2f76312f6163636f756e74732f7075622d393938383737363635353434333332322f6e6574776f726b5265706f7274726f772c6d657472696356616c7565732c455354494d415445445f4541524e494e47532c6d6963726f7356616c7565a2646970667358221220229cc24227ac35cd69ee2057cfd931d5c4b6ae5b5699709a5f88b5e4ae541d9364736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/cache/solidity-files-cache.json b/cache/solidity-files-cache.json index aad2a8f..b69a45f 100644 --- a/cache/solidity-files-cache.json +++ b/cache/solidity-files-cache.json @@ -2,8 +2,8 @@ "_format": "hh-sol-cache-2", "files": { "/home/hayden/chainlink_hackathon/chainlink_hkt/contracts/AdmodConsumer.sol": { - "lastModificationDate": 1685877333506, - "contentHash": "3adead03205e8b2671c79d94b7f4902d", + "lastModificationDate": 1686070365414, + "contentHash": "b88e582c91ad7c22f7962b1f2a413774", "sourceName": "contracts/AdmodConsumer.sol", "solcConfig": { "version": "0.8.17", @@ -30,7 +30,9 @@ }, "imports": [ "@chainlink/contracts/src/v0.8/ChainlinkClient.sol", - "@chainlink/contracts/src/v0.8/ConfirmedOwner.sol" + "@chainlink/contracts/src/v0.8/ConfirmedOwner.sol", + "@openzeppelin/contracts/utils/math/SafeMath.sol", + "@openzeppelin/contracts/utils/Strings.sol" ], "versionPragmas": [ "0.8.17" @@ -548,6 +550,149 @@ "artifacts": [ "OwnableInterface" ] + }, + "/home/hayden/chainlink_hackathon/chainlink_hkt/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol": { + "lastModificationDate": 1686061704515, + "contentHash": "f6f4fda16c536e57069af40a245c985e", + "sourceName": "@openzeppelin/contracts/utils/math/SafeMath.sol", + "solcConfig": { + "version": "0.8.17", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "SafeMath" + ] + }, + "/home/hayden/chainlink_hackathon/chainlink_hkt/node_modules/@openzeppelin/contracts/utils/Strings.sol": { + "lastModificationDate": 1686061704519, + "contentHash": "48686fc32a22a3754b8e63321857dd2a", + "sourceName": "@openzeppelin/contracts/utils/Strings.sol", + "solcConfig": { + "version": "0.8.17", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./math/Math.sol", + "./math/SignedMath.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "Strings" + ] + }, + "/home/hayden/chainlink_hackathon/chainlink_hkt/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { + "lastModificationDate": 1686061704515, + "contentHash": "9488ebd4daacfee8ad04811600d7d061", + "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "solcConfig": { + "version": "0.8.17", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "SignedMath" + ] + }, + "/home/hayden/chainlink_hackathon/chainlink_hkt/node_modules/@openzeppelin/contracts/utils/math/Math.sol": { + "lastModificationDate": 1686061704483, + "contentHash": "fe63409d8a06818b926cf89e0ea88b1b", + "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", + "solcConfig": { + "version": "0.8.17", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "Math" + ] } } } diff --git a/contracts/AdmodConsumer.sol b/contracts/AdmodConsumer.sol index 76f225f..f3a2a28 100644 --- a/contracts/AdmodConsumer.sol +++ b/contracts/AdmodConsumer.sol @@ -3,15 +3,28 @@ pragma solidity 0.8.17; import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol"; import "@chainlink/contracts/src/v0.8/ConfirmedOwner.sol"; +import "@openzeppelin/contracts/utils/math/SafeMath.sol"; +import "@openzeppelin/contracts/utils/Strings.sol"; contract AdmodConsumer is ChainlinkClient, ConfirmedOwner { using Chainlink for Chainlink.Request; + using SafeMath for uint; + + // the earning amount of this week uint256 public earning; - bytes32 private jobId; + // the amount of LINK bought from Transak with $earning amount + uint256 public linkAmount; + + // 2 separate jobId for google AdmodAPI and TransakAPI + bytes32 public ggJobId; + bytes32 public transakJobId; + uint256 private fee; + mapping(uint256 => uint256) public earningReports; + bool public isEligible; /** * @notice @@ -21,6 +34,8 @@ contract AdmodConsumer is ChainlinkClient, ConfirmedOwner { address public beneficiary; event RequestEarning(bytes32 indexed requestId, uint256 earning); + event RequestBoughtAmount(bytes32 indexed requestId, uint256 linkAmount); + /** * @notice Initialize the link token and target oracle @@ -28,15 +43,17 @@ contract AdmodConsumer is ChainlinkClient, ConfirmedOwner { * Mumbai Testnet details: * Link Token: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB * Oracle: 0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5 - * jobId: b1d42cd54a3a4200b1f725a68e488888 - * + * ggJobId: b1d42cd54a3a4200b1f725a68e488888 + * transakJobId: b1d42cd54a3a4200b1f725a68e488999 */ constructor(address _owner, address _beneficiary) ConfirmedOwner(_owner) { setChainlinkToken(0x326C977E6efc84E512bB9C30f76E30c160eD06FB); setChainlinkOracle(0xaA37473c8d78F0f1C86c9d8aEE53E8B896bCB4D5); - jobId = "b1d42cd54a3a4200b1f725a68e488888"; + ggJobId = "b1d42cd54a3a4200b1f725a68e488888"; + transakJobId = "b1d42cd54a3a4200b1f725a68e488999"; fee = (1 * LINK_DIVISIBILITY) / 10; // 0,1 * 10**18 (Varies by network and job) beneficiary = _beneficiary; + isEligible = false; } /** @@ -45,7 +62,7 @@ contract AdmodConsumer is ChainlinkClient, ConfirmedOwner { */ function requestWeekEarning() public returns (bytes32 requestId) { Chainlink.Request memory req = buildChainlinkRequest( - jobId, + ggJobId, address(this), this.fulfill.selector ); @@ -74,6 +91,45 @@ contract AdmodConsumer is ChainlinkClient, ConfirmedOwner { @notice earning will be a total of earning this week subtract for Transak transaction fee */ earning = _earning; + _requestTransakValidation(); + } + + function _requestTransakValidation() private returns (bytes32 requestId) { + Chainlink.Request memory req = buildChainlinkRequest( + transakJobId, + address(this), + this.fulfillTransakPrice.selector + ); + + uint256 headEarning = SafeMath.div(earning,1000000); + uint256 tailEarning = SafeMath.mod(earning,1000000); + + string memory apiUrl = string(abi.encodePacked("https://api-stg.transak.com/api/v2/currencies/price?partnerApiKey=062525f0-856b-4302-9d48-8b690bb5e634&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount=", + Strings.toString(headEarning),".",Strings.toString(tailEarning))); + + // Set the URL to perform the GET request on + req.add( + "get", + apiUrl + ); + + req.add("path", "response,cryptoAmount"); + req.addUint("times", LINK_DIVISIBILITY); + + // Sends the request + return sendChainlinkRequest(req, fee); + } + + function fulfillTransakPrice( + bytes32 _requestId, + uint256 _linkAmount + ) public recordChainlinkFulfillment(_requestId) { + emit RequestBoughtAmount(_requestId, _linkAmount); + /** + @notice earning will be a total of earning this week subtract for Transak transaction fee + */ + linkAmount = _linkAmount; + _checkEligibleEarning(); } /** @notice @@ -88,4 +144,15 @@ contract AdmodConsumer is ChainlinkClient, ConfirmedOwner { "Unable to transfer" ); } + + function _checkEligibleEarning() private { + LinkTokenInterface link = LinkTokenInterface(chainlinkTokenAddress()); + if (link.balanceOf(beneficiary) == linkAmount) + { + earningReports[block.number] = earning; + isEligible = true; + } + else isEligible = false; + } + } \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 0772b37..c0b636d 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -15,6 +15,11 @@ "@openzeppelin/contracts-v0.7": "npm:@openzeppelin/contracts@v3.4.2" } }, + "node_modules/@chainlink/contracts/node_modules/@openzeppelin/contracts": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", + "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" + }, "node_modules/@chainsafe/as-sha256": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", @@ -2129,9 +2134,9 @@ } }, "node_modules/@openzeppelin/contracts": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", - "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.0.tgz", + "integrity": "sha512-DUP74AFGKlic2sQb/CmgrN2aUPMFGxRrmCTUxLHsiU2RzwWqVuMPZBxiAyvlff6Pea77uylAX6B5x9W6evEbhA==" }, "node_modules/@openzeppelin/contracts-upgradeable": { "version": "4.8.3", diff --git a/node_modules/@openzeppelin/contracts/README.md b/node_modules/@openzeppelin/contracts/README.md index c191278..9fc9551 100644 --- a/node_modules/@openzeppelin/contracts/README.md +++ b/node_modules/@openzeppelin/contracts/README.md @@ -1,8 +1,10 @@ # OpenZeppelin -[![Docs](https://img.shields.io/badge/docs-%F0%9F%93%84-blue)](https://docs.openzeppelin.com/contracts) [![NPM Package](https://img.shields.io/npm/v/@openzeppelin/contracts.svg)](https://www.npmjs.org/package/@openzeppelin/contracts) [![Coverage Status](https://codecov.io/gh/OpenZeppelin/openzeppelin-contracts/graph/badge.svg)](https://codecov.io/gh/OpenZeppelin/openzeppelin-contracts) +[![GitPOAPs](https://public-api.gitpoap.io/v1/repo/OpenZeppelin/openzeppelin-contracts/badge)](https://www.gitpoap.io/gh/OpenZeppelin/openzeppelin-contracts) +[![Docs](https://img.shields.io/badge/docs-%F0%9F%93%84-yellow)](https://docs.openzeppelin.com/contracts) +[![Forum](https://img.shields.io/badge/forum-%F0%9F%92%AC-yellow)](https://docs.openzeppelin.com/contracts) **A library for secure smart contract development.** Build on a solid foundation of community-vetted code. @@ -12,15 +14,19 @@ :mage: **Not sure how to get started?** Check out [Contracts Wizard](https://wizard.openzeppelin.com/) — an interactive smart contract generator. +:building_construction: **Want to scale your decentralized application?** Check out [OpenZeppelin Defender](https://openzeppelin.com/defender) — a secure platform for automating and monitoring your operations. + ## Overview ### Installation -```console +``` $ npm install @openzeppelin/contracts ``` -OpenZeppelin Contracts features a [stable API](https://docs.openzeppelin.com/contracts/releases-stability#api-stability), which means your contracts won't break unexpectedly when upgrading to a newer minor version. +OpenZeppelin Contracts features a [stable API](https://docs.openzeppelin.com/contracts/releases-stability#api-stability), which means that your contracts won't break unexpectedly when upgrading to a newer minor version. + +An alternative to npm is to use the GitHub repository (`openzeppelin/openzeppelin-contracts`) to retrieve the contracts. When doing this, make sure to specify the tag for a release such as `v4.5.0`, instead of using the `master` branch. ### Usage @@ -39,20 +45,19 @@ contract MyCollectible is ERC721 { _If you're new to smart contract development, head to [Developing Smart Contracts](https://docs.openzeppelin.com/learn/developing-smart-contracts) to learn about creating a new project and compiling your contracts._ -To keep your system secure, you should **always** use the installed code as-is, and neither copy-paste it from online sources, nor modify it yourself. The library is designed so that only the contracts and functions you use are deployed, so you don't need to worry about it needlessly increasing gas costs. +To keep your system secure, you should **always** use the installed code as-is, and neither copy-paste it from online sources nor modify it yourself. The library is designed so that only the contracts and functions you use are deployed, so you don't need to worry about it needlessly increasing gas costs. ## Learn More -The guides in the [docs site](https://docs.openzeppelin.com/contracts) will teach about different concepts, and how to use the related contracts that OpenZeppelin Contracts provides: +The guides in the [documentation site](https://docs.openzeppelin.com/contracts) will teach about different concepts, and how to use the related contracts that OpenZeppelin Contracts provides: * [Access Control](https://docs.openzeppelin.com/contracts/access-control): decide who can perform each of the actions on your system. * [Tokens](https://docs.openzeppelin.com/contracts/tokens): create tradeable assets or collectives, and distribute them via [Crowdsales](https://docs.openzeppelin.com/contracts/crowdsales). -* [Gas Station Network](https://docs.openzeppelin.com/contracts/gsn): let your users interact with your contracts without having to pay for gas themselves. -* [Utilities](https://docs.openzeppelin.com/contracts/utilities): generic useful tools, including non-overflowing math, signature verification, and trustless paying systems. +* [Utilities](https://docs.openzeppelin.com/contracts/utilities): generic useful tools including non-overflowing math, signature verification, and trustless paying systems. The [full API](https://docs.openzeppelin.com/contracts/api/token/ERC20) is also thoroughly documented, and serves as a great reference when developing your smart contract application. You can also ask for help or follow Contracts's development in the [community forum](https://forum.openzeppelin.com). -Finally, you may want to take a look at the [guides on our blog](https://blog.openzeppelin.com/guides), which cover several common use cases and good practices.. The following articles provide great background reading, though please note, some of the referenced tools have changed as the tooling in the ecosystem continues to rapidly evolve. +Finally, you may want to take a look at the [guides on our blog](https://blog.openzeppelin.com/guides), which cover several common use cases and good practices. The following articles provide great background reading, though please note that some of the referenced tools have changed, as the tooling in the ecosystem continues to rapidly evolve. * [The Hitchhiker’s Guide to Smart Contracts in Ethereum](https://blog.openzeppelin.com/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05) will help you get an overview of the various tools available for smart contract development, and help you set up your environment. * [A Gentle Introduction to Ethereum Programming, Part 1](https://blog.openzeppelin.com/a-gentle-introduction-to-ethereum-programming-part-1-783cc7796094) provides very useful information on an introductory level, including many basic concepts from the Ethereum platform. @@ -60,15 +65,17 @@ Finally, you may want to take a look at the [guides on our blog](https://blog.op ## Security -This project is maintained by [OpenZeppelin](https://openzeppelin.com), and developed following our high standards for code quality and security. OpenZeppelin Contracts is meant to provide tested and community-audited code, but please use common sense when doing anything that deals with real money! We take no responsibility for your implementation decisions and any security problems you might experience. +This project is maintained by [OpenZeppelin](https://openzeppelin.com) with the goal of providing a secure and reliable library of smart contract components for the ecosystem. We address security through risk management in various areas such as engineering and open source best practices, scoping and API design, multi-layered review processes, and incident response preparedness. -The core development principles and strategies that OpenZeppelin Contracts is based on include: security in depth, simple and modular code, clarity-driven naming conventions, comprehensive unit testing, pre-and-post-condition sanity checks, code consistency, and regular audits. +The security policy is detailed in [`SECURITY.md`](./SECURITY.md), and specifies how you can report security vulnerabilities, which versions will receive security patches, and how to stay informed about them. We run a [bug bounty program on Immunefi](https://immunefi.com/bounty/openzeppelin) to reward the responsible disclosure of vulnerabilities. -The latest audit was done on October 2018 on version 2.0.0. +The engineering guidelines we follow to promote project quality can be found in [`GUIDELINES.md`](./GUIDELINES.md). -Please report any security issues you find to security@openzeppelin.org. +Past audits can be found in [`audits/`](./audits). -Critical bug fixes will be backported to past major releases. +Smart contracts are a nascent technology and carry a high level of technical risk and uncertainty. Although OpenZeppelin is well known for its security audits, using OpenZeppelin Contracts is not a substitute for a security audit. + +OpenZeppelin Contracts is made available under the MIT License, which disclaims all warranties in relation to the project and which limits the liability of those that contribute and maintain the project, including OpenZeppelin. As set out further in the Terms, you acknowledge that you are solely responsible for any use of OpenZeppelin Contracts and you assume all risks associated with any such use. ## Contribute @@ -77,3 +84,7 @@ OpenZeppelin Contracts exists thanks to its contributors. There are many ways yo ## License OpenZeppelin Contracts is released under the [MIT License](LICENSE). + +## Legal + +Your use of this Project is governed by the terms found at www.openzeppelin.com/tos (the "Terms"). diff --git a/node_modules/@openzeppelin/contracts/access/AccessControl.sol b/node_modules/@openzeppelin/contracts/access/AccessControl.sol index 08ab65f..0ec6be3 100644 --- a/node_modules/@openzeppelin/contracts/access/AccessControl.sol +++ b/node_modules/@openzeppelin/contracts/access/AccessControl.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol) pragma solidity ^0.8.0; @@ -18,14 +19,14 @@ import "../utils/introspection/ERC165.sol"; * in the external API and be unique. The best way to achieve this is by * using `public constant` hash digests: * - * ``` + * ```solidity * bytes32 public constant MY_ROLE = keccak256("MY_ROLE"); * ``` * * Roles can be used to represent a set of permissions. To restrict access to a * function call, use {hasRole}: * - * ``` + * ```solidity * function foo() public { * require(hasRole(MY_ROLE, msg.sender)); * ... @@ -43,7 +44,8 @@ import "../utils/introspection/ERC165.sol"; * * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to * grant and revoke this role. Extra precautions should be taken to secure - * accounts that have been granted it. + * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} + * to enforce additional security measures for this role. */ abstract contract AccessControl is Context, IAccessControl, ERC165 { struct RoleData { @@ -66,7 +68,7 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 { * _Available since v4.1._ */ modifier onlyRole(bytes32 role) { - _checkRole(role, _msgSender()); + _checkRole(role); _; } @@ -80,10 +82,22 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 { /** * @dev Returns `true` if `account` has been granted `role`. */ - function hasRole(bytes32 role, address account) public view override returns (bool) { + function hasRole(bytes32 role, address account) public view virtual override returns (bool) { return _roles[role].members[account]; } + /** + * @dev Revert with a standard message if `_msgSender()` is missing `role`. + * Overriding this function changes the behavior of the {onlyRole} modifier. + * + * Format of the revert message is described in {_checkRole}. + * + * _Available since v4.6._ + */ + function _checkRole(bytes32 role) internal view virtual { + _checkRole(role, _msgSender()); + } + /** * @dev Revert with a standard message if `account` is missing `role`. * @@ -91,13 +105,13 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 { * * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/ */ - function _checkRole(bytes32 role, address account) internal view { + function _checkRole(bytes32 role, address account) internal view virtual { if (!hasRole(role, account)) { revert( string( abi.encodePacked( "AccessControl: account ", - Strings.toHexString(uint160(account), 20), + Strings.toHexString(account), " is missing role ", Strings.toHexString(uint256(role), 32) ) @@ -112,7 +126,7 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 { * * To change a role's admin, use {_setRoleAdmin}. */ - function getRoleAdmin(bytes32 role) public view override returns (bytes32) { + function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) { return _roles[role].adminRole; } @@ -125,6 +139,8 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 { * Requirements: * * - the caller must have ``role``'s admin role. + * + * May emit a {RoleGranted} event. */ function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) { _grantRole(role, account); @@ -138,6 +154,8 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 { * Requirements: * * - the caller must have ``role``'s admin role. + * + * May emit a {RoleRevoked} event. */ function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) { _revokeRole(role, account); @@ -150,12 +168,14 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 { * purpose is to provide a mechanism for accounts to lose their privileges * if they are compromised (such as when a trusted device is misplaced). * - * If the calling account had been granted `role`, emits a {RoleRevoked} + * If the calling account had been revoked `role`, emits a {RoleRevoked} * event. * * Requirements: * * - the caller must be `account`. + * + * May emit a {RoleRevoked} event. */ function renounceRole(bytes32 role, address account) public virtual override { require(account == _msgSender(), "AccessControl: can only renounce roles for self"); @@ -170,6 +190,8 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 { * event. Note that unlike {grantRole}, this function doesn't perform any * checks on the calling account. * + * May emit a {RoleGranted} event. + * * [WARNING] * ==== * This function should only be called from the constructor when setting @@ -178,6 +200,8 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 { * Using this function in any other way is effectively circumventing the admin * system imposed by {AccessControl}. * ==== + * + * NOTE: This function is deprecated in favor of {_grantRole}. */ function _setupRole(bytes32 role, address account) internal virtual { _grantRole(role, account); @@ -194,14 +218,28 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 { emit RoleAdminChanged(role, previousAdminRole, adminRole); } - function _grantRole(bytes32 role, address account) private { + /** + * @dev Grants `role` to `account`. + * + * Internal function without access restriction. + * + * May emit a {RoleGranted} event. + */ + function _grantRole(bytes32 role, address account) internal virtual { if (!hasRole(role, account)) { _roles[role].members[account] = true; emit RoleGranted(role, account, _msgSender()); } } - function _revokeRole(bytes32 role, address account) private { + /** + * @dev Revokes `role` from `account`. + * + * Internal function without access restriction. + * + * May emit a {RoleRevoked} event. + */ + function _revokeRole(bytes32 role, address account) internal virtual { if (hasRole(role, account)) { _roles[role].members[account] = false; emit RoleRevoked(role, account, _msgSender()); diff --git a/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol b/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol index 6635a40..354e1be 100644 --- a/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol +++ b/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControlEnumerable.sol) pragma solidity ^0.8.0; @@ -33,7 +34,7 @@ abstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessCon * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] * for more information. */ - function getRoleMember(bytes32 role, uint256 index) public view override returns (address) { + function getRoleMember(bytes32 role, uint256 index) public view virtual override returns (address) { return _roleMembers[role].at(index); } @@ -41,39 +42,23 @@ abstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessCon * @dev Returns the number of accounts that have `role`. Can be used * together with {getRoleMember} to enumerate all bearers of a role. */ - function getRoleMemberCount(bytes32 role) public view override returns (uint256) { + function getRoleMemberCount(bytes32 role) public view virtual override returns (uint256) { return _roleMembers[role].length(); } /** - * @dev Overload {grantRole} to track enumerable memberships + * @dev Overload {_grantRole} to track enumerable memberships */ - function grantRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) { - super.grantRole(role, account); + function _grantRole(bytes32 role, address account) internal virtual override { + super._grantRole(role, account); _roleMembers[role].add(account); } /** - * @dev Overload {revokeRole} to track enumerable memberships + * @dev Overload {_revokeRole} to track enumerable memberships */ - function revokeRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) { - super.revokeRole(role, account); + function _revokeRole(bytes32 role, address account) internal virtual override { + super._revokeRole(role, account); _roleMembers[role].remove(account); } - - /** - * @dev Overload {renounceRole} to track enumerable memberships - */ - function renounceRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) { - super.renounceRole(role, account); - _roleMembers[role].remove(account); - } - - /** - * @dev Overload {_setupRole} to track enumerable memberships - */ - function _setupRole(bytes32 role, address account) internal virtual override { - super._setupRole(role, account); - _roleMembers[role].add(account); - } } diff --git a/node_modules/@openzeppelin/contracts/access/IAccessControl.sol b/node_modules/@openzeppelin/contracts/access/IAccessControl.sol index 4614792..f773ecc 100644 --- a/node_modules/@openzeppelin/contracts/access/IAccessControl.sol +++ b/node_modules/@openzeppelin/contracts/access/IAccessControl.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol b/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol index e4a8e9f..61aaf57 100644 --- a/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol +++ b/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/access/Ownable.sol b/node_modules/@openzeppelin/contracts/access/Ownable.sol index 16469d5..c181ea1 100644 --- a/node_modules/@openzeppelin/contracts/access/Ownable.sol +++ b/node_modules/@openzeppelin/contracts/access/Ownable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; @@ -25,7 +26,15 @@ abstract contract Ownable is Context { * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { - _setOwner(_msgSender()); + _transferOwnership(_msgSender()); + } + + /** + * @dev Throws if called by any account other than the owner. + */ + modifier onlyOwner() { + _checkOwner(); + _; } /** @@ -36,22 +45,21 @@ abstract contract Ownable is Context { } /** - * @dev Throws if called by any account other than the owner. + * @dev Throws if the sender is not the owner. */ - modifier onlyOwner() { + function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); - _; } /** * @dev Leaves the contract without owner. It will not be possible to call - * `onlyOwner` functions anymore. Can only be called by the current owner. + * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, - * thereby removing any functionality that is only available to the owner. + * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { - _setOwner(address(0)); + _transferOwnership(address(0)); } /** @@ -60,10 +68,14 @@ abstract contract Ownable is Context { */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); - _setOwner(newOwner); + _transferOwnership(newOwner); } - function _setOwner(address newOwner) private { + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Internal function without access restriction. + */ + function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); diff --git a/node_modules/@openzeppelin/contracts/build/contracts/Address.json b/node_modules/@openzeppelin/contracts/build/contracts/Address.json index 8d9369d..a7453c4 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/Address.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/Address.json @@ -3,8 +3,8 @@ "contractName": "Address", "sourceName": "contracts/utils/Address.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122087668ebac231427ac5112a48f8eb5ebe654ece78cff120f4dc6e1c1423a2672164736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122087668ebac231427ac5112a48f8eb5ebe654ece78cff120f4dc6e1c1423a2672164736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e314a746944a88937ddf36f70d12597ff2704256740dc7ecc710cd852fcdb75664736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e314a746944a88937ddf36f70d12597ff2704256740dc7ecc710cd852fcdb75664736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/Arrays.json b/node_modules/@openzeppelin/contracts/build/contracts/Arrays.json index d192390..dfc78a1 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/Arrays.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/Arrays.json @@ -3,8 +3,8 @@ "contractName": "Arrays", "sourceName": "contracts/utils/Arrays.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122079fb203044e4773f88f97bd4aaa86df33813a3ca584e6b172c043f451eba76d464736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122079fb203044e4773f88f97bd4aaa86df33813a3ca584e6b172c043f451eba76d464736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f639f3917a7155d9dac2ac79c05c349410ec2f1d4c410d25367ff627cf1d3fcf64736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f639f3917a7155d9dac2ac79c05c349410ec2f1d4c410d25367ff627cf1d3fcf64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/BeaconProxy.json b/node_modules/@openzeppelin/contracts/build/contracts/BeaconProxy.json index 03feee3..1c05fd0 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/BeaconProxy.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/BeaconProxy.json @@ -73,8 +73,8 @@ "type": "receive" } ], - "bytecode": "0x608060405260405161098838038061098883398101604081905261002291610483565b61004d60017fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5161058e565b6000805160206109418339815191521461007757634e487b7160e01b600052600160045260246000fd5b6100838282600061008a565b50506105f3565b61009383610164565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a26000825111806100d45750805b1561015f5761015d836001600160a01b0316635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561011557600080fd5b505afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d9190610469565b8361030460201b6100291760201c565b505b505050565b6101778161033060201b6100551760201c565b6101d65760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b610259816001600160a01b0316635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561021257600080fd5b505afa158015610226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024a9190610469565b61033060201b6100551760201c565b6102be5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b60648201526084016101cd565b806102e360008051602061094183398151915260001b61033a60201b61005b1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b606061032983836040518060600160405280602781526020016109616027913961033d565b9392505050565b803b15155b919050565b90565b606061034884610330565b6103a35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101cd565b600080856001600160a01b0316856040516103be919061053f565b600060405180830381855af49150503d80600081146103f9576040519150601f19603f3d011682016040523d82523d6000602084013e6103fe565b606091505b50909250905061040f828286610419565b9695505050505050565b60608315610428575081610329565b8251156104385782518084602001fd5b8160405162461bcd60e51b81526004016101cd919061055b565b80516001600160a01b038116811461033557600080fd5b60006020828403121561047a578081fd5b61032982610452565b60008060408385031215610495578081fd5b61049e83610452565b60208401519092506001600160401b03808211156104ba578283fd5b818501915085601f8301126104cd578283fd5b8151818111156104df576104df6105dd565b604051601f8201601f19908116603f01168101908382118183101715610507576105076105dd565b8160405282815288602084870101111561051f578586fd5b6105308360208301602088016105b1565b80955050505050509250929050565b600082516105518184602087016105b1565b9190910192915050565b600060208252825180602084015261057a8160408501602087016105b1565b601f01601f19169190910160400192915050565b6000828210156105ac57634e487b7160e01b81526011600452602481fd5b500390565b60005b838110156105cc5781810151838201526020016105b4565b8381111561015d5750506000910152565b634e487b7160e01b600052604160045260246000fd5b61033f806106026000396000f3fe60806040523661001357610011610017565b005b6100115b61002761002261005e565b610106565b565b606061004e83836040518060600160405280602781526020016102e36027913961012a565b9392505050565b3b151590565b90565b60006100917fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156100c957600080fd5b505afa1580156100dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610101919061023c565b905090565b3660008037600080366000845af43d6000803e808015610125573d6000f35b3d6000fd5b6060833b61018e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b0316856040516101a99190610263565b600060405180830381855af49150503d80600081146101e4576040519150601f19603f3d011682016040523d82523d6000602084013e6101e9565b606091505b50915091506101f9828286610203565b9695505050505050565b6060831561021257508161004e565b8251156102225782518084602001fd5b8160405162461bcd60e51b8152600401610185919061027f565b60006020828403121561024d578081fd5b81516001600160a01b038116811461004e578182fd5b600082516102758184602087016102b2565b9190910192915050565b600060208252825180602084015261029e8160408501602087016102b2565b601f01601f19169190910160400192915050565b60005b838110156102cd5781810151838201526020016102b5565b838111156102dc576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201cb996891e0e185f82d2c11ffc73eff0fcb823b001721fc4f725e35a9ed5dc4264736f6c63430008030033a3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "deployedBytecode": "0x60806040523661001357610011610017565b005b6100115b61002761002261005e565b610106565b565b606061004e83836040518060600160405280602781526020016102e36027913961012a565b9392505050565b3b151590565b90565b60006100917fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156100c957600080fd5b505afa1580156100dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610101919061023c565b905090565b3660008037600080366000845af43d6000803e808015610125573d6000f35b3d6000fd5b6060833b61018e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b0316856040516101a99190610263565b600060405180830381855af49150503d80600081146101e4576040519150601f19603f3d011682016040523d82523d6000602084013e6101e9565b606091505b50915091506101f9828286610203565b9695505050505050565b6060831561021257508161004e565b8251156102225782518084602001fd5b8160405162461bcd60e51b8152600401610185919061027f565b60006020828403121561024d578081fd5b81516001600160a01b038116811461004e578182fd5b600082516102758184602087016102b2565b9190910192915050565b600060208252825180602084015261029e8160408501602087016102b2565b601f01601f19169190910160400192915050565b60005b838110156102cd5781810151838201526020016102b5565b838111156102dc576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201cb996891e0e185f82d2c11ffc73eff0fcb823b001721fc4f725e35a9ed5dc4264736f6c63430008030033", + "bytecode": "0x608060405260405161091438038061091483398101604081905261002291610463565b61002e82826000610035565b505061058d565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610523565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610523565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108ed602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053e565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c95782516000036103c2576001600160a01b0385163b6103c25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d3565b6103d383836103db565b949350505050565b8151156103eb5781518083602001fd5b8060405162461bcd60e51b8152600401610169919061055a565b80516001600160a01b038116811461041c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561045257818101518382015260200161043a565b838111156100f95750506000910152565b6000806040838503121561047657600080fd5b61047f83610405565b60208401519092506001600160401b038082111561049c57600080fd5b818501915085601f8301126104b057600080fd5b8151818111156104c2576104c2610421565b604051601f8201601f19908116603f011681019083821181831017156104ea576104ea610421565b8160405282815288602084870101111561050357600080fd5b610514836020830160208801610437565b80955050505050509250929050565b60006020828403121561053557600080fd5b6102c882610405565b60008251610550818460208701610437565b9190910192915050565b6020815260008251806020840152610579816040850160208701610437565b601f01601f19169190910160400192915050565b6103518061059c6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f560279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb919061024c565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a5565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b60608315610210578251600003610209576001600160a01b0385163b6102095760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b508161021a565b61021a8383610222565b949350505050565b8151156102325781518083602001fd5b8060405162461bcd60e51b815260040161020091906102c1565b60006020828403121561025e57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b83811015610290578181015183820152602001610278565b8381111561029f576000848401525b50505050565b600082516102b7818460208701610275565b9190910192915050565b60208152600082518060208401526102e0816040850160208701610275565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e1837ee2a5e3e46daae239d8e33725bdb2ac92b33d5244f5ae7544f9e9658be064736f6c634300080d0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "deployedBytecode": "0x60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f560279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb919061024c565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a5565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b60608315610210578251600003610209576001600160a01b0385163b6102095760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b508161021a565b61021a8383610222565b949350505050565b8151156102325781518083602001fd5b8060405162461bcd60e51b815260040161020091906102c1565b60006020828403121561025e57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b83811015610290578181015183820152602001610278565b8381111561029f576000848401525b50505050565b600082516102b7818460208701610275565b9190910192915050565b60208152600082518060208401526102e0816040850160208701610275565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e1837ee2a5e3e46daae239d8e33725bdb2ac92b33d5244f5ae7544f9e9658be064736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/BitMaps.json b/node_modules/@openzeppelin/contracts/build/contracts/BitMaps.json index 6eb3e47..ab18933 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/BitMaps.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/BitMaps.json @@ -3,8 +3,8 @@ "contractName": "BitMaps", "sourceName": "contracts/utils/structs/BitMaps.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220816d3c991ac8b7c7371f85b4390f82fb27b363de9a864484c9536f2202a4a2b064736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220816d3c991ac8b7c7371f85b4390f82fb27b363de9a864484c9536f2202a4a2b064736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208b2adfe7bc81a58a2a40a020a408f71785946afd343d6940099885382a9553b564736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208b2adfe7bc81a58a2a40a020a408f71785946afd343d6940099885382a9553b564736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/Clones.json b/node_modules/@openzeppelin/contracts/build/contracts/Clones.json index 8e2e78c..ea1fd24 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/Clones.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/Clones.json @@ -3,8 +3,8 @@ "contractName": "Clones", "sourceName": "contracts/proxy/Clones.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd526066f099f3825553042c47bc0ca7580fcaee299a785c414ed3d203f8297064736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd526066f099f3825553042c47bc0ca7580fcaee299a785c414ed3d203f8297064736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bfa180daadd7577892dd23a92f94613264d53e31a9dea0fac999d868b9e5972464736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bfa180daadd7577892dd23a92f94613264d53e31a9dea0fac999d868b9e5972464736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/Counters.json b/node_modules/@openzeppelin/contracts/build/contracts/Counters.json index d6910f6..1a85ce8 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/Counters.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/Counters.json @@ -3,8 +3,8 @@ "contractName": "Counters", "sourceName": "contracts/utils/Counters.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a21e253091723b026ffad764c146aee9860311835b0da7d37cfb867ea9b8ba1364736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a21e253091723b026ffad764c146aee9860311835b0da7d37cfb867ea9b8ba1364736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a0f2d371d3902f9f97698ff62207f2be404c635a455462f7975038bd4ff06c2864736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a0f2d371d3902f9f97698ff62207f2be404c635a455462f7975038bd4ff06c2864736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/Create2.json b/node_modules/@openzeppelin/contracts/build/contracts/Create2.json index 845289a..52cfa2b 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/Create2.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/Create2.json @@ -3,8 +3,8 @@ "contractName": "Create2", "sourceName": "contracts/utils/Create2.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed29ff5f092e12a3b803bebadc72c3da0985c3d08ba24500bb08660f83eedb7564736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed29ff5f092e12a3b803bebadc72c3da0985c3d08ba24500bb08660f83eedb7564736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d29aa4630276ec2d362f51009f42de367181a9e9a4f354f2123aad436a259b2c64736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d29aa4630276ec2d362f51009f42de367181a9e9a4f354f2123aad436a259b2c64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ECDSA.json b/node_modules/@openzeppelin/contracts/build/contracts/ECDSA.json index 1064648..ce3aded 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ECDSA.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ECDSA.json @@ -3,8 +3,8 @@ "contractName": "ECDSA", "sourceName": "contracts/utils/cryptography/ECDSA.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220baedd20259ac1db864bb1630c1835f25c492bfcc3179000115ec2aacaf7d7eda64736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220baedd20259ac1db864bb1630c1835f25c492bfcc3179000115ec2aacaf7d7eda64736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122000bc104fa1e28b55e0005c74a91dd6b3f202b227c6abc94b269ade7db7eb296d64736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122000bc104fa1e28b55e0005c74a91dd6b3f202b227c6abc94b269ade7db7eb296d64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/EIP712.json b/node_modules/@openzeppelin/contracts/build/contracts/EIP712.json index f2f9094..df0d3d6 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/EIP712.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/EIP712.json @@ -1,8 +1,74 @@ { "_format": "hh-sol-artifact-1", "contractName": "EIP712", - "sourceName": "contracts/utils/cryptography/draft-EIP712.sol", - "abi": [], + "sourceName": "contracts/utils/cryptography/EIP712.sol", + "abi": [ + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + } + ], "bytecode": "0x", "deployedBytecode": "0x", "linkReferences": {}, diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC1155.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC1155.json index 3a593c4..f790be9 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC1155.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC1155.json @@ -327,8 +327,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620016b9380380620016b9833981016040819052620000349162000105565b6200003f8162000046565b506200022e565b80516200005b9060029060208401906200005f565b5050565b8280546200006d90620001db565b90600052602060002090601f016020900481019282620000915760008555620000dc565b82601f10620000ac57805160ff1916838001178555620000dc565b82800160010185558215620000dc579182015b82811115620000dc578251825591602001919060010190620000bf565b50620000ea929150620000ee565b5090565b5b80821115620000ea5760008155600101620000ef565b6000602080838503121562000118578182fd5b82516001600160401b03808211156200012f578384fd5b818501915085601f83011262000143578384fd5b81518181111562000158576200015862000218565b604051601f8201601f19908116603f0116810190838211818310171562000183576200018362000218565b8160405282815288868487010111156200019b578687fd5b8693505b82841015620001be57848401860151818501870152928501926200019f565b82841115620001cf57868684830101525b98975050505050505050565b600181811c90821680620001f057607f821691505b602082108114156200021257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61147b806200023e6000396000f3fe608060405234801561001057600080fd5b50600436106100875760003560e01c80634e1273f41161005b5780634e1273f41461010a578063a22cb4651461012a578063e985e9c51461013d578063f242432a1461017957610087565b8062fdd58e1461008c57806301ffc9a7146100b25780630e89341c146100d55780632eb2c2d6146100f5575b600080fd5b61009f61009a366004610efa565b61018c565b6040519081526020015b60405180910390f35b6100c56100c0366004610fee565b610223565b60405190151581526020016100a9565b6100e86100e336600461102d565b610277565b6040516100a991906111ae565b610108610103366004610db7565b61030b565b005b61011d610118366004610f23565b6103b4565b6040516100a9919061116d565b610108610138366004610ec0565b610516565b6100c561014b366004610d85565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b610108610187366004610e5d565b61062a565b60006001600160a01b0383166101fd5760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061025457506001600160e01b031982166303a24d0760e21b145b8061026f57506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b606060028054610286906112d4565b80601f01602080910402602001604051908101604052809291908181526020018280546102b2906112d4565b80156102ff5780601f106102d4576101008083540402835291602001916102ff565b820191906000526020600020905b8154815290600101906020018083116102e257829003601f168201915b50505050509050919050565b6103136106c3565b6001600160a01b0316856001600160a01b0316148061033957506103398561014b6106c3565b6103a05760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b60648201526084016101f4565b6103ad85858585856106c8565b5050505050565b606081518351146104195760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016101f4565b6000835167ffffffffffffffff81111561044357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561046c578160200160208202803683370190505b50905060005b845181101561050e576104d385828151811061049e57634e487b7160e01b600052603260045260246000fd5b60200260200101518583815181106104c657634e487b7160e01b600052603260045260246000fd5b602002602001015161018c565b8282815181106104f357634e487b7160e01b600052603260045260246000fd5b60209081029190910101526105078161133c565b9050610472565b509392505050565b816001600160a01b03166105286106c3565b6001600160a01b031614156105915760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016101f4565b806001600061059e6106c3565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556105e26106c3565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161061e911515815260200190565b60405180910390a35050565b6106326106c3565b6001600160a01b0316856001600160a01b0316148061065857506106588561014b6106c3565b6106b65760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016101f4565b6103ad85858585856108cc565b335b90565b815183511461072a5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016101f4565b6001600160a01b0384166107505760405162461bcd60e51b81526004016101f490611209565b600061075a6106c3565b905060005b845181101561085e57600085828151811061078a57634e487b7160e01b600052603260045260246000fd5b6020026020010151905060008583815181106107b657634e487b7160e01b600052603260045260246000fd5b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156108065760405162461bcd60e51b81526004016101f49061124e565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906108439084906112bc565b92505081905550505050806108579061133c565b905061075f565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516108ae929190611180565b60405180910390a46108c48187878787876109fd565b505050505050565b6001600160a01b0384166108f25760405162461bcd60e51b81526004016101f490611209565b60006108fc6106c3565b905061091681878761090d88610b68565b6103ad88610b68565b6000848152602081815260408083206001600160a01b038a168452909152902054838110156109575760405162461bcd60e51b81526004016101f49061124e565b6000858152602081815260408083206001600160a01b038b81168552925280832087850390559088168252812080548692906109949084906112bc565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46109f4828888888888610bc1565b50505050505050565b6001600160a01b0384163b156108c45760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610a4190899089908890889088906004016110ca565b602060405180830381600087803b158015610a5b57600080fd5b505af1925050508015610a8b575060408051601f3d908101601f19168201909252610a8891810190611011565b60015b610b3857610a97611383565b806308c379a01415610ad15750610aac61139a565b80610ab75750610ad3565b8060405162461bcd60e51b81526004016101f491906111ae565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016101f4565b6001600160e01b0319811663bc197c8160e01b146109f45760405162461bcd60e51b81526004016101f4906111c1565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610bb057634e487b7160e01b600052603260045260246000fd5b602090810291909101015292915050565b6001600160a01b0384163b156108c45760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610c059089908990889088908890600401611128565b602060405180830381600087803b158015610c1f57600080fd5b505af1925050508015610c4f575060408051601f3d908101601f19168201909252610c4c91810190611011565b60015b610c5b57610a97611383565b6001600160e01b0319811663f23a6e6160e01b146109f45760405162461bcd60e51b81526004016101f4906111c1565b80356001600160a01b038116811461027257600080fd5b600082601f830112610cb2578081fd5b81356020610cbf82611298565b604051610ccc828261130f565b8381528281019150858301600585901b87018401881015610ceb578586fd5b855b85811015610d0957813584529284019290840190600101610ced565b5090979650505050505050565b600082601f830112610d26578081fd5b813567ffffffffffffffff811115610d4057610d4061136d565b604051610d57601f8301601f19166020018261130f565b818152846020838601011115610d6b578283fd5b816020850160208301379081016020019190915292915050565b60008060408385031215610d97578182fd5b610da083610c8b565b9150610dae60208401610c8b565b90509250929050565b600080600080600060a08688031215610dce578081fd5b610dd786610c8b565b9450610de560208701610c8b565b9350604086013567ffffffffffffffff80821115610e01578283fd5b610e0d89838a01610ca2565b94506060880135915080821115610e22578283fd5b610e2e89838a01610ca2565b93506080880135915080821115610e43578283fd5b50610e5088828901610d16565b9150509295509295909350565b600080600080600060a08688031215610e74578081fd5b610e7d86610c8b565b9450610e8b60208701610c8b565b93506040860135925060608601359150608086013567ffffffffffffffff811115610eb4578182fd5b610e5088828901610d16565b60008060408385031215610ed2578182fd5b610edb83610c8b565b915060208301358015158114610eef578182fd5b809150509250929050565b60008060408385031215610f0c578182fd5b610f1583610c8b565b946020939093013593505050565b60008060408385031215610f35578182fd5b823567ffffffffffffffff80821115610f4c578384fd5b818501915085601f830112610f5f578384fd5b81356020610f6c82611298565b604051610f79828261130f565b8381528281019150858301600585901b870184018b1015610f98578889fd5b8896505b84871015610fc157610fad81610c8b565b835260019690960195918301918301610f9c565b5096505086013592505080821115610fd7578283fd5b50610fe485828601610ca2565b9150509250929050565b600060208284031215610fff578081fd5b813561100a8161142c565b9392505050565b600060208284031215611022578081fd5b815161100a8161142c565b60006020828403121561103e578081fd5b5035919050565b6000815180845260208085019450808401835b8381101561107457815187529582019590820190600101611058565b509495945050505050565b60008151808452815b818110156110a457602081850181015186830182015201611088565b818111156110b55782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0386811682528516602082015260a0604082018190526000906110f690830186611045565b82810360608401526111088186611045565b9050828103608084015261111c818561107f565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906111629083018461107f565b979650505050505050565b60006020825261100a6020830184611045565b6000604082526111936040830185611045565b82810360208401526111a58185611045565b95945050505050565b60006020825261100a602083018461107f565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b600067ffffffffffffffff8211156112b2576112b261136d565b5060051b60200190565b600082198211156112cf576112cf611357565b500190565b600181811c908216806112e857607f821691505b6020821081141561130957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8201601f1916810167ffffffffffffffff811182821017156113355761133561136d565b6040525050565b600060001982141561135057611350611357565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d11156106c557600481823e5160e01c90565b600060443d10156113aa576106c5565b6040516003193d81016004833e81513d67ffffffffffffffff81602484011181841117156113dc5750505050506106c5565b82850191508151818111156113f6575050505050506106c5565b843d8701016020828501011115611412575050505050506106c5565b6114216020828601018761130f565b509094505050505090565b6001600160e01b03198116811461144257600080fd5b5056fea26469706673582212205adf82880a09a85f7a1b95c8af419ce5cf77d06610ac0ffd5b99d7df48fdd51f64736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100875760003560e01c80634e1273f41161005b5780634e1273f41461010a578063a22cb4651461012a578063e985e9c51461013d578063f242432a1461017957610087565b8062fdd58e1461008c57806301ffc9a7146100b25780630e89341c146100d55780632eb2c2d6146100f5575b600080fd5b61009f61009a366004610efa565b61018c565b6040519081526020015b60405180910390f35b6100c56100c0366004610fee565b610223565b60405190151581526020016100a9565b6100e86100e336600461102d565b610277565b6040516100a991906111ae565b610108610103366004610db7565b61030b565b005b61011d610118366004610f23565b6103b4565b6040516100a9919061116d565b610108610138366004610ec0565b610516565b6100c561014b366004610d85565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b610108610187366004610e5d565b61062a565b60006001600160a01b0383166101fd5760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061025457506001600160e01b031982166303a24d0760e21b145b8061026f57506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b606060028054610286906112d4565b80601f01602080910402602001604051908101604052809291908181526020018280546102b2906112d4565b80156102ff5780601f106102d4576101008083540402835291602001916102ff565b820191906000526020600020905b8154815290600101906020018083116102e257829003601f168201915b50505050509050919050565b6103136106c3565b6001600160a01b0316856001600160a01b0316148061033957506103398561014b6106c3565b6103a05760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b60648201526084016101f4565b6103ad85858585856106c8565b5050505050565b606081518351146104195760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016101f4565b6000835167ffffffffffffffff81111561044357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561046c578160200160208202803683370190505b50905060005b845181101561050e576104d385828151811061049e57634e487b7160e01b600052603260045260246000fd5b60200260200101518583815181106104c657634e487b7160e01b600052603260045260246000fd5b602002602001015161018c565b8282815181106104f357634e487b7160e01b600052603260045260246000fd5b60209081029190910101526105078161133c565b9050610472565b509392505050565b816001600160a01b03166105286106c3565b6001600160a01b031614156105915760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016101f4565b806001600061059e6106c3565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556105e26106c3565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161061e911515815260200190565b60405180910390a35050565b6106326106c3565b6001600160a01b0316856001600160a01b0316148061065857506106588561014b6106c3565b6106b65760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016101f4565b6103ad85858585856108cc565b335b90565b815183511461072a5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016101f4565b6001600160a01b0384166107505760405162461bcd60e51b81526004016101f490611209565b600061075a6106c3565b905060005b845181101561085e57600085828151811061078a57634e487b7160e01b600052603260045260246000fd5b6020026020010151905060008583815181106107b657634e487b7160e01b600052603260045260246000fd5b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156108065760405162461bcd60e51b81526004016101f49061124e565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906108439084906112bc565b92505081905550505050806108579061133c565b905061075f565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516108ae929190611180565b60405180910390a46108c48187878787876109fd565b505050505050565b6001600160a01b0384166108f25760405162461bcd60e51b81526004016101f490611209565b60006108fc6106c3565b905061091681878761090d88610b68565b6103ad88610b68565b6000848152602081815260408083206001600160a01b038a168452909152902054838110156109575760405162461bcd60e51b81526004016101f49061124e565b6000858152602081815260408083206001600160a01b038b81168552925280832087850390559088168252812080548692906109949084906112bc565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46109f4828888888888610bc1565b50505050505050565b6001600160a01b0384163b156108c45760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610a4190899089908890889088906004016110ca565b602060405180830381600087803b158015610a5b57600080fd5b505af1925050508015610a8b575060408051601f3d908101601f19168201909252610a8891810190611011565b60015b610b3857610a97611383565b806308c379a01415610ad15750610aac61139a565b80610ab75750610ad3565b8060405162461bcd60e51b81526004016101f491906111ae565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016101f4565b6001600160e01b0319811663bc197c8160e01b146109f45760405162461bcd60e51b81526004016101f4906111c1565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610bb057634e487b7160e01b600052603260045260246000fd5b602090810291909101015292915050565b6001600160a01b0384163b156108c45760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610c059089908990889088908890600401611128565b602060405180830381600087803b158015610c1f57600080fd5b505af1925050508015610c4f575060408051601f3d908101601f19168201909252610c4c91810190611011565b60015b610c5b57610a97611383565b6001600160e01b0319811663f23a6e6160e01b146109f45760405162461bcd60e51b81526004016101f4906111c1565b80356001600160a01b038116811461027257600080fd5b600082601f830112610cb2578081fd5b81356020610cbf82611298565b604051610ccc828261130f565b8381528281019150858301600585901b87018401881015610ceb578586fd5b855b85811015610d0957813584529284019290840190600101610ced565b5090979650505050505050565b600082601f830112610d26578081fd5b813567ffffffffffffffff811115610d4057610d4061136d565b604051610d57601f8301601f19166020018261130f565b818152846020838601011115610d6b578283fd5b816020850160208301379081016020019190915292915050565b60008060408385031215610d97578182fd5b610da083610c8b565b9150610dae60208401610c8b565b90509250929050565b600080600080600060a08688031215610dce578081fd5b610dd786610c8b565b9450610de560208701610c8b565b9350604086013567ffffffffffffffff80821115610e01578283fd5b610e0d89838a01610ca2565b94506060880135915080821115610e22578283fd5b610e2e89838a01610ca2565b93506080880135915080821115610e43578283fd5b50610e5088828901610d16565b9150509295509295909350565b600080600080600060a08688031215610e74578081fd5b610e7d86610c8b565b9450610e8b60208701610c8b565b93506040860135925060608601359150608086013567ffffffffffffffff811115610eb4578182fd5b610e5088828901610d16565b60008060408385031215610ed2578182fd5b610edb83610c8b565b915060208301358015158114610eef578182fd5b809150509250929050565b60008060408385031215610f0c578182fd5b610f1583610c8b565b946020939093013593505050565b60008060408385031215610f35578182fd5b823567ffffffffffffffff80821115610f4c578384fd5b818501915085601f830112610f5f578384fd5b81356020610f6c82611298565b604051610f79828261130f565b8381528281019150858301600585901b870184018b1015610f98578889fd5b8896505b84871015610fc157610fad81610c8b565b835260019690960195918301918301610f9c565b5096505086013592505080821115610fd7578283fd5b50610fe485828601610ca2565b9150509250929050565b600060208284031215610fff578081fd5b813561100a8161142c565b9392505050565b600060208284031215611022578081fd5b815161100a8161142c565b60006020828403121561103e578081fd5b5035919050565b6000815180845260208085019450808401835b8381101561107457815187529582019590820190600101611058565b509495945050505050565b60008151808452815b818110156110a457602081850181015186830182015201611088565b818111156110b55782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0386811682528516602082015260a0604082018190526000906110f690830186611045565b82810360608401526111088186611045565b9050828103608084015261111c818561107f565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906111629083018461107f565b979650505050505050565b60006020825261100a6020830184611045565b6000604082526111936040830185611045565b82810360208401526111a58185611045565b95945050505050565b60006020825261100a602083018461107f565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b600067ffffffffffffffff8211156112b2576112b261136d565b5060051b60200190565b600082198211156112cf576112cf611357565b500190565b600181811c908216806112e857607f821691505b6020821081141561130957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8201601f1916810167ffffffffffffffff811182821017156113355761133561136d565b6040525050565b600060001982141561135057611350611357565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d11156106c557600481823e5160e01c90565b600060443d10156113aa576106c5565b6040516003193d81016004833e81513d67ffffffffffffffff81602484011181841117156113dc5750505050506106c5565b82850191508151818111156113f6575050505050506106c5565b843d8701016020828501011115611412575050505050506106c5565b6114216020828601018761130f565b509094505050505090565b6001600160e01b03198116811461144257600080fd5b5056fea26469706673582212205adf82880a09a85f7a1b95c8af419ce5cf77d06610ac0ffd5b99d7df48fdd51f64736f6c63430008030033", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620015cb380380620015cb83398101604081905262000034916200011b565b6200003f8162000046565b5062000233565b80516200005b9060029060208401906200005f565b5050565b8280546200006d90620001f7565b90600052602060002090601f016020900481019282620000915760008555620000dc565b82601f10620000ac57805160ff1916838001178555620000dc565b82800160010185558215620000dc579182015b82811115620000dc578251825591602001919060010190620000bf565b50620000ea929150620000ee565b5090565b5b80821115620000ea5760008155600101620000ef565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156200012f57600080fd5b82516001600160401b03808211156200014757600080fd5b818501915085601f8301126200015c57600080fd5b81518181111562000171576200017162000105565b604051601f8201601f19908116603f011681019083821181831017156200019c576200019c62000105565b816040528281528886848701011115620001b557600080fd5b600093505b82841015620001d95784840186015181850187015292850192620001ba565b82841115620001eb5760008684830101525b98975050505050505050565b600181811c908216806200020c57607f821691505b6020821081036200022d57634e487b7160e01b600052602260045260246000fd5b50919050565b61138880620002436000396000f3fe608060405234801561001057600080fd5b50600436106100875760003560e01c80634e1273f41161005b5780634e1273f41461010a578063a22cb4651461012a578063e985e9c51461013d578063f242432a1461017957600080fd5b8062fdd58e1461008c57806301ffc9a7146100b25780630e89341c146100d55780632eb2c2d6146100f5575b600080fd5b61009f61009a366004610b3f565b61018c565b6040519081526020015b60405180910390f35b6100c56100c0366004610b82565b610222565b60405190151581526020016100a9565b6100e86100e3366004610ba6565b610274565b6040516100a99190610c0c565b610108610103366004610d6b565b610308565b005b61011d610118366004610e15565b610354565b6040516100a99190610f1b565b610108610138366004610f2e565b61047e565b6100c561014b366004610f6a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b610108610187366004610f9d565b61048d565b60006001600160a01b0383166101fc5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061025357506001600160e01b031982166303a24d0760e21b145b8061026e57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606002805461028390611002565b80601f01602080910402602001604051908101604052809291908181526020018280546102af90611002565b80156102fc5780601f106102d1576101008083540402835291602001916102fc565b820191906000526020600020905b8154815290600101906020018083116102df57829003601f168201915b50505050509050919050565b6001600160a01b0385163314806103245750610324853361014b565b6103405760405162461bcd60e51b81526004016101f39061103c565b61034d85858585856104d2565b5050505050565b606081518351146103b95760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016101f3565b6000835167ffffffffffffffff8111156103d5576103d5610c1f565b6040519080825280602002602001820160405280156103fe578160200160208202803683370190505b50905060005b8451811015610476576104498582815181106104225761042261108a565b602002602001015185838151811061043c5761043c61108a565b602002602001015161018c565b82828151811061045b5761045b61108a565b602090810291909101015261046f816110b6565b9050610404565b509392505050565b6104893383836106af565b5050565b6001600160a01b0385163314806104a957506104a9853361014b565b6104c55760405162461bcd60e51b81526004016101f39061103c565b61034d858585858561078f565b81518351146105345760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016101f3565b6001600160a01b03841661055a5760405162461bcd60e51b81526004016101f3906110cf565b3360005b845181101561064157600085828151811061057b5761057b61108a565b6020026020010151905060008583815181106105995761059961108a565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156105e95760405162461bcd60e51b81526004016101f390611114565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061062690849061115e565b925050819055505050508061063a906110b6565b905061055e565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610691929190611176565b60405180910390a46106a78187878787876108b9565b505050505050565b816001600160a01b0316836001600160a01b0316036107225760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016101f3565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166107b55760405162461bcd60e51b81526004016101f3906110cf565b3360006107c185610a1d565b905060006107ce85610a1d565b90506000868152602081815260408083206001600160a01b038c168452909152902054858110156108115760405162461bcd60e51b81526004016101f390611114565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061084e90849061115e565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46108ae848a8a8a8a8a610a68565b505050505050505050565b6001600160a01b0384163b156106a75760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906108fd90899089908890889088906004016111a4565b6020604051808303816000875af1925050508015610938575060408051601f3d908101601f1916820190925261093591810190611202565b60015b6109e45761094461121f565b806308c379a00361097d575061095861123b565b80610963575061097f565b8060405162461bcd60e51b81526004016101f39190610c0c565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016101f3565b6001600160e01b0319811663bc197c8160e01b14610a145760405162461bcd60e51b81526004016101f3906112c5565b50505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610a5757610a5761108a565b602090810291909101015292915050565b6001600160a01b0384163b156106a75760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610aac908990899088908890889060040161130d565b6020604051808303816000875af1925050508015610ae7575060408051601f3d908101601f19168201909252610ae491810190611202565b60015b610af35761094461121f565b6001600160e01b0319811663f23a6e6160e01b14610a145760405162461bcd60e51b81526004016101f3906112c5565b80356001600160a01b0381168114610b3a57600080fd5b919050565b60008060408385031215610b5257600080fd5b610b5b83610b23565b946020939093013593505050565b6001600160e01b031981168114610b7f57600080fd5b50565b600060208284031215610b9457600080fd5b8135610b9f81610b69565b9392505050565b600060208284031215610bb857600080fd5b5035919050565b6000815180845260005b81811015610be557602081850181015186830182015201610bc9565b81811115610bf7576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610b9f6020830184610bbf565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715610c5b57610c5b610c1f565b6040525050565b600067ffffffffffffffff821115610c7c57610c7c610c1f565b5060051b60200190565b600082601f830112610c9757600080fd5b81356020610ca482610c62565b604051610cb18282610c35565b83815260059390931b8501820192828101915086841115610cd157600080fd5b8286015b84811015610cec5780358352918301918301610cd5565b509695505050505050565b600082601f830112610d0857600080fd5b813567ffffffffffffffff811115610d2257610d22610c1f565b604051610d39601f8301601f191660200182610c35565b818152846020838601011115610d4e57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215610d8357600080fd5b610d8c86610b23565b9450610d9a60208701610b23565b9350604086013567ffffffffffffffff80821115610db757600080fd5b610dc389838a01610c86565b94506060880135915080821115610dd957600080fd5b610de589838a01610c86565b93506080880135915080821115610dfb57600080fd5b50610e0888828901610cf7565b9150509295509295909350565b60008060408385031215610e2857600080fd5b823567ffffffffffffffff80821115610e4057600080fd5b818501915085601f830112610e5457600080fd5b81356020610e6182610c62565b604051610e6e8282610c35565b83815260059390931b8501820192828101915089841115610e8e57600080fd5b948201945b83861015610eb357610ea486610b23565b82529482019490820190610e93565b96505086013592505080821115610ec957600080fd5b50610ed685828601610c86565b9150509250929050565b600081518084526020808501945080840160005b83811015610f1057815187529582019590820190600101610ef4565b509495945050505050565b602081526000610b9f6020830184610ee0565b60008060408385031215610f4157600080fd5b610f4a83610b23565b915060208301358015158114610f5f57600080fd5b809150509250929050565b60008060408385031215610f7d57600080fd5b610f8683610b23565b9150610f9460208401610b23565b90509250929050565b600080600080600060a08688031215610fb557600080fd5b610fbe86610b23565b9450610fcc60208701610b23565b93506040860135925060608601359150608086013567ffffffffffffffff811115610ff657600080fd5b610e0888828901610cf7565b600181811c9082168061101657607f821691505b60208210810361103657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016110c8576110c86110a0565b5060010190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60008219821115611171576111716110a0565b500190565b6040815260006111896040830185610ee0565b828103602084015261119b8185610ee0565b95945050505050565b6001600160a01b0386811682528516602082015260a0604082018190526000906111d090830186610ee0565b82810360608401526111e28186610ee0565b905082810360808401526111f68185610bbf565b98975050505050505050565b60006020828403121561121457600080fd5b8151610b9f81610b69565b600060033d11156112385760046000803e5060005160e01c5b90565b600060443d10156112495790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561127957505050505090565b82850191508151818111156112915750505050505090565b843d87010160208285010111156112ab5750505050505090565b6112ba60208286010187610c35565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061134790830184610bbf565b97965050505050505056fea2646970667358221220a690293c88d6344935ce74699232e93a05c2c54bc9e019a4c16e196e6916539864736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100875760003560e01c80634e1273f41161005b5780634e1273f41461010a578063a22cb4651461012a578063e985e9c51461013d578063f242432a1461017957600080fd5b8062fdd58e1461008c57806301ffc9a7146100b25780630e89341c146100d55780632eb2c2d6146100f5575b600080fd5b61009f61009a366004610b3f565b61018c565b6040519081526020015b60405180910390f35b6100c56100c0366004610b82565b610222565b60405190151581526020016100a9565b6100e86100e3366004610ba6565b610274565b6040516100a99190610c0c565b610108610103366004610d6b565b610308565b005b61011d610118366004610e15565b610354565b6040516100a99190610f1b565b610108610138366004610f2e565b61047e565b6100c561014b366004610f6a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b610108610187366004610f9d565b61048d565b60006001600160a01b0383166101fc5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061025357506001600160e01b031982166303a24d0760e21b145b8061026e57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606002805461028390611002565b80601f01602080910402602001604051908101604052809291908181526020018280546102af90611002565b80156102fc5780601f106102d1576101008083540402835291602001916102fc565b820191906000526020600020905b8154815290600101906020018083116102df57829003601f168201915b50505050509050919050565b6001600160a01b0385163314806103245750610324853361014b565b6103405760405162461bcd60e51b81526004016101f39061103c565b61034d85858585856104d2565b5050505050565b606081518351146103b95760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016101f3565b6000835167ffffffffffffffff8111156103d5576103d5610c1f565b6040519080825280602002602001820160405280156103fe578160200160208202803683370190505b50905060005b8451811015610476576104498582815181106104225761042261108a565b602002602001015185838151811061043c5761043c61108a565b602002602001015161018c565b82828151811061045b5761045b61108a565b602090810291909101015261046f816110b6565b9050610404565b509392505050565b6104893383836106af565b5050565b6001600160a01b0385163314806104a957506104a9853361014b565b6104c55760405162461bcd60e51b81526004016101f39061103c565b61034d858585858561078f565b81518351146105345760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016101f3565b6001600160a01b03841661055a5760405162461bcd60e51b81526004016101f3906110cf565b3360005b845181101561064157600085828151811061057b5761057b61108a565b6020026020010151905060008583815181106105995761059961108a565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156105e95760405162461bcd60e51b81526004016101f390611114565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061062690849061115e565b925050819055505050508061063a906110b6565b905061055e565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610691929190611176565b60405180910390a46106a78187878787876108b9565b505050505050565b816001600160a01b0316836001600160a01b0316036107225760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016101f3565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166107b55760405162461bcd60e51b81526004016101f3906110cf565b3360006107c185610a1d565b905060006107ce85610a1d565b90506000868152602081815260408083206001600160a01b038c168452909152902054858110156108115760405162461bcd60e51b81526004016101f390611114565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061084e90849061115e565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46108ae848a8a8a8a8a610a68565b505050505050505050565b6001600160a01b0384163b156106a75760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906108fd90899089908890889088906004016111a4565b6020604051808303816000875af1925050508015610938575060408051601f3d908101601f1916820190925261093591810190611202565b60015b6109e45761094461121f565b806308c379a00361097d575061095861123b565b80610963575061097f565b8060405162461bcd60e51b81526004016101f39190610c0c565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016101f3565b6001600160e01b0319811663bc197c8160e01b14610a145760405162461bcd60e51b81526004016101f3906112c5565b50505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610a5757610a5761108a565b602090810291909101015292915050565b6001600160a01b0384163b156106a75760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610aac908990899088908890889060040161130d565b6020604051808303816000875af1925050508015610ae7575060408051601f3d908101601f19168201909252610ae491810190611202565b60015b610af35761094461121f565b6001600160e01b0319811663f23a6e6160e01b14610a145760405162461bcd60e51b81526004016101f3906112c5565b80356001600160a01b0381168114610b3a57600080fd5b919050565b60008060408385031215610b5257600080fd5b610b5b83610b23565b946020939093013593505050565b6001600160e01b031981168114610b7f57600080fd5b50565b600060208284031215610b9457600080fd5b8135610b9f81610b69565b9392505050565b600060208284031215610bb857600080fd5b5035919050565b6000815180845260005b81811015610be557602081850181015186830182015201610bc9565b81811115610bf7576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610b9f6020830184610bbf565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715610c5b57610c5b610c1f565b6040525050565b600067ffffffffffffffff821115610c7c57610c7c610c1f565b5060051b60200190565b600082601f830112610c9757600080fd5b81356020610ca482610c62565b604051610cb18282610c35565b83815260059390931b8501820192828101915086841115610cd157600080fd5b8286015b84811015610cec5780358352918301918301610cd5565b509695505050505050565b600082601f830112610d0857600080fd5b813567ffffffffffffffff811115610d2257610d22610c1f565b604051610d39601f8301601f191660200182610c35565b818152846020838601011115610d4e57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215610d8357600080fd5b610d8c86610b23565b9450610d9a60208701610b23565b9350604086013567ffffffffffffffff80821115610db757600080fd5b610dc389838a01610c86565b94506060880135915080821115610dd957600080fd5b610de589838a01610c86565b93506080880135915080821115610dfb57600080fd5b50610e0888828901610cf7565b9150509295509295909350565b60008060408385031215610e2857600080fd5b823567ffffffffffffffff80821115610e4057600080fd5b818501915085601f830112610e5457600080fd5b81356020610e6182610c62565b604051610e6e8282610c35565b83815260059390931b8501820192828101915089841115610e8e57600080fd5b948201945b83861015610eb357610ea486610b23565b82529482019490820190610e93565b96505086013592505080821115610ec957600080fd5b50610ed685828601610c86565b9150509250929050565b600081518084526020808501945080840160005b83811015610f1057815187529582019590820190600101610ef4565b509495945050505050565b602081526000610b9f6020830184610ee0565b60008060408385031215610f4157600080fd5b610f4a83610b23565b915060208301358015158114610f5f57600080fd5b809150509250929050565b60008060408385031215610f7d57600080fd5b610f8683610b23565b9150610f9460208401610b23565b90509250929050565b600080600080600060a08688031215610fb557600080fd5b610fbe86610b23565b9450610fcc60208701610b23565b93506040860135925060608601359150608086013567ffffffffffffffff811115610ff657600080fd5b610e0888828901610cf7565b600181811c9082168061101657607f821691505b60208210810361103657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016110c8576110c86110a0565b5060010190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60008219821115611171576111716110a0565b500190565b6040815260006111896040830185610ee0565b828103602084015261119b8185610ee0565b95945050505050565b6001600160a01b0386811682528516602082015260a0604082018190526000906111d090830186610ee0565b82810360608401526111e28186610ee0565b905082810360808401526111f68185610bbf565b98975050505050505050565b60006020828403121561121457600080fd5b8151610b9f81610b69565b600060033d11156112385760046000803e5060005160e01c5b90565b600060443d10156112495790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561127957505050505090565b82850191508151818111156112915750505050505090565b843d87010160208285010111156112ab5750505050505090565b6112ba60208286010187610c35565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061134790830184610bbf565b97965050505050505056fea2646970667358221220a690293c88d6344935ce74699232e93a05c2c54bc9e019a4c16e196e6916539864736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC1155Holder.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC1155Holder.json index e0cb036..f4780bf 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC1155Holder.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC1155Holder.json @@ -101,8 +101,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506103b8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a714610046578063bc197c811461006e578063f23a6e61146100a6575b600080fd5b61005961005436600461030c565b6100c5565b60405190151581526020015b60405180910390f35b61008d61007c366004610203565b63bc197c8160e01b95945050505050565b6040516001600160e01b03199091168152602001610065565b61008d6100b43660046102a9565b63f23a6e6160e01b95945050505050565b60006001600160e01b03198216630271189760e51b14806100f657506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b80356001600160a01b03811681146100f957600080fd5b600082601f830112610125578081fd5b8135602067ffffffffffffffff8211156101415761014161036c565b8160051b61015082820161033b565b83815282810190868401838801850189101561016a578687fd5b8693505b8584101561018c57803583526001939093019291840191840161016e565b50979650505050505050565b600082601f8301126101a8578081fd5b813567ffffffffffffffff8111156101c2576101c261036c565b6101d5601f8201601f191660200161033b565b8181528460208386010111156101e9578283fd5b816020850160208301379081016020019190915292915050565b600080600080600060a0868803121561021a578081fd5b610223866100fe565b9450610231602087016100fe565b9350604086013567ffffffffffffffff8082111561024d578283fd5b61025989838a01610115565b9450606088013591508082111561026e578283fd5b61027a89838a01610115565b9350608088013591508082111561028f578283fd5b5061029c88828901610198565b9150509295509295909350565b600080600080600060a086880312156102c0578081fd5b6102c9866100fe565b94506102d7602087016100fe565b93506040860135925060608601359150608086013567ffffffffffffffff811115610300578182fd5b61029c88828901610198565b60006020828403121561031d578081fd5b81356001600160e01b031981168114610334578182fd5b9392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156103645761036461036c565b604052919050565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220c7089a563675685ec683fd12db514d46eb711c3b0cdf61b0863c181eff8fdfde64736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a714610046578063bc197c811461006e578063f23a6e61146100a6575b600080fd5b61005961005436600461030c565b6100c5565b60405190151581526020015b60405180910390f35b61008d61007c366004610203565b63bc197c8160e01b95945050505050565b6040516001600160e01b03199091168152602001610065565b61008d6100b43660046102a9565b63f23a6e6160e01b95945050505050565b60006001600160e01b03198216630271189760e51b14806100f657506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b80356001600160a01b03811681146100f957600080fd5b600082601f830112610125578081fd5b8135602067ffffffffffffffff8211156101415761014161036c565b8160051b61015082820161033b565b83815282810190868401838801850189101561016a578687fd5b8693505b8584101561018c57803583526001939093019291840191840161016e565b50979650505050505050565b600082601f8301126101a8578081fd5b813567ffffffffffffffff8111156101c2576101c261036c565b6101d5601f8201601f191660200161033b565b8181528460208386010111156101e9578283fd5b816020850160208301379081016020019190915292915050565b600080600080600060a0868803121561021a578081fd5b610223866100fe565b9450610231602087016100fe565b9350604086013567ffffffffffffffff8082111561024d578283fd5b61025989838a01610115565b9450606088013591508082111561026e578283fd5b61027a89838a01610115565b9350608088013591508082111561028f578283fd5b5061029c88828901610198565b9150509295509295909350565b600080600080600060a086880312156102c0578081fd5b6102c9866100fe565b94506102d7602087016100fe565b93506040860135925060608601359150608086013567ffffffffffffffff811115610300578182fd5b61029c88828901610198565b60006020828403121561031d578081fd5b81356001600160e01b031981168114610334578182fd5b9392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156103645761036461036c565b604052919050565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220c7089a563675685ec683fd12db514d46eb711c3b0cdf61b0863c181eff8fdfde64736f6c63430008030033", + "bytecode": "0x608060405234801561001057600080fd5b506103c5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a714610046578063bc197c811461006e578063f23a6e61146100a6575b600080fd5b6100596100543660046100fc565b6100c5565b60405190151581526020015b60405180910390f35b61008d61007c366004610280565b63bc197c8160e01b95945050505050565b6040516001600160e01b03199091168152602001610065565b61008d6100b436600461032a565b63f23a6e6160e01b95945050505050565b60006001600160e01b03198216630271189760e51b14806100f657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561010e57600080fd5b81356001600160e01b03198116811461012657600080fd5b9392505050565b80356001600160a01b038116811461014457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561018857610188610149565b604052919050565b600082601f8301126101a157600080fd5b8135602067ffffffffffffffff8211156101bd576101bd610149565b8160051b6101cc82820161015f565b92835284810182019282810190878511156101e657600080fd5b83870192505b84831015610205578235825291830191908301906101ec565b979650505050505050565b600082601f83011261022157600080fd5b813567ffffffffffffffff81111561023b5761023b610149565b61024e601f8201601f191660200161015f565b81815284602083860101111561026357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561029857600080fd5b6102a18661012d565b94506102af6020870161012d565b9350604086013567ffffffffffffffff808211156102cc57600080fd5b6102d889838a01610190565b945060608801359150808211156102ee57600080fd5b6102fa89838a01610190565b9350608088013591508082111561031057600080fd5b5061031d88828901610210565b9150509295509295909350565b600080600080600060a0868803121561034257600080fd5b61034b8661012d565b94506103596020870161012d565b93506040860135925060608601359150608086013567ffffffffffffffff81111561038357600080fd5b61031d8882890161021056fea26469706673582212209e59a98cec3bcfd01c6cf17362bae2a8fe30630fad8342f10ae79d6ad274689d64736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a714610046578063bc197c811461006e578063f23a6e61146100a6575b600080fd5b6100596100543660046100fc565b6100c5565b60405190151581526020015b60405180910390f35b61008d61007c366004610280565b63bc197c8160e01b95945050505050565b6040516001600160e01b03199091168152602001610065565b61008d6100b436600461032a565b63f23a6e6160e01b95945050505050565b60006001600160e01b03198216630271189760e51b14806100f657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561010e57600080fd5b81356001600160e01b03198116811461012657600080fd5b9392505050565b80356001600160a01b038116811461014457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561018857610188610149565b604052919050565b600082601f8301126101a157600080fd5b8135602067ffffffffffffffff8211156101bd576101bd610149565b8160051b6101cc82820161015f565b92835284810182019282810190878511156101e657600080fd5b83870192505b84831015610205578235825291830191908301906101ec565b979650505050505050565b600082601f83011261022157600080fd5b813567ffffffffffffffff81111561023b5761023b610149565b61024e601f8201601f191660200161015f565b81815284602083860101111561026357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561029857600080fd5b6102a18661012d565b94506102af6020870161012d565b9350604086013567ffffffffffffffff808211156102cc57600080fd5b6102d889838a01610190565b945060608801359150808211156102ee57600080fd5b6102fa89838a01610190565b9350608088013591508082111561031057600080fd5b5061031d88828901610210565b9150509295509295909350565b600080600080600060a0868803121561034257600080fd5b61034b8661012d565b94506103596020870161012d565b93506040860135925060608601359150608086013567ffffffffffffffff81111561038357600080fd5b61031d8882890161021056fea26469706673582212209e59a98cec3bcfd01c6cf17362bae2a8fe30630fad8342f10ae79d6ad274689d64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC1155PresetMinterPauser.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC1155PresetMinterPauser.json index 88ab914..7f9b646 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC1155PresetMinterPauser.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC1155PresetMinterPauser.json @@ -736,8 +736,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162002e4b38038062002e4b8339810160408190526200003491620002d8565b806200004081620000b8565b506005805460ff19169055620000596000335b620000d1565b620000857f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000053565b620000b17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3362000053565b5062000401565b8051620000cd90600490602084019062000232565b5050565b620000e882826200011460201b62000b791760201c565b60008281526001602090815260409091206200010f91839062000b8762000120821b17901c565b505050565b620000cd828262000140565b600062000137836001600160a01b038416620001e0565b90505b92915050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000cd576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200019c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600081815260018301602052604081205462000229575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200013a565b5060006200013a565b8280546200024090620003ae565b90600052602060002090601f016020900481019282620002645760008555620002af565b82601f106200027f57805160ff1916838001178555620002af565b82800160010185558215620002af579182015b82811115620002af57825182559160200191906001019062000292565b50620002bd929150620002c1565b5090565b5b80821115620002bd5760008155600101620002c2565b60006020808385031215620002eb578182fd5b82516001600160401b038082111562000302578384fd5b818501915085601f83011262000316578384fd5b8151818111156200032b576200032b620003eb565b604051601f8201601f19908116603f01168101908382118183101715620003565762000356620003eb565b8160405282815288868487010111156200036e578687fd5b8693505b8284101562000391578484018601518185018701529285019262000372565b82841115620003a257868684830101525b98975050505050505050565b600181811c90821680620003c357607f821691505b60208210811415620003e557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612a3a80620004116000396000f3fe608060405234801561001057600080fd5b50600436106101725760003560e01c8063731133e9116100de578063ca15c87311610097578063e63ab1e911610071578063e63ab1e914610355578063e985e9c51461037c578063f242432a146103b8578063f5298aca146103cb57610172565b8063ca15c87314610308578063d53913931461031b578063d547741f1461034257610172565b8063731133e9146102945780638456cb59146102a75780639010d07c146102af57806391d14854146102da578063a217fddf146102ed578063a22cb465146102f557610172565b80632f2ff15d116101305780632f2ff15d1461022b57806336568abe1461023e5780633f4ba83a146102515780634e1273f4146102595780635c975abb146102795780636b20c4541461028157610172565b8062fdd58e1461017757806301ffc9a71461019d5780630e89341c146101c05780631f7fdffa146101e0578063248a9ca3146101f55780632eb2c2d614610218575b600080fd5b61018a610185366004612173565b6103de565b6040519081526020015b60405180910390f35b6101b06101ab366004612347565b61047a565b6040519015158152602001610194565b6101d36101ce3660046122ec565b61048d565b604051610194919061253e565b6101f36101ee3660046120a4565b610521565b005b61018a6102033660046122ec565b60009081526020819052604090206001015490565b6101f3610226366004611f2a565b610579565b6101f3610239366004612304565b610610565b6101f361024c366004612304565b610637565b6101f3610659565b61026c610267366004612221565b6106ff565b60405161019491906124fd565b6101b0610861565b6101f361028f366004612033565b61086b565b6101f36102a23660046121ce565b6108ae565b6101f3610900565b6102c26102bd366004612326565b6109a4565b6040516001600160a01b039091168152602001610194565b6101b06102e8366004612304565b6109c3565b61018a600081565b6101f3610303366004612139565b6109ec565b61018a6103163660046122ec565b610ad0565b61018a7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6101f3610350366004612304565b610ae7565b61018a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101b061038a366004611ef8565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b6101f36103c6366004611fd0565b610af1565b6101f36103d936600461219c565b610b36565b60006001600160a01b03831661044f5760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b600061048582610b9c565b90505b919050565b60606004805461049c90612893565b80601f01602080910402602001604051908101604052809291908181526020018280546104c890612893565b80156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b50505050509050919050565b61054b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336102e8565b6105675760405162461bcd60e51b8152600401610446906126ae565b61057384848484610bdc565b50505050565b6001600160a01b0385163314806105955750610595853361038a565b6105fc5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b6064820152608401610446565b6106098585858585610d53565b5050505050565b61061a8282610f1c565b60008281526001602052604090206106329082610b87565b505050565b6106418282610f43565b60008281526001602052604090206106329082610fbd565b6106837f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336102e8565b6106f55760405162461bcd60e51b815260206004820152603b60248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20756e706175736500000000006064820152608401610446565b6106fd610fd2565b565b606081518351146107645760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610446565b6000835167ffffffffffffffff81111561078e57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107b7578160200160208202803683370190505b50905060005b84518110156108595761081e8582815181106107e957634e487b7160e01b600052603260045260246000fd5b602002602001015185838151811061081157634e487b7160e01b600052603260045260246000fd5b60200260200101516103de565b82828151811061083e57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152610852816128fb565b90506107bd565b509392505050565b60055460ff165b90565b6001600160a01b0383163314806108875750610887833361038a565b6108a35760405162461bcd60e51b8152600401610446906125dd565b610632838383611067565b6108d87f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336102e8565b6108f45760405162461bcd60e51b8152600401610446906126ae565b61057384848484611214565b61092a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336102e8565b61099c5760405162461bcd60e51b815260206004820152603960248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f207061757365000000000000006064820152608401610446565b6106fd6112ec565b60008281526001602052604081206109bc9083611369565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b336001600160a01b0383161415610a575760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610446565b3360008181526003602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ac4911515815260200190565b60405180910390a35050565b600081815260016020526040812061048590611375565b610641828261137f565b6001600160a01b038516331480610b0d5750610b0d853361038a565b610b295760405162461bcd60e51b8152600401610446906125dd565b61060985858585856113a5565b6001600160a01b038316331480610b525750610b52833361038a565b610b6e5760405162461bcd60e51b8152600401610446906125dd565b6106328383836114c6565b610b8382826115cb565b5050565b60006109bc836001600160a01b03841661164f565b60006001600160e01b03198216636cdb3d1360e11b1480610bcd57506001600160e01b031982166303a24d0760e21b145b8061048557506104858261169e565b6001600160a01b038416610c025760405162461bcd60e51b81526004016104469061279d565b8151835114610c235760405162461bcd60e51b815260040161044690612755565b33610c33816000878787876116c3565b60005b8451811015610ceb57838181518110610c5f57634e487b7160e01b600052603260045260246000fd5b602002602001015160026000878481518110610c8b57634e487b7160e01b600052603260045260246000fd5b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254610cd39190612802565b90915550819050610ce3816128fb565b915050610c36565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610d3c929190612510565b60405180910390a4610609816000878787876116d1565b8151835114610d745760405162461bcd60e51b815260040161044690612755565b6001600160a01b038416610d9a5760405162461bcd60e51b815260040161044690612626565b33610da98187878787876116c3565b60005b8451811015610eae576000858281518110610dd757634e487b7160e01b600052603260045260246000fd5b602002602001015190506000858381518110610e0357634e487b7160e01b600052603260045260246000fd5b60209081029190910181015160008481526002835260408082206001600160a01b038e168352909352919091205490915081811015610e545760405162461bcd60e51b81526004016104469061270b565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610e93908490612802565b9250508190555050505080610ea7906128fb565b9050610dac565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610efe929190612510565b60405180910390a4610f148187878787876116d1565b505050505050565b600082815260208190526040902060010154610f3981335b61183c565b61063283836115cb565b6001600160a01b0381163314610fb35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610446565b610b8382826118a0565b60006109bc836001600160a01b038416611905565b610fda610861565b61101d5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610446565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03831661108d5760405162461bcd60e51b81526004016104469061266b565b80518251146110ae5760405162461bcd60e51b815260040161044690612755565b60003390506110d1818560008686604051806020016040528060008152506116c3565b60005b83518110156111b55760008482815181106110ff57634e487b7160e01b600052603260045260246000fd5b60200260200101519050600084838151811061112b57634e487b7160e01b600052603260045260246000fd5b60209081029190910181015160008481526002835260408082206001600160a01b038c16835290935291909120549091508181101561117c5760405162461bcd60e51b815260040161044690612599565b60009283526002602090815260408085206001600160a01b038b16865290915290922091039055806111ad816128fb565b9150506110d4565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611206929190612510565b60405180910390a450505050565b6001600160a01b03841661123a5760405162461bcd60e51b81526004016104469061279d565b3361125a8160008761124b88611a22565b61125488611a22565b876116c3565b60008481526002602090815260408083206001600160a01b03891684529091528120805485929061128c908490612802565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461060981600087878787611a7b565b6112f4610861565b156113345760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610446565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861104a3390565b60006109bc8383611b45565b6000610485825490565b60008281526020819052604090206001015461139b8133610f34565b61063283836118a0565b6001600160a01b0384166113cb5760405162461bcd60e51b815260040161044690612626565b336113db81878761124b88611a22565b60008481526002602090815260408083206001600160a01b038a1684529091529020548381101561141e5760405162461bcd60e51b81526004016104469061270b565b60008581526002602090815260408083206001600160a01b038b811685529252808320878503905590881682528120805486929061145d908490612802565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46114bd828888888888611a7b565b50505050505050565b6001600160a01b0383166114ec5760405162461bcd60e51b81526004016104469061266b565b3361151b818560006114fd87611a22565b61150687611a22565b604051806020016040528060008152506116c3565b60008381526002602090815260408083206001600160a01b03881684529091529020548281101561155e5760405162461bcd60e51b815260040161044690612599565b60008481526002602090815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b6115d582826109c3565b610b83576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561160b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600081815260018301602052604081205461169657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610474565b506000610474565b60006001600160e01b03198216635a05180f60e01b1480610485575061048582611b7d565b610f14868686868686611bb2565b6001600160a01b0384163b15610f145760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611715908990899088908890889060040161245a565b602060405180830381600087803b15801561172f57600080fd5b505af192505050801561175f575060408051601f3d908101601f1916820190925261175c91810190612363565b60015b61180c5761176b612942565b806308c379a014156117a55750611780612959565b8061178b57506117a7565b8060405162461bcd60e51b8152600401610446919061253e565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610446565b6001600160e01b0319811663bc197c8160e01b146114bd5760405162461bcd60e51b815260040161044690612551565b61184682826109c3565b610b835761185e816001600160a01b03166014611c1c565b611869836020611c1c565b60405160200161187a9291906123e5565b60408051601f198184030181529082905262461bcd60e51b82526104469160040161253e565b6118aa82826109c3565b15610b83576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008181526001830160205260408120548015611a18576000611929600183612839565b855490915060009061193d90600190612839565b90508181146119be57600086600001828154811061196b57634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061199c57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806119dd57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610474565b6000915050610474565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611a6a57634e487b7160e01b600052603260045260246000fd5b602090810291909101015292915050565b6001600160a01b0384163b15610f145760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611abf90899089908890889088906004016124b8565b602060405180830381600087803b158015611ad957600080fd5b505af1925050508015611b09575060408051601f3d908101601f19168201909252611b0691810190612363565b60015b611b155761176b612942565b6001600160e01b0319811663f23a6e6160e01b146114bd5760405162461bcd60e51b815260040161044690612551565b6000826000018281548110611b6a57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60006001600160e01b03198216637965db0b60e01b148061048557506301ffc9a760e01b6001600160e01b0319831614610485565b611bba610861565b15610f145760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201526b1dda1a5b19481c185d5cd95960a21b6064820152608401610446565b60606000611c2b83600261281a565b611c36906002612802565b67ffffffffffffffff811115611c5c57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c86576020820181803683370190505b509050600360fc1b81600081518110611caf57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611cec57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611d1084600261281a565b611d1b906001612802565b90505b6001811115611daf576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d5d57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110611d8157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93611da88161287c565b9050611d1e565b5083156109bc5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610446565b80356001600160a01b038116811461048857600080fd5b600082601f830112611e25578081fd5b81356020611e32826127de565b604051611e3f82826128ce565b8381528281019150858301600585901b87018401881015611e5e578586fd5b855b85811015611e7c57813584529284019290840190600101611e60565b5090979650505050505050565b600082601f830112611e99578081fd5b813567ffffffffffffffff811115611eb357611eb361292c565b604051611eca601f8301601f1916602001826128ce565b818152846020838601011115611ede578283fd5b816020850160208301379081016020019190915292915050565b60008060408385031215611f0a578182fd5b611f1383611dfe565b9150611f2160208401611dfe565b90509250929050565b600080600080600060a08688031215611f41578081fd5b611f4a86611dfe565b9450611f5860208701611dfe565b9350604086013567ffffffffffffffff80821115611f74578283fd5b611f8089838a01611e15565b94506060880135915080821115611f95578283fd5b611fa189838a01611e15565b93506080880135915080821115611fb6578283fd5b50611fc388828901611e89565b9150509295509295909350565b600080600080600060a08688031215611fe7578081fd5b611ff086611dfe565b9450611ffe60208701611dfe565b93506040860135925060608601359150608086013567ffffffffffffffff811115612027578182fd5b611fc388828901611e89565b600080600060608486031215612047578283fd5b61205084611dfe565b9250602084013567ffffffffffffffff8082111561206c578384fd5b61207887838801611e15565b9350604086013591508082111561208d578283fd5b5061209a86828701611e15565b9150509250925092565b600080600080608085870312156120b9578384fd5b6120c285611dfe565b9350602085013567ffffffffffffffff808211156120de578485fd5b6120ea88838901611e15565b945060408701359150808211156120ff578384fd5b61210b88838901611e15565b93506060870135915080821115612120578283fd5b5061212d87828801611e89565b91505092959194509250565b6000806040838503121561214b578182fd5b61215483611dfe565b915060208301358015158114612168578182fd5b809150509250929050565b60008060408385031215612185578182fd5b61218e83611dfe565b946020939093013593505050565b6000806000606084860312156121b0578081fd5b6121b984611dfe565b95602085013595506040909401359392505050565b600080600080608085870312156121e3578182fd5b6121ec85611dfe565b93506020850135925060408501359150606085013567ffffffffffffffff811115612215578182fd5b61212d87828801611e89565b60008060408385031215612233578182fd5b823567ffffffffffffffff8082111561224a578384fd5b818501915085601f83011261225d578384fd5b8135602061226a826127de565b60405161227782826128ce565b8381528281019150858301600585901b870184018b1015612296578889fd5b8896505b848710156122bf576122ab81611dfe565b83526001969096019591830191830161229a565b50965050860135925050808211156122d5578283fd5b506122e285828601611e15565b9150509250929050565b6000602082840312156122fd578081fd5b5035919050565b60008060408385031215612316578182fd5b82359150611f2160208401611dfe565b60008060408385031215612338578182fd5b50508035926020909101359150565b600060208284031215612358578081fd5b81356109bc816129eb565b600060208284031215612374578081fd5b81516109bc816129eb565b6000815180845260208085019450808401835b838110156123ae57815187529582019590820190600101612392565b509495945050505050565b600081518084526123d1816020860160208601612850565b601f01601f19169290920160200192915050565b60007f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008252835161241d816017850160208801612850565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161244e816028840160208801612850565b01602801949350505050565b6001600160a01b0386811682528516602082015260a0604082018190526000906124869083018661237f565b8281036060840152612498818661237f565b905082810360808401526124ac81856123b9565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906124f2908301846123b9565b979650505050505050565b6000602082526109bc602083018461237f565b600060408252612523604083018561237f565b8281036020840152612535818561237f565b95945050505050565b6000602082526109bc60208301846123b9565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b60208082526029908201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260408201526808185c1c1c9bdd995960ba1b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526038908201527f455243313135355072657365744d696e7465725061757365723a206d7573742060408201527f68617665206d696e74657220726f6c6520746f206d696e740000000000000000606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b600067ffffffffffffffff8211156127f8576127f861292c565b5060051b60200190565b6000821982111561281557612815612916565b500190565b600081600019048311821515161561283457612834612916565b500290565b60008282101561284b5761284b612916565b500390565b60005b8381101561286b578181015183820152602001612853565b838111156105735750506000910152565b60008161288b5761288b612916565b506000190190565b600181811c908216806128a757607f821691505b602082108114156128c857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8201601f1916810167ffffffffffffffff811182821017156128f4576128f461292c565b6040525050565b600060001982141561290f5761290f612916565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d111561086857600481823e5160e01c90565b600060443d101561296957610868565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561299b575050505050610868565b82850191508151818111156129b557505050505050610868565b843d87010160208285010111156129d157505050505050610868565b6129e0602082860101876128ce565b509094505050505090565b6001600160e01b031981168114612a0157600080fd5b5056fea2646970667358221220060dba8a5818696e0f5d911225cc590120dc203aec666c59c2a67d5b30ecb68464736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101725760003560e01c8063731133e9116100de578063ca15c87311610097578063e63ab1e911610071578063e63ab1e914610355578063e985e9c51461037c578063f242432a146103b8578063f5298aca146103cb57610172565b8063ca15c87314610308578063d53913931461031b578063d547741f1461034257610172565b8063731133e9146102945780638456cb59146102a75780639010d07c146102af57806391d14854146102da578063a217fddf146102ed578063a22cb465146102f557610172565b80632f2ff15d116101305780632f2ff15d1461022b57806336568abe1461023e5780633f4ba83a146102515780634e1273f4146102595780635c975abb146102795780636b20c4541461028157610172565b8062fdd58e1461017757806301ffc9a71461019d5780630e89341c146101c05780631f7fdffa146101e0578063248a9ca3146101f55780632eb2c2d614610218575b600080fd5b61018a610185366004612173565b6103de565b6040519081526020015b60405180910390f35b6101b06101ab366004612347565b61047a565b6040519015158152602001610194565b6101d36101ce3660046122ec565b61048d565b604051610194919061253e565b6101f36101ee3660046120a4565b610521565b005b61018a6102033660046122ec565b60009081526020819052604090206001015490565b6101f3610226366004611f2a565b610579565b6101f3610239366004612304565b610610565b6101f361024c366004612304565b610637565b6101f3610659565b61026c610267366004612221565b6106ff565b60405161019491906124fd565b6101b0610861565b6101f361028f366004612033565b61086b565b6101f36102a23660046121ce565b6108ae565b6101f3610900565b6102c26102bd366004612326565b6109a4565b6040516001600160a01b039091168152602001610194565b6101b06102e8366004612304565b6109c3565b61018a600081565b6101f3610303366004612139565b6109ec565b61018a6103163660046122ec565b610ad0565b61018a7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6101f3610350366004612304565b610ae7565b61018a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101b061038a366004611ef8565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b6101f36103c6366004611fd0565b610af1565b6101f36103d936600461219c565b610b36565b60006001600160a01b03831661044f5760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b600061048582610b9c565b90505b919050565b60606004805461049c90612893565b80601f01602080910402602001604051908101604052809291908181526020018280546104c890612893565b80156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b50505050509050919050565b61054b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336102e8565b6105675760405162461bcd60e51b8152600401610446906126ae565b61057384848484610bdc565b50505050565b6001600160a01b0385163314806105955750610595853361038a565b6105fc5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b6064820152608401610446565b6106098585858585610d53565b5050505050565b61061a8282610f1c565b60008281526001602052604090206106329082610b87565b505050565b6106418282610f43565b60008281526001602052604090206106329082610fbd565b6106837f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336102e8565b6106f55760405162461bcd60e51b815260206004820152603b60248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20756e706175736500000000006064820152608401610446565b6106fd610fd2565b565b606081518351146107645760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610446565b6000835167ffffffffffffffff81111561078e57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107b7578160200160208202803683370190505b50905060005b84518110156108595761081e8582815181106107e957634e487b7160e01b600052603260045260246000fd5b602002602001015185838151811061081157634e487b7160e01b600052603260045260246000fd5b60200260200101516103de565b82828151811061083e57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152610852816128fb565b90506107bd565b509392505050565b60055460ff165b90565b6001600160a01b0383163314806108875750610887833361038a565b6108a35760405162461bcd60e51b8152600401610446906125dd565b610632838383611067565b6108d87f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336102e8565b6108f45760405162461bcd60e51b8152600401610446906126ae565b61057384848484611214565b61092a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336102e8565b61099c5760405162461bcd60e51b815260206004820152603960248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f207061757365000000000000006064820152608401610446565b6106fd6112ec565b60008281526001602052604081206109bc9083611369565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b336001600160a01b0383161415610a575760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610446565b3360008181526003602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ac4911515815260200190565b60405180910390a35050565b600081815260016020526040812061048590611375565b610641828261137f565b6001600160a01b038516331480610b0d5750610b0d853361038a565b610b295760405162461bcd60e51b8152600401610446906125dd565b61060985858585856113a5565b6001600160a01b038316331480610b525750610b52833361038a565b610b6e5760405162461bcd60e51b8152600401610446906125dd565b6106328383836114c6565b610b8382826115cb565b5050565b60006109bc836001600160a01b03841661164f565b60006001600160e01b03198216636cdb3d1360e11b1480610bcd57506001600160e01b031982166303a24d0760e21b145b8061048557506104858261169e565b6001600160a01b038416610c025760405162461bcd60e51b81526004016104469061279d565b8151835114610c235760405162461bcd60e51b815260040161044690612755565b33610c33816000878787876116c3565b60005b8451811015610ceb57838181518110610c5f57634e487b7160e01b600052603260045260246000fd5b602002602001015160026000878481518110610c8b57634e487b7160e01b600052603260045260246000fd5b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254610cd39190612802565b90915550819050610ce3816128fb565b915050610c36565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610d3c929190612510565b60405180910390a4610609816000878787876116d1565b8151835114610d745760405162461bcd60e51b815260040161044690612755565b6001600160a01b038416610d9a5760405162461bcd60e51b815260040161044690612626565b33610da98187878787876116c3565b60005b8451811015610eae576000858281518110610dd757634e487b7160e01b600052603260045260246000fd5b602002602001015190506000858381518110610e0357634e487b7160e01b600052603260045260246000fd5b60209081029190910181015160008481526002835260408082206001600160a01b038e168352909352919091205490915081811015610e545760405162461bcd60e51b81526004016104469061270b565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610e93908490612802565b9250508190555050505080610ea7906128fb565b9050610dac565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610efe929190612510565b60405180910390a4610f148187878787876116d1565b505050505050565b600082815260208190526040902060010154610f3981335b61183c565b61063283836115cb565b6001600160a01b0381163314610fb35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610446565b610b8382826118a0565b60006109bc836001600160a01b038416611905565b610fda610861565b61101d5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610446565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03831661108d5760405162461bcd60e51b81526004016104469061266b565b80518251146110ae5760405162461bcd60e51b815260040161044690612755565b60003390506110d1818560008686604051806020016040528060008152506116c3565b60005b83518110156111b55760008482815181106110ff57634e487b7160e01b600052603260045260246000fd5b60200260200101519050600084838151811061112b57634e487b7160e01b600052603260045260246000fd5b60209081029190910181015160008481526002835260408082206001600160a01b038c16835290935291909120549091508181101561117c5760405162461bcd60e51b815260040161044690612599565b60009283526002602090815260408085206001600160a01b038b16865290915290922091039055806111ad816128fb565b9150506110d4565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611206929190612510565b60405180910390a450505050565b6001600160a01b03841661123a5760405162461bcd60e51b81526004016104469061279d565b3361125a8160008761124b88611a22565b61125488611a22565b876116c3565b60008481526002602090815260408083206001600160a01b03891684529091528120805485929061128c908490612802565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461060981600087878787611a7b565b6112f4610861565b156113345760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610446565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861104a3390565b60006109bc8383611b45565b6000610485825490565b60008281526020819052604090206001015461139b8133610f34565b61063283836118a0565b6001600160a01b0384166113cb5760405162461bcd60e51b815260040161044690612626565b336113db81878761124b88611a22565b60008481526002602090815260408083206001600160a01b038a1684529091529020548381101561141e5760405162461bcd60e51b81526004016104469061270b565b60008581526002602090815260408083206001600160a01b038b811685529252808320878503905590881682528120805486929061145d908490612802565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46114bd828888888888611a7b565b50505050505050565b6001600160a01b0383166114ec5760405162461bcd60e51b81526004016104469061266b565b3361151b818560006114fd87611a22565b61150687611a22565b604051806020016040528060008152506116c3565b60008381526002602090815260408083206001600160a01b03881684529091529020548281101561155e5760405162461bcd60e51b815260040161044690612599565b60008481526002602090815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b6115d582826109c3565b610b83576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561160b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600081815260018301602052604081205461169657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610474565b506000610474565b60006001600160e01b03198216635a05180f60e01b1480610485575061048582611b7d565b610f14868686868686611bb2565b6001600160a01b0384163b15610f145760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611715908990899088908890889060040161245a565b602060405180830381600087803b15801561172f57600080fd5b505af192505050801561175f575060408051601f3d908101601f1916820190925261175c91810190612363565b60015b61180c5761176b612942565b806308c379a014156117a55750611780612959565b8061178b57506117a7565b8060405162461bcd60e51b8152600401610446919061253e565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610446565b6001600160e01b0319811663bc197c8160e01b146114bd5760405162461bcd60e51b815260040161044690612551565b61184682826109c3565b610b835761185e816001600160a01b03166014611c1c565b611869836020611c1c565b60405160200161187a9291906123e5565b60408051601f198184030181529082905262461bcd60e51b82526104469160040161253e565b6118aa82826109c3565b15610b83576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008181526001830160205260408120548015611a18576000611929600183612839565b855490915060009061193d90600190612839565b90508181146119be57600086600001828154811061196b57634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061199c57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806119dd57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610474565b6000915050610474565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611a6a57634e487b7160e01b600052603260045260246000fd5b602090810291909101015292915050565b6001600160a01b0384163b15610f145760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611abf90899089908890889088906004016124b8565b602060405180830381600087803b158015611ad957600080fd5b505af1925050508015611b09575060408051601f3d908101601f19168201909252611b0691810190612363565b60015b611b155761176b612942565b6001600160e01b0319811663f23a6e6160e01b146114bd5760405162461bcd60e51b815260040161044690612551565b6000826000018281548110611b6a57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60006001600160e01b03198216637965db0b60e01b148061048557506301ffc9a760e01b6001600160e01b0319831614610485565b611bba610861565b15610f145760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201526b1dda1a5b19481c185d5cd95960a21b6064820152608401610446565b60606000611c2b83600261281a565b611c36906002612802565b67ffffffffffffffff811115611c5c57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c86576020820181803683370190505b509050600360fc1b81600081518110611caf57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611cec57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611d1084600261281a565b611d1b906001612802565b90505b6001811115611daf576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d5d57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110611d8157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93611da88161287c565b9050611d1e565b5083156109bc5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610446565b80356001600160a01b038116811461048857600080fd5b600082601f830112611e25578081fd5b81356020611e32826127de565b604051611e3f82826128ce565b8381528281019150858301600585901b87018401881015611e5e578586fd5b855b85811015611e7c57813584529284019290840190600101611e60565b5090979650505050505050565b600082601f830112611e99578081fd5b813567ffffffffffffffff811115611eb357611eb361292c565b604051611eca601f8301601f1916602001826128ce565b818152846020838601011115611ede578283fd5b816020850160208301379081016020019190915292915050565b60008060408385031215611f0a578182fd5b611f1383611dfe565b9150611f2160208401611dfe565b90509250929050565b600080600080600060a08688031215611f41578081fd5b611f4a86611dfe565b9450611f5860208701611dfe565b9350604086013567ffffffffffffffff80821115611f74578283fd5b611f8089838a01611e15565b94506060880135915080821115611f95578283fd5b611fa189838a01611e15565b93506080880135915080821115611fb6578283fd5b50611fc388828901611e89565b9150509295509295909350565b600080600080600060a08688031215611fe7578081fd5b611ff086611dfe565b9450611ffe60208701611dfe565b93506040860135925060608601359150608086013567ffffffffffffffff811115612027578182fd5b611fc388828901611e89565b600080600060608486031215612047578283fd5b61205084611dfe565b9250602084013567ffffffffffffffff8082111561206c578384fd5b61207887838801611e15565b9350604086013591508082111561208d578283fd5b5061209a86828701611e15565b9150509250925092565b600080600080608085870312156120b9578384fd5b6120c285611dfe565b9350602085013567ffffffffffffffff808211156120de578485fd5b6120ea88838901611e15565b945060408701359150808211156120ff578384fd5b61210b88838901611e15565b93506060870135915080821115612120578283fd5b5061212d87828801611e89565b91505092959194509250565b6000806040838503121561214b578182fd5b61215483611dfe565b915060208301358015158114612168578182fd5b809150509250929050565b60008060408385031215612185578182fd5b61218e83611dfe565b946020939093013593505050565b6000806000606084860312156121b0578081fd5b6121b984611dfe565b95602085013595506040909401359392505050565b600080600080608085870312156121e3578182fd5b6121ec85611dfe565b93506020850135925060408501359150606085013567ffffffffffffffff811115612215578182fd5b61212d87828801611e89565b60008060408385031215612233578182fd5b823567ffffffffffffffff8082111561224a578384fd5b818501915085601f83011261225d578384fd5b8135602061226a826127de565b60405161227782826128ce565b8381528281019150858301600585901b870184018b1015612296578889fd5b8896505b848710156122bf576122ab81611dfe565b83526001969096019591830191830161229a565b50965050860135925050808211156122d5578283fd5b506122e285828601611e15565b9150509250929050565b6000602082840312156122fd578081fd5b5035919050565b60008060408385031215612316578182fd5b82359150611f2160208401611dfe565b60008060408385031215612338578182fd5b50508035926020909101359150565b600060208284031215612358578081fd5b81356109bc816129eb565b600060208284031215612374578081fd5b81516109bc816129eb565b6000815180845260208085019450808401835b838110156123ae57815187529582019590820190600101612392565b509495945050505050565b600081518084526123d1816020860160208601612850565b601f01601f19169290920160200192915050565b60007f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008252835161241d816017850160208801612850565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161244e816028840160208801612850565b01602801949350505050565b6001600160a01b0386811682528516602082015260a0604082018190526000906124869083018661237f565b8281036060840152612498818661237f565b905082810360808401526124ac81856123b9565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906124f2908301846123b9565b979650505050505050565b6000602082526109bc602083018461237f565b600060408252612523604083018561237f565b8281036020840152612535818561237f565b95945050505050565b6000602082526109bc60208301846123b9565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b60208082526029908201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260408201526808185c1c1c9bdd995960ba1b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526038908201527f455243313135355072657365744d696e7465725061757365723a206d7573742060408201527f68617665206d696e74657220726f6c6520746f206d696e740000000000000000606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b600067ffffffffffffffff8211156127f8576127f861292c565b5060051b60200190565b6000821982111561281557612815612916565b500190565b600081600019048311821515161561283457612834612916565b500290565b60008282101561284b5761284b612916565b500390565b60005b8381101561286b578181015183820152602001612853565b838111156105735750506000910152565b60008161288b5761288b612916565b506000190190565b600181811c908216806128a757607f821691505b602082108114156128c857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8201601f1916810167ffffffffffffffff811182821017156128f4576128f461292c565b6040525050565b600060001982141561290f5761290f612916565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d111561086857600481823e5160e01c90565b600060443d101561296957610868565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561299b575050505050610868565b82850191508151818111156129b557505050505050610868565b843d87010160208285010111156129d157505050505050610868565b6129e0602082860101876128ce565b509094505050505090565b6001600160e01b031981168114612a0157600080fd5b5056fea2646970667358221220060dba8a5818696e0f5d911225cc590120dc203aec666c59c2a67d5b30ecb68464736f6c63430008030033", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162002d6138038062002d618339810160408190526200003491620002e7565b806200004081620000b7565b506005805460ff1916905562000058600033620000d0565b620000847f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000d0565b620000b07f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000d0565b50620003ff565b8051620000cc9060049060208401906200022b565b5050565b620000cc8282620000ed82826200011960201b62000a871760201c565b60008281526001602090815260409091206200011491839062000b0b620001b9821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000cc576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001753390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001d0836001600160a01b038416620001d9565b90505b92915050565b60008181526001830160205260408120546200022257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001d3565b506000620001d3565b8280546200023990620003c3565b90600052602060002090601f0160209004810192826200025d5760008555620002a8565b82601f106200027857805160ff1916838001178555620002a8565b82800160010185558215620002a8579182015b82811115620002a85782518255916020019190600101906200028b565b50620002b6929150620002ba565b5090565b5b80821115620002b65760008155600101620002bb565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215620002fb57600080fd5b82516001600160401b03808211156200031357600080fd5b818501915085601f8301126200032857600080fd5b8151818111156200033d576200033d620002d1565b604051601f8201601f19908116603f01168101908382118183101715620003685762000368620002d1565b8160405282815288868487010111156200038157600080fd5b600093505b82841015620003a5578484018601518185018701529285019262000386565b82841115620003b75760008684830101525b98975050505050505050565b600181811c90821680620003d857607f821691505b602082108103620003f957634e487b7160e01b600052602260045260246000fd5b50919050565b612952806200040f6000396000f3fe608060405234801561001057600080fd5b50600436106101725760003560e01c8063731133e9116100de578063ca15c87311610097578063e63ab1e911610071578063e63ab1e914610358578063e985e9c51461037f578063f242432a146103bb578063f5298aca146103ce57600080fd5b8063ca15c8731461030b578063d53913931461031e578063d547741f1461034557600080fd5b8063731133e9146102975780638456cb59146102aa5780639010d07c146102b257806391d14854146102dd578063a217fddf146102f0578063a22cb465146102f857600080fd5b80632f2ff15d116101305780632f2ff15d1461022b57806336568abe1461023e5780633f4ba83a146102515780634e1273f4146102595780635c975abb146102795780636b20c4541461028457600080fd5b8062fdd58e1461017757806301ffc9a71461019d5780630e89341c146101c05780631f7fdffa146101e0578063248a9ca3146101f55780632eb2c2d614610218575b600080fd5b61018a610185366004611ce9565b6103e1565b6040519081526020015b60405180910390f35b6101b06101ab366004611d29565b61047c565b6040519015158152602001610194565b6101d36101ce366004611d46565b610487565b6040516101949190611db7565b6101f36101ee366004611f16565b61051b565b005b61018a610203366004611d46565b60009081526020819052604090206001015490565b6101f3610226366004611faf565b610573565b6101f3610239366004612059565b6105bf565b6101f361024c366004612059565b6105e9565b6101f3610667565b61026c610267366004612085565b61070d565b604051610194919061218b565b60055460ff166101b0565b6101f361029236600461219e565b610837565b6101f36102a5366004612212565b61087a565b6101f36108cc565b6102c56102c0366004612267565b610970565b6040516001600160a01b039091168152602001610194565b6101b06102eb366004612059565b61098f565b61018a600081565b6101f3610306366004612289565b6109b8565b61018a610319366004611d46565b6109c3565b61018a7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6101f3610353366004612059565b6109da565b61018a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101b061038d3660046122c5565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b6101f36103c93660046122ef565b6109ff565b6101f36103dc366004612354565b610a44565b60006001600160a01b0383166104515760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b600061047682610b20565b60606004805461049690612387565b80601f01602080910402602001604051908101604052809291908181526020018280546104c290612387565b801561050f5780601f106104e45761010080835404028352916020019161050f565b820191906000526020600020905b8154815290600101906020018083116104f257829003601f168201915b50505050509050919050565b6105457f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63361098f565b6105615760405162461bcd60e51b8152600401610448906123c1565b61056d84848484610b60565b50505050565b6001600160a01b03851633148061058f575061058f853361038d565b6105ab5760405162461bcd60e51b81526004016104489061241e565b6105b88585858585610cbb565b5050505050565b6000828152602081905260409020600101546105da81610e68565b6105e48383610e75565b505050565b6001600160a01b03811633146106595760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610448565b6106638282610e97565b5050565b6106917f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361098f565b6107035760405162461bcd60e51b815260206004820152603b60248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20756e706175736500000000006064820152608401610448565b61070b610eb9565b565b606081518351146107725760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610448565b6000835167ffffffffffffffff81111561078e5761078e611dca565b6040519080825280602002602001820160405280156107b7578160200160208202803683370190505b50905060005b845181101561082f576108028582815181106107db576107db61246c565b60200260200101518583815181106107f5576107f561246c565b60200260200101516103e1565b8282815181106108145761081461246c565b602090810291909101015261082881612498565b90506107bd565b509392505050565b6001600160a01b0383163314806108535750610853833361038d565b61086f5760405162461bcd60e51b81526004016104489061241e565b6105e4838383610f0b565b6108a47f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63361098f565b6108c05760405162461bcd60e51b8152600401610448906123c1565b61056d848484846110aa565b6108f67f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361098f565b6109685760405162461bcd60e51b815260206004820152603960248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f207061757365000000000000006064820152608401610448565b61070b611195565b600082815260016020526040812061098890836111d2565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6106633383836111de565b6000818152600160205260408120610476906112be565b6000828152602081905260409020600101546109f581610e68565b6105e48383610e97565b6001600160a01b038516331480610a1b5750610a1b853361038d565b610a375760405162461bcd60e51b81526004016104489061241e565b6105b885858585856112c8565b6001600160a01b038316331480610a605750610a60833361038d565b610a7c5760405162461bcd60e51b81526004016104489061241e565b6105e4838383611404565b610a91828261098f565b610663576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610ac73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610988836001600160a01b038416611520565b60006001600160e01b03198216636cdb3d1360e11b1480610b5157506001600160e01b031982166303a24d0760e21b145b8061047657506104768261156f565b6001600160a01b038416610b865760405162461bcd60e51b8152600401610448906124b1565b8151835114610ba75760405162461bcd60e51b8152600401610448906124f2565b33610bb781600087878787611594565b60005b8451811015610c5357838181518110610bd557610bd561246c565b602002602001015160026000878481518110610bf357610bf361246c565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254610c3b919061253a565b90915550819050610c4b81612498565b915050610bba565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610ca4929190612552565b60405180910390a46105b8816000878787876115a2565b8151835114610cdc5760405162461bcd60e51b8152600401610448906124f2565b6001600160a01b038416610d025760405162461bcd60e51b815260040161044890612580565b33610d11818787878787611594565b60005b8451811015610dfa576000858281518110610d3157610d3161246c565b602002602001015190506000858381518110610d4f57610d4f61246c565b60209081029190910181015160008481526002835260408082206001600160a01b038e168352909352919091205490915081811015610da05760405162461bcd60e51b8152600401610448906125c5565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610ddf90849061253a565b9250508190555050505080610df390612498565b9050610d14565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610e4a929190612552565b60405180910390a4610e608187878787876115a2565b505050505050565b610e7281336116fd565b50565b610e7f8282610a87565b60008281526001602052604090206105e49082610b0b565b610ea18282611756565b60008281526001602052604090206105e490826117bb565b610ec16117d0565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038316610f315760405162461bcd60e51b81526004016104489061260f565b8051825114610f525760405162461bcd60e51b8152600401610448906124f2565b6000339050610f7581856000868660405180602001604052806000815250611594565b60005b835181101561103d576000848281518110610f9557610f9561246c565b602002602001015190506000848381518110610fb357610fb361246c565b60209081029190910181015160008481526002835260408082206001600160a01b038c1683529093529190912054909150818110156110045760405162461bcd60e51b815260040161044890612652565b60009283526002602090815260408085206001600160a01b038b168652909152909220910390558061103581612498565b915050610f78565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161108e929190612552565b60405180910390a460408051602081019091526000905261056d565b6001600160a01b0384166110d05760405162461bcd60e51b8152600401610448906124b1565b3360006110dc85611819565b905060006110e985611819565b90506110fa83600089858589611594565b60008681526002602090815260408083206001600160a01b038b1684529091528120805487929061112c90849061253a565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461118c83600089898989611864565b50505050505050565b61119d61191f565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610eee3390565b60006109888383611965565b816001600160a01b0316836001600160a01b0316036112515760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610448565b6001600160a01b03838116600081815260036020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000610476825490565b6001600160a01b0384166112ee5760405162461bcd60e51b815260040161044890612580565b3360006112fa85611819565b9050600061130785611819565b9050611317838989858589611594565b60008681526002602090815260408083206001600160a01b038c1684529091529020548581101561135a5760405162461bcd60e51b8152600401610448906125c5565b60008781526002602090815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061139990849061253a565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46113f9848a8a8a8a8a611864565b505050505050505050565b6001600160a01b03831661142a5760405162461bcd60e51b81526004016104489061260f565b33600061143684611819565b9050600061144384611819565b905061146383876000858560405180602001604052806000815250611594565b60008581526002602090815260408083206001600160a01b038a168452909152902054848110156114a65760405162461bcd60e51b815260040161044890612652565b60008681526002602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a460408051602081019091526000905261118c565b600081815260018301602052604081205461156757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610476565b506000610476565b60006001600160e01b03198216635a05180f60e01b148061047657506104768261198f565b610e608686868686866119c4565b6001600160a01b0384163b15610e605760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906115e69089908990889088908890600401612696565b6020604051808303816000875af1925050508015611621575060408051601f3d908101601f1916820190925261161e918101906126f4565b60015b6116cd5761162d612711565b806308c379a003611666575061164161272d565b8061164c5750611668565b8060405162461bcd60e51b81526004016104489190611db7565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610448565b6001600160e01b0319811663bc197c8160e01b1461118c5760405162461bcd60e51b8152600401610448906127b7565b611707828261098f565b6106635761171481611a2c565b61171f836020611a3e565b6040516020016117309291906127ff565b60408051601f198184030181529082905262461bcd60e51b825261044891600401611db7565b611760828261098f565b15610663576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610988836001600160a01b038416611bda565b60055460ff1661070b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610448565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106118535761185361246c565b602090810291909101015292915050565b6001600160a01b0384163b15610e605760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906118a89089908990889088908890600401612874565b6020604051808303816000875af19250505080156118e3575060408051601f3d908101601f191682019092526118e0918101906126f4565b60015b6118ef5761162d612711565b6001600160e01b0319811663f23a6e6160e01b1461118c5760405162461bcd60e51b8152600401610448906127b7565b60055460ff161561070b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610448565b600082600001828154811061197c5761197c61246c565b9060005260206000200154905092915050565b60006001600160e01b03198216637965db0b60e01b148061047657506301ffc9a760e01b6001600160e01b0319831614610476565b60055460ff1615610e605760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201526b1dda1a5b19481c185d5cd95960a21b6064820152608401610448565b60606104766001600160a01b03831660145b60606000611a4d8360026128b9565b611a5890600261253a565b67ffffffffffffffff811115611a7057611a70611dca565b6040519080825280601f01601f191660200182016040528015611a9a576020820181803683370190505b509050600360fc1b81600081518110611ab557611ab561246c565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611ae457611ae461246c565b60200101906001600160f81b031916908160001a9053506000611b088460026128b9565b611b1390600161253a565b90505b6001811115611b8b576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611b4757611b4761246c565b1a60f81b828281518110611b5d57611b5d61246c565b60200101906001600160f81b031916908160001a90535060049490941c93611b84816128d8565b9050611b16565b5083156109885760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610448565b60008181526001830160205260408120548015611cc3576000611bfe6001836128ef565b8554909150600090611c12906001906128ef565b9050818114611c77576000866000018281548110611c3257611c3261246c565b9060005260206000200154905080876000018481548110611c5557611c5561246c565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611c8857611c88612906565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610476565b6000915050610476565b80356001600160a01b0381168114611ce457600080fd5b919050565b60008060408385031215611cfc57600080fd5b611d0583611ccd565b946020939093013593505050565b6001600160e01b031981168114610e7257600080fd5b600060208284031215611d3b57600080fd5b813561098881611d13565b600060208284031215611d5857600080fd5b5035919050565b60005b83811015611d7a578181015183820152602001611d62565b8381111561056d5750506000910152565b60008151808452611da3816020860160208601611d5f565b601f01601f19169290920160200192915050565b6020815260006109886020830184611d8b565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715611e0657611e06611dca565b6040525050565b600067ffffffffffffffff821115611e2757611e27611dca565b5060051b60200190565b600082601f830112611e4257600080fd5b81356020611e4f82611e0d565b604051611e5c8282611de0565b83815260059390931b8501820192828101915086841115611e7c57600080fd5b8286015b84811015611e975780358352918301918301611e80565b509695505050505050565b600082601f830112611eb357600080fd5b813567ffffffffffffffff811115611ecd57611ecd611dca565b604051611ee4601f8301601f191660200182611de0565b818152846020838601011115611ef957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611f2c57600080fd5b611f3585611ccd565b9350602085013567ffffffffffffffff80821115611f5257600080fd5b611f5e88838901611e31565b94506040870135915080821115611f7457600080fd5b611f8088838901611e31565b93506060870135915080821115611f9657600080fd5b50611fa387828801611ea2565b91505092959194509250565b600080600080600060a08688031215611fc757600080fd5b611fd086611ccd565b9450611fde60208701611ccd565b9350604086013567ffffffffffffffff80821115611ffb57600080fd5b61200789838a01611e31565b9450606088013591508082111561201d57600080fd5b61202989838a01611e31565b9350608088013591508082111561203f57600080fd5b5061204c88828901611ea2565b9150509295509295909350565b6000806040838503121561206c57600080fd5b8235915061207c60208401611ccd565b90509250929050565b6000806040838503121561209857600080fd5b823567ffffffffffffffff808211156120b057600080fd5b818501915085601f8301126120c457600080fd5b813560206120d182611e0d565b6040516120de8282611de0565b83815260059390931b85018201928281019150898411156120fe57600080fd5b948201945b838610156121235761211486611ccd565b82529482019490820190612103565b9650508601359250508082111561213957600080fd5b5061214685828601611e31565b9150509250929050565b600081518084526020808501945080840160005b8381101561218057815187529582019590820190600101612164565b509495945050505050565b6020815260006109886020830184612150565b6000806000606084860312156121b357600080fd5b6121bc84611ccd565b9250602084013567ffffffffffffffff808211156121d957600080fd5b6121e587838801611e31565b935060408601359150808211156121fb57600080fd5b5061220886828701611e31565b9150509250925092565b6000806000806080858703121561222857600080fd5b61223185611ccd565b93506020850135925060408501359150606085013567ffffffffffffffff81111561225b57600080fd5b611fa387828801611ea2565b6000806040838503121561227a57600080fd5b50508035926020909101359150565b6000806040838503121561229c57600080fd5b6122a583611ccd565b9150602083013580151581146122ba57600080fd5b809150509250929050565b600080604083850312156122d857600080fd5b6122e183611ccd565b915061207c60208401611ccd565b600080600080600060a0868803121561230757600080fd5b61231086611ccd565b945061231e60208701611ccd565b93506040860135925060608601359150608086013567ffffffffffffffff81111561234857600080fd5b61204c88828901611ea2565b60008060006060848603121561236957600080fd5b61237284611ccd565b95602085013595506040909401359392505050565b600181811c9082168061239b57607f821691505b6020821081036123bb57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526038908201527f455243313135355072657365744d696e7465725061757365723a206d7573742060408201527f68617665206d696e74657220726f6c6520746f206d696e740000000000000000606082015260800190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016124aa576124aa612482565b5060010190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b6000821982111561254d5761254d612482565b500190565b6040815260006125656040830185612150565b82810360208401526125778185612150565b95945050505050565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6001600160a01b0386811682528516602082015260a0604082018190526000906126c290830186612150565b82810360608401526126d48186612150565b905082810360808401526126e88185611d8b565b98975050505050505050565b60006020828403121561270657600080fd5b815161098881611d13565b600060033d111561272a5760046000803e5060005160e01c5b90565b600060443d101561273b5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561276b57505050505090565b82850191508151818111156127835750505050505090565b843d870101602082850101111561279d5750505050505090565b6127ac60208286010187611de0565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612837816017850160208801611d5f565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612868816028840160208801611d5f565b01602801949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906128ae90830184611d8b565b979650505050505050565b60008160001904831182151516156128d3576128d3612482565b500290565b6000816128e7576128e7612482565b506000190190565b60008282101561290157612901612482565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a8fa700831137222bbcc05df6f069d5761be110db6c1f18400e9a87dcc5a5f7864736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101725760003560e01c8063731133e9116100de578063ca15c87311610097578063e63ab1e911610071578063e63ab1e914610358578063e985e9c51461037f578063f242432a146103bb578063f5298aca146103ce57600080fd5b8063ca15c8731461030b578063d53913931461031e578063d547741f1461034557600080fd5b8063731133e9146102975780638456cb59146102aa5780639010d07c146102b257806391d14854146102dd578063a217fddf146102f0578063a22cb465146102f857600080fd5b80632f2ff15d116101305780632f2ff15d1461022b57806336568abe1461023e5780633f4ba83a146102515780634e1273f4146102595780635c975abb146102795780636b20c4541461028457600080fd5b8062fdd58e1461017757806301ffc9a71461019d5780630e89341c146101c05780631f7fdffa146101e0578063248a9ca3146101f55780632eb2c2d614610218575b600080fd5b61018a610185366004611ce9565b6103e1565b6040519081526020015b60405180910390f35b6101b06101ab366004611d29565b61047c565b6040519015158152602001610194565b6101d36101ce366004611d46565b610487565b6040516101949190611db7565b6101f36101ee366004611f16565b61051b565b005b61018a610203366004611d46565b60009081526020819052604090206001015490565b6101f3610226366004611faf565b610573565b6101f3610239366004612059565b6105bf565b6101f361024c366004612059565b6105e9565b6101f3610667565b61026c610267366004612085565b61070d565b604051610194919061218b565b60055460ff166101b0565b6101f361029236600461219e565b610837565b6101f36102a5366004612212565b61087a565b6101f36108cc565b6102c56102c0366004612267565b610970565b6040516001600160a01b039091168152602001610194565b6101b06102eb366004612059565b61098f565b61018a600081565b6101f3610306366004612289565b6109b8565b61018a610319366004611d46565b6109c3565b61018a7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6101f3610353366004612059565b6109da565b61018a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101b061038d3660046122c5565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b6101f36103c93660046122ef565b6109ff565b6101f36103dc366004612354565b610a44565b60006001600160a01b0383166104515760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b600061047682610b20565b60606004805461049690612387565b80601f01602080910402602001604051908101604052809291908181526020018280546104c290612387565b801561050f5780601f106104e45761010080835404028352916020019161050f565b820191906000526020600020905b8154815290600101906020018083116104f257829003601f168201915b50505050509050919050565b6105457f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63361098f565b6105615760405162461bcd60e51b8152600401610448906123c1565b61056d84848484610b60565b50505050565b6001600160a01b03851633148061058f575061058f853361038d565b6105ab5760405162461bcd60e51b81526004016104489061241e565b6105b88585858585610cbb565b5050505050565b6000828152602081905260409020600101546105da81610e68565b6105e48383610e75565b505050565b6001600160a01b03811633146106595760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610448565b6106638282610e97565b5050565b6106917f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361098f565b6107035760405162461bcd60e51b815260206004820152603b60248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20756e706175736500000000006064820152608401610448565b61070b610eb9565b565b606081518351146107725760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610448565b6000835167ffffffffffffffff81111561078e5761078e611dca565b6040519080825280602002602001820160405280156107b7578160200160208202803683370190505b50905060005b845181101561082f576108028582815181106107db576107db61246c565b60200260200101518583815181106107f5576107f561246c565b60200260200101516103e1565b8282815181106108145761081461246c565b602090810291909101015261082881612498565b90506107bd565b509392505050565b6001600160a01b0383163314806108535750610853833361038d565b61086f5760405162461bcd60e51b81526004016104489061241e565b6105e4838383610f0b565b6108a47f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63361098f565b6108c05760405162461bcd60e51b8152600401610448906123c1565b61056d848484846110aa565b6108f67f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361098f565b6109685760405162461bcd60e51b815260206004820152603960248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f207061757365000000000000006064820152608401610448565b61070b611195565b600082815260016020526040812061098890836111d2565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6106633383836111de565b6000818152600160205260408120610476906112be565b6000828152602081905260409020600101546109f581610e68565b6105e48383610e97565b6001600160a01b038516331480610a1b5750610a1b853361038d565b610a375760405162461bcd60e51b81526004016104489061241e565b6105b885858585856112c8565b6001600160a01b038316331480610a605750610a60833361038d565b610a7c5760405162461bcd60e51b81526004016104489061241e565b6105e4838383611404565b610a91828261098f565b610663576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610ac73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610988836001600160a01b038416611520565b60006001600160e01b03198216636cdb3d1360e11b1480610b5157506001600160e01b031982166303a24d0760e21b145b8061047657506104768261156f565b6001600160a01b038416610b865760405162461bcd60e51b8152600401610448906124b1565b8151835114610ba75760405162461bcd60e51b8152600401610448906124f2565b33610bb781600087878787611594565b60005b8451811015610c5357838181518110610bd557610bd561246c565b602002602001015160026000878481518110610bf357610bf361246c565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254610c3b919061253a565b90915550819050610c4b81612498565b915050610bba565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610ca4929190612552565b60405180910390a46105b8816000878787876115a2565b8151835114610cdc5760405162461bcd60e51b8152600401610448906124f2565b6001600160a01b038416610d025760405162461bcd60e51b815260040161044890612580565b33610d11818787878787611594565b60005b8451811015610dfa576000858281518110610d3157610d3161246c565b602002602001015190506000858381518110610d4f57610d4f61246c565b60209081029190910181015160008481526002835260408082206001600160a01b038e168352909352919091205490915081811015610da05760405162461bcd60e51b8152600401610448906125c5565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610ddf90849061253a565b9250508190555050505080610df390612498565b9050610d14565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610e4a929190612552565b60405180910390a4610e608187878787876115a2565b505050505050565b610e7281336116fd565b50565b610e7f8282610a87565b60008281526001602052604090206105e49082610b0b565b610ea18282611756565b60008281526001602052604090206105e490826117bb565b610ec16117d0565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038316610f315760405162461bcd60e51b81526004016104489061260f565b8051825114610f525760405162461bcd60e51b8152600401610448906124f2565b6000339050610f7581856000868660405180602001604052806000815250611594565b60005b835181101561103d576000848281518110610f9557610f9561246c565b602002602001015190506000848381518110610fb357610fb361246c565b60209081029190910181015160008481526002835260408082206001600160a01b038c1683529093529190912054909150818110156110045760405162461bcd60e51b815260040161044890612652565b60009283526002602090815260408085206001600160a01b038b168652909152909220910390558061103581612498565b915050610f78565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161108e929190612552565b60405180910390a460408051602081019091526000905261056d565b6001600160a01b0384166110d05760405162461bcd60e51b8152600401610448906124b1565b3360006110dc85611819565b905060006110e985611819565b90506110fa83600089858589611594565b60008681526002602090815260408083206001600160a01b038b1684529091528120805487929061112c90849061253a565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461118c83600089898989611864565b50505050505050565b61119d61191f565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610eee3390565b60006109888383611965565b816001600160a01b0316836001600160a01b0316036112515760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610448565b6001600160a01b03838116600081815260036020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000610476825490565b6001600160a01b0384166112ee5760405162461bcd60e51b815260040161044890612580565b3360006112fa85611819565b9050600061130785611819565b9050611317838989858589611594565b60008681526002602090815260408083206001600160a01b038c1684529091529020548581101561135a5760405162461bcd60e51b8152600401610448906125c5565b60008781526002602090815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061139990849061253a565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46113f9848a8a8a8a8a611864565b505050505050505050565b6001600160a01b03831661142a5760405162461bcd60e51b81526004016104489061260f565b33600061143684611819565b9050600061144384611819565b905061146383876000858560405180602001604052806000815250611594565b60008581526002602090815260408083206001600160a01b038a168452909152902054848110156114a65760405162461bcd60e51b815260040161044890612652565b60008681526002602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a460408051602081019091526000905261118c565b600081815260018301602052604081205461156757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610476565b506000610476565b60006001600160e01b03198216635a05180f60e01b148061047657506104768261198f565b610e608686868686866119c4565b6001600160a01b0384163b15610e605760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906115e69089908990889088908890600401612696565b6020604051808303816000875af1925050508015611621575060408051601f3d908101601f1916820190925261161e918101906126f4565b60015b6116cd5761162d612711565b806308c379a003611666575061164161272d565b8061164c5750611668565b8060405162461bcd60e51b81526004016104489190611db7565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610448565b6001600160e01b0319811663bc197c8160e01b1461118c5760405162461bcd60e51b8152600401610448906127b7565b611707828261098f565b6106635761171481611a2c565b61171f836020611a3e565b6040516020016117309291906127ff565b60408051601f198184030181529082905262461bcd60e51b825261044891600401611db7565b611760828261098f565b15610663576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610988836001600160a01b038416611bda565b60055460ff1661070b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610448565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106118535761185361246c565b602090810291909101015292915050565b6001600160a01b0384163b15610e605760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906118a89089908990889088908890600401612874565b6020604051808303816000875af19250505080156118e3575060408051601f3d908101601f191682019092526118e0918101906126f4565b60015b6118ef5761162d612711565b6001600160e01b0319811663f23a6e6160e01b1461118c5760405162461bcd60e51b8152600401610448906127b7565b60055460ff161561070b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610448565b600082600001828154811061197c5761197c61246c565b9060005260206000200154905092915050565b60006001600160e01b03198216637965db0b60e01b148061047657506301ffc9a760e01b6001600160e01b0319831614610476565b60055460ff1615610e605760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201526b1dda1a5b19481c185d5cd95960a21b6064820152608401610448565b60606104766001600160a01b03831660145b60606000611a4d8360026128b9565b611a5890600261253a565b67ffffffffffffffff811115611a7057611a70611dca565b6040519080825280601f01601f191660200182016040528015611a9a576020820181803683370190505b509050600360fc1b81600081518110611ab557611ab561246c565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611ae457611ae461246c565b60200101906001600160f81b031916908160001a9053506000611b088460026128b9565b611b1390600161253a565b90505b6001811115611b8b576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611b4757611b4761246c565b1a60f81b828281518110611b5d57611b5d61246c565b60200101906001600160f81b031916908160001a90535060049490941c93611b84816128d8565b9050611b16565b5083156109885760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610448565b60008181526001830160205260408120548015611cc3576000611bfe6001836128ef565b8554909150600090611c12906001906128ef565b9050818114611c77576000866000018281548110611c3257611c3261246c565b9060005260206000200154905080876000018481548110611c5557611c5561246c565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611c8857611c88612906565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610476565b6000915050610476565b80356001600160a01b0381168114611ce457600080fd5b919050565b60008060408385031215611cfc57600080fd5b611d0583611ccd565b946020939093013593505050565b6001600160e01b031981168114610e7257600080fd5b600060208284031215611d3b57600080fd5b813561098881611d13565b600060208284031215611d5857600080fd5b5035919050565b60005b83811015611d7a578181015183820152602001611d62565b8381111561056d5750506000910152565b60008151808452611da3816020860160208601611d5f565b601f01601f19169290920160200192915050565b6020815260006109886020830184611d8b565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715611e0657611e06611dca565b6040525050565b600067ffffffffffffffff821115611e2757611e27611dca565b5060051b60200190565b600082601f830112611e4257600080fd5b81356020611e4f82611e0d565b604051611e5c8282611de0565b83815260059390931b8501820192828101915086841115611e7c57600080fd5b8286015b84811015611e975780358352918301918301611e80565b509695505050505050565b600082601f830112611eb357600080fd5b813567ffffffffffffffff811115611ecd57611ecd611dca565b604051611ee4601f8301601f191660200182611de0565b818152846020838601011115611ef957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611f2c57600080fd5b611f3585611ccd565b9350602085013567ffffffffffffffff80821115611f5257600080fd5b611f5e88838901611e31565b94506040870135915080821115611f7457600080fd5b611f8088838901611e31565b93506060870135915080821115611f9657600080fd5b50611fa387828801611ea2565b91505092959194509250565b600080600080600060a08688031215611fc757600080fd5b611fd086611ccd565b9450611fde60208701611ccd565b9350604086013567ffffffffffffffff80821115611ffb57600080fd5b61200789838a01611e31565b9450606088013591508082111561201d57600080fd5b61202989838a01611e31565b9350608088013591508082111561203f57600080fd5b5061204c88828901611ea2565b9150509295509295909350565b6000806040838503121561206c57600080fd5b8235915061207c60208401611ccd565b90509250929050565b6000806040838503121561209857600080fd5b823567ffffffffffffffff808211156120b057600080fd5b818501915085601f8301126120c457600080fd5b813560206120d182611e0d565b6040516120de8282611de0565b83815260059390931b85018201928281019150898411156120fe57600080fd5b948201945b838610156121235761211486611ccd565b82529482019490820190612103565b9650508601359250508082111561213957600080fd5b5061214685828601611e31565b9150509250929050565b600081518084526020808501945080840160005b8381101561218057815187529582019590820190600101612164565b509495945050505050565b6020815260006109886020830184612150565b6000806000606084860312156121b357600080fd5b6121bc84611ccd565b9250602084013567ffffffffffffffff808211156121d957600080fd5b6121e587838801611e31565b935060408601359150808211156121fb57600080fd5b5061220886828701611e31565b9150509250925092565b6000806000806080858703121561222857600080fd5b61223185611ccd565b93506020850135925060408501359150606085013567ffffffffffffffff81111561225b57600080fd5b611fa387828801611ea2565b6000806040838503121561227a57600080fd5b50508035926020909101359150565b6000806040838503121561229c57600080fd5b6122a583611ccd565b9150602083013580151581146122ba57600080fd5b809150509250929050565b600080604083850312156122d857600080fd5b6122e183611ccd565b915061207c60208401611ccd565b600080600080600060a0868803121561230757600080fd5b61231086611ccd565b945061231e60208701611ccd565b93506040860135925060608601359150608086013567ffffffffffffffff81111561234857600080fd5b61204c88828901611ea2565b60008060006060848603121561236957600080fd5b61237284611ccd565b95602085013595506040909401359392505050565b600181811c9082168061239b57607f821691505b6020821081036123bb57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526038908201527f455243313135355072657365744d696e7465725061757365723a206d7573742060408201527f68617665206d696e74657220726f6c6520746f206d696e740000000000000000606082015260800190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016124aa576124aa612482565b5060010190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b6000821982111561254d5761254d612482565b500190565b6040815260006125656040830185612150565b82810360208401526125778185612150565b95945050505050565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6001600160a01b0386811682528516602082015260a0604082018190526000906126c290830186612150565b82810360608401526126d48186612150565b905082810360808401526126e88185611d8b565b98975050505050505050565b60006020828403121561270657600080fd5b815161098881611d13565b600060033d111561272a5760046000803e5060005160e01c5b90565b600060443d101561273b5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561276b57505050505090565b82850191508151818111156127835750505050505090565b843d870101602082850101111561279d5750505050505090565b6127ac60208286010187611de0565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612837816017850160208801611d5f565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612868816028840160208801611d5f565b01602801949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906128ae90830184611d8b565b979650505050505050565b60008160001904831182151516156128d3576128d3612482565b500290565b6000816128e7576128e7612482565b506000190190565b60008282101561290157612901612482565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a8fa700831137222bbcc05df6f069d5761be110db6c1f18400e9a87dcc5a5f7864736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC165Checker.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC165Checker.json index dfb891a..33c93ba 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC165Checker.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC165Checker.json @@ -3,8 +3,8 @@ "contractName": "ERC165Checker", "sourceName": "contracts/utils/introspection/ERC165Checker.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b16df9544b1b49a0e0005585f40edd90ad0aba9b56b18712e63d5f4566ccba1a64736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b16df9544b1b49a0e0005585f40edd90ad0aba9b56b18712e63d5f4566ccba1a64736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e6cd488a95ebc63e0022dd975fdc218ce3b7c04e8100e41d5952999f20cb29e164736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e6cd488a95ebc63e0022dd975fdc218ce3b7c04e8100e41d5952999f20cb29e164736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC1820Implementer.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC1820Implementer.json index c4cb99a..261797e 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC1820Implementer.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC1820Implementer.json @@ -28,8 +28,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610112806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063249cb3fa14602d575b600080fd5b603c603836600460a4565b604e565b60405190815260200160405180910390f35b6000828152602081815260408083206001600160a01b038516845290915281205460ff16607b576000609d565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b9392505050565b6000806040838503121560b5578182fd5b8235915060208301356001600160a01b038116811460d1578182fd5b80915050925092905056fea26469706673582212204632c1ec3802d05d61ae8523ec72aef2d74c909d2807e5511841a201a52fc3b864736f6c63430008030033", - "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063249cb3fa14602d575b600080fd5b603c603836600460a4565b604e565b60405190815260200160405180910390f35b6000828152602081815260408083206001600160a01b038516845290915281205460ff16607b576000609d565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b9392505050565b6000806040838503121560b5578182fd5b8235915060208301356001600160a01b038116811460d1578182fd5b80915050925092905056fea26469706673582212204632c1ec3802d05d61ae8523ec72aef2d74c909d2807e5511841a201a52fc3b864736f6c63430008030033", + "bytecode": "0x608060405234801561001057600080fd5b50610114806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063249cb3fa14602d575b600080fd5b603c603836600460a4565b604e565b60405190815260200160405180910390f35b6000828152602081815260408083206001600160a01b038516845290915281205460ff16607b576000609d565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b9392505050565b6000806040838503121560b657600080fd5b8235915060208301356001600160a01b038116811460d357600080fd5b80915050925092905056fea2646970667358221220a5979d2eef8916fee729d245f887d0acab4fec8979c537f4d26331a22797461964736f6c634300080d0033", + "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063249cb3fa14602d575b600080fd5b603c603836600460a4565b604e565b60405190815260200160405180910390f35b6000828152602081815260408083206001600160a01b038516845290915281205460ff16607b576000609d565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b9392505050565b6000806040838503121560b657600080fd5b8235915060208301356001600160a01b038116811460d357600080fd5b80915050925092905056fea2646970667358221220a5979d2eef8916fee729d245f887d0acab4fec8979c537f4d26331a22797461964736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC1967Proxy.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC1967Proxy.json index 0197773..8d9f451 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC1967Proxy.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC1967Proxy.json @@ -73,8 +73,8 @@ "type": "receive" } ], - "bytecode": "0x608060405260405161077e38038061077e83398101604081905261002291610303565b61004d60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61041b565b6000805160206107378339815191521461007757634e487b7160e01b600052600160045260246000fd5b6100838282600061008a565b5050610480565b610093836100c0565b6000825111806100a05750805b156100bb576100b9838361010060201b6100291760201c565b505b505050565b6100c98161012c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101258383604051806060016040528060278152602001610757602791396101ec565b9392505050565b61013f816102c160201b6100551760201c565b6101a65760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101cb60008051602061073783398151915260001b6102c760201b61005b1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060833b61024b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161019d565b600080856001600160a01b03168560405161026691906103cc565b600060405180830381855af49150503d80600081146102a1576040519150601f19603f3d011682016040523d82523d6000602084013e6102a6565b606091505b5090925090506102b78282866102ca565b9695505050505050565b3b151590565b90565b606083156102d9575081610125565b8251156102e95782518084602001fd5b8160405162461bcd60e51b815260040161019d91906103e8565b60008060408385031215610315578182fd5b82516001600160a01b038116811461032b578283fd5b60208401519092506001600160401b0380821115610347578283fd5b818501915085601f83011261035a578283fd5b81518181111561036c5761036c61046a565b604051601f8201601f19908116603f011681019083821181831017156103945761039461046a565b816040528281528860208487010111156103ac578586fd5b6103bd83602083016020880161043e565b80955050505050509250929050565b600082516103de81846020870161043e565b9190910192915050565b600060208252825180602084015261040781604085016020870161043e565b601f01601f19169190910160400192915050565b60008282101561043957634e487b7160e01b81526011600452602481fd5b500390565b60005b83811015610459578181015183820152602001610441565b838111156100b95750506000910152565b634e487b7160e01b600052604160045260246000fd5b6102a88061048f6000396000f3fe60806040523661001357610011610017565b005b6100115b61002761002261005e565b610096565b565b606061004e838360405180606001604052806027815260200161024c602791396100ba565b9392505050565b3b151590565b90565b60006100917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100b5573d6000f35b3d6000fd5b6060833b61011e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161013991906101cc565b600060405180830381855af49150503d8060008114610174576040519150601f19603f3d011682016040523d82523d6000602084013e610179565b606091505b5091509150610189828286610193565b9695505050505050565b606083156101a257508161004e565b8251156101b25782518084602001fd5b8160405162461bcd60e51b815260040161011591906101e8565b600082516101de81846020870161021b565b9190910192915050565b600060208252825180602084015261020781604085016020870161021b565b601f01601f19169190910160400192915050565b60005b8381101561023657818101518382015260200161021e565b83811115610245576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122045a655e4377b466c772d0002c84619390141d500175e10ed25cf2bf57537dfc564736f6c63430008030033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "deployedBytecode": "0x60806040523661001357610011610017565b005b6100115b61002761002261005e565b610096565b565b606061004e838360405180606001604052806027815260200161024c602791396100ba565b9392505050565b3b151590565b90565b60006100917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100b5573d6000f35b3d6000fd5b6060833b61011e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161013991906101cc565b600060405180830381855af49150503d8060008114610174576040519150601f19603f3d011682016040523d82523d6000602084013e610179565b606091505b5091509150610189828286610193565b9695505050505050565b606083156101a257508161004e565b8251156101b25782518084602001fd5b8160405162461bcd60e51b815260040161011591906101e8565b600082516101de81846020870161021b565b9190910192915050565b600060208252825180602084015261020781604085016020870161021b565b601f01601f19169190910160400192915050565b60005b8381101561023657818101518382015260200161021e565b83811115610245576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122045a655e4377b466c772d0002c84619390141d500175e10ed25cf2bf57537dfc564736f6c63430008030033", + "bytecode": "0x608060405260405161073b38038061073b83398101604081905261002291610321565b61002e82826000610035565b505061043e565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610714602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103ef565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b8152600401610148919061040b565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b838111156100645750506000910152565b6000806040838503121561033457600080fd5b82516001600160a01b038116811461034b57600080fd5b60208401519092506001600160401b038082111561036857600080fd5b818501915085601f83011261037c57600080fd5b81518181111561038e5761038e6102df565b604051601f8201601f19908116603f011681019083821181831017156103b6576103b66102df565b816040528281528860208487010111156103cf57600080fd5b6103e08360208301602088016102f5565b80955050505050509250929050565b600082516104018184602087016102f5565b9190910192915050565b602081526000825180602084015261042a8160408501602087016102f5565b601f01601f19169190910160400192915050565b6102c78061044d6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161026b602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e0919061021b565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101af5782516000036101a8576001600160a01b0385163b6101a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260040161019f9190610237565b60005b838110156102065781810151838201526020016101ee565b83811115610215576000848401525b50505050565b6000825161022d8184602087016101eb565b9190910192915050565b60208152600082518060208401526102568160408501602087016101eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122076c43ef7e83f3f5d4e9f67a47bb741a482d559078b0eb91b700166478c77577664736f6c634300080d0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "deployedBytecode": "0x60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161026b602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e0919061021b565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101af5782516000036101a8576001600160a01b0385163b6101a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260040161019f9190610237565b60005b838110156102065781810151838201526020016101ee565b83811115610215576000848401525b50505050565b6000825161022d8184602087016101eb565b9190910192915050565b60208152600082518060208401526102568160408501602087016101eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122076c43ef7e83f3f5d4e9f67a47bb741a482d559078b0eb91b700166478c77577664736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20.json index 1c0372d..1756b95 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20.json @@ -240,7 +240,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -264,12 +264,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -290,8 +290,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000b4b38038062000b4b8339810160408190526200003491620001c1565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b600181811c908216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6108c0806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b4114610149578063a457c2d714610151578063a9059cbb14610164578063dd62ed3e14610177576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101b0565b6040516100c391906107d8565b60405180910390f35b6100df6100da3660046107af565b610242565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610774565b610258565b604051601281526020016100c3565b6100df6101313660046107af565b610307565b6100f3610144366004610721565b610343565b6100b6610362565b6100df61015f3660046107af565b610371565b6100df6101723660046107af565b61040a565b6100f3610185366004610742565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101bf9061084f565b80601f01602080910402602001604051908101604052809291908181526020018280546101eb9061084f565b80156102385780601f1061020d57610100808354040283529160200191610238565b820191906000526020600020905b81548152906001019060200180831161021b57829003601f168201915b5050505050905090565b600061024f338484610417565b50600192915050565b600061026584848461053b565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156102ef5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6102fc8533858403610417565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161024f91859061033e90869061082b565b610417565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546101bf9061084f565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156103f35760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016102e6565b6104003385858403610417565b5060019392505050565b600061024f33848461053b565b6001600160a01b0383166104795760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102e6565b6001600160a01b0382166104da5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102e6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661059f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102e6565b6001600160a01b0382166106015760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102e6565b6001600160a01b038316600090815260208190526040902054818110156106795760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102e6565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106b090849061082b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106fc91815260200190565b60405180910390a350505050565b80356001600160a01b038116811461035d57600080fd5b600060208284031215610732578081fd5b61073b8261070a565b9392505050565b60008060408385031215610754578081fd5b61075d8361070a565b915061076b6020840161070a565b90509250929050565b600080600060608486031215610788578081fd5b6107918461070a565b925061079f6020850161070a565b9150604084013590509250925092565b600080604083850312156107c1578182fd5b6107ca8361070a565b946020939093013593505050565b6000602080835283518082850152825b81811015610804578581018301518582016040015282016107e8565b818111156108155783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561084a57634e487b7160e01b81526011600452602481fd5b500190565b600181811c9082168061086357607f821691505b6020821081141561088457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220d5fe2a4e17ce9d022007f408350bf2342a192449074b95d77ad2ccae63966f1064736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b4114610149578063a457c2d714610151578063a9059cbb14610164578063dd62ed3e14610177576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101b0565b6040516100c391906107d8565b60405180910390f35b6100df6100da3660046107af565b610242565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610774565b610258565b604051601281526020016100c3565b6100df6101313660046107af565b610307565b6100f3610144366004610721565b610343565b6100b6610362565b6100df61015f3660046107af565b610371565b6100df6101723660046107af565b61040a565b6100f3610185366004610742565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101bf9061084f565b80601f01602080910402602001604051908101604052809291908181526020018280546101eb9061084f565b80156102385780601f1061020d57610100808354040283529160200191610238565b820191906000526020600020905b81548152906001019060200180831161021b57829003601f168201915b5050505050905090565b600061024f338484610417565b50600192915050565b600061026584848461053b565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156102ef5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6102fc8533858403610417565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161024f91859061033e90869061082b565b610417565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546101bf9061084f565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156103f35760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016102e6565b6104003385858403610417565b5060019392505050565b600061024f33848461053b565b6001600160a01b0383166104795760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102e6565b6001600160a01b0382166104da5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102e6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661059f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102e6565b6001600160a01b0382166106015760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102e6565b6001600160a01b038316600090815260208190526040902054818110156106795760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102e6565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106b090849061082b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106fc91815260200190565b60405180910390a350505050565b80356001600160a01b038116811461035d57600080fd5b600060208284031215610732578081fd5b61073b8261070a565b9392505050565b60008060408385031215610754578081fd5b61075d8361070a565b915061076b6020840161070a565b90509250929050565b600080600060608486031215610788578081fd5b6107918461070a565b925061079f6020850161070a565b9150604084013590509250925092565b600080604083850312156107c1578182fd5b6107ca8361070a565b946020939093013593505050565b6000602080835283518082850152825b81811015610804578581018301518582016040015282016107e8565b818111156108155783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561084a57634e487b7160e01b81526011600452602481fd5b500190565b600181811c9082168061086357607f821691505b6020821081141561088457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220d5fe2a4e17ce9d022007f408350bf2342a192449074b95d77ad2ccae63966f1064736f6c63430008030033", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000aed38038062000aed8339810160408190526200003491620001db565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b50505062000281565b828054620000769062000245565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013657600080fd5b81516001600160401b03808211156200015357620001536200010e565b604051601f8301601f19908116603f011681019082821181831017156200017e576200017e6200010e565b816040528381526020925086838588010111156200019b57600080fd5b600091505b83821015620001bf5785820183015181830184015290820190620001a0565b83821115620001d15760008385830101525b9695505050505050565b60008060408385031215620001ef57600080fd5b82516001600160401b03808211156200020757600080fd5b620002158683870162000124565b935060208501519150808211156200022c57600080fd5b506200023b8582860162000124565b9150509250929050565b600181811c908216806200025a57607f821691505b6020821081036200027b57634e487b7160e01b600052602260045260246000fd5b50919050565b61085c80620002916000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069a565b60405180910390f35b6100df6100da36600461070b565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610735565b61024a565b604051601281526020016100c3565b6100df61013136600461070b565b61026e565b6100f3610144366004610771565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df61017536600461070b565b61029f565b6100df61018836600461070b565b61031f565b6100f361019b366004610793565b61032d565b6060600380546101af906107c6565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c6565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b9190610800565b610358565b6060600480546101af906107c6565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f0565b600060208083528351808285015260005b818110156106c7578581018301518582016040015282016106ab565b818111156106d9576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461070657600080fd5b919050565b6000806040838503121561071e57600080fd5b610727836106ef565b946020939093013593505050565b60008060006060848603121561074a57600080fd5b610753846106ef565b9250610761602085016106ef565b9150604084013590509250925092565b60006020828403121561078357600080fd5b61078c826106ef565b9392505050565b600080604083850312156107a657600080fd5b6107af836106ef565b91506107bd602084016106ef565b90509250929050565b600181811c908216806107da57607f821691505b6020821081036107fa57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561082157634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220e7dc257596a973556752e9db5f465b21aad78d068ae819d0395e1f99a95065a964736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069a565b60405180910390f35b6100df6100da36600461070b565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610735565b61024a565b604051601281526020016100c3565b6100df61013136600461070b565b61026e565b6100f3610144366004610771565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df61017536600461070b565b61029f565b6100df61018836600461070b565b61031f565b6100f361019b366004610793565b61032d565b6060600380546101af906107c6565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c6565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b9190610800565b610358565b6060600480546101af906107c6565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f0565b600060208083528351808285015260005b818110156106c7578581018301518582016040015282016106ab565b818111156106d9576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461070657600080fd5b919050565b6000806040838503121561071e57600080fd5b610727836106ef565b946020939093013593505050565b60008060006060848603121561074a57600080fd5b610753846106ef565b9250610761602085016106ef565b9150604084013590509250925092565b60006020828403121561078357600080fd5b61078c826106ef565b9392505050565b600080604083850312156107a657600080fd5b6107af836106ef565b91506107bd602084016106ef565b90509250929050565b600181811c908216806107da57607f821691505b6020821081036107fa57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561082157634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220e7dc257596a973556752e9db5f465b21aad78d068ae819d0395e1f99a95065a964736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Burnable.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Burnable.json index 49d2977..4ad34d1 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Burnable.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Burnable.json @@ -255,7 +255,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -279,12 +279,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Capped.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Capped.json index 6fb66c7..50963fb 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Capped.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Capped.json @@ -237,7 +237,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -261,12 +261,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20FlashMint.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20FlashMint.json index 0e9d871..8f36780 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20FlashMint.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20FlashMint.json @@ -301,7 +301,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -325,12 +325,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Pausable.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Pausable.json index 5c4f6c6..ea86685 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Pausable.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Pausable.json @@ -263,7 +263,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -287,12 +287,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Permit.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Permit.json index 02badac..ba51d2a 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Permit.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Permit.json @@ -1,8 +1,24 @@ { "_format": "hh-sol-artifact-1", "contractName": "ERC20Permit", - "sourceName": "contracts/token/ERC20/extensions/draft-ERC20Permit.sol", + "sourceName": "contracts/token/ERC20/extensions/ERC20Permit.sol", "abi": [ + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -28,6 +44,12 @@ "name": "Approval", "type": "event" }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -170,6 +192,49 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -299,7 +364,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -323,12 +388,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20PresetFixedSupply.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20PresetFixedSupply.json index fc507bf..e90337a 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20PresetFixedSupply.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20PresetFixedSupply.json @@ -281,7 +281,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -305,12 +305,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -331,8 +331,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000f0438038062000f048339810160408190526200003491620002c3565b8351849084906200004d9060039060208501906200016a565b508051620000639060049060208401906200016a565b5050506200007881836200008260201b60201c565b50505050620003cc565b6001600160a01b038216620000dd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620000f1919062000354565b90915550506001600160a01b038216600090815260208190526040812080548392906200012090849062000354565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001789062000379565b90600052602060002090601f0160209004810192826200019c5760008555620001e7565b82601f10620001b757805160ff1916838001178555620001e7565b82800160010185558215620001e7579182015b82811115620001e7578251825591602001919060010190620001ca565b50620001f5929150620001f9565b5090565b5b80821115620001f55760008155600101620001fa565b600082601f83011262000221578081fd5b81516001600160401b03808211156200023e576200023e620003b6565b604051601f8301601f19908116603f01168101908282118183101715620002695762000269620003b6565b8160405283815260209250868385880101111562000285578485fd5b8491505b83821015620002a8578582018301518183018401529082019062000289565b83821115620002b957848385830101525b9695505050505050565b60008060008060808587031215620002d9578384fd5b84516001600160401b0380821115620002f0578586fd5b620002fe8883890162000210565b9550602087015191508082111562000314578485fd5b50620003238782880162000210565b60408701516060880151919550935090506001600160a01b038116811462000349578182fd5b939692955090935050565b600082198211156200037457634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200038e57607f821691505b60208210811415620003b057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610b2880620003dc6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b4114610197578063a457c2d71461019f578063a9059cbb146101b2578063dd62ed3e146101c5576100cf565b806342966c681461015c57806370a082311461017157806379cc679014610184576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc6101fe565b6040516100e99190610a1f565b60405180910390f35b6101056101003660046109de565b610290565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046109a3565b6102a6565b604051601281526020016100e9565b6101056101573660046109de565b610355565b61016f61016a366004610a07565b610391565b005b61011961017f366004610950565b61039e565b61016f6101923660046109de565b6103bd565b6100dc610443565b6101056101ad3660046109de565b610452565b6101056101c03660046109de565b6104eb565b6101196101d3366004610971565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461020d90610aa1565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610aa1565b80156102865780601f1061025b57610100808354040283529160200191610286565b820191906000526020600020905b81548152906001019060200180831161026957829003601f168201915b5050505050905090565b600061029d3384846104f8565b50600192915050565b60006102b384848461061c565b6001600160a01b03841660009081526001602090815260408083203384529091529020548281101561033d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61034a85338584036104f8565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161029d91859061038c908690610a72565b6104f8565b61039b33826107eb565b50565b6001600160a01b0381166000908152602081905260409020545b919050565b60006103c983336101d3565b9050818110156104275760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610334565b61043483338484036104f8565b61043e83836107eb565b505050565b60606004805461020d90610aa1565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156104d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610334565b6104e133858584036104f8565b5060019392505050565b600061029d33848461061c565b6001600160a01b03831661055a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610334565b6001600160a01b0382166105bb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610334565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166106805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610334565b6001600160a01b0382166106e25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610334565b6001600160a01b0383166000908152602081905260409020548181101561075a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610334565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610791908490610a72565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107dd91815260200190565b60405180910390a350505050565b6001600160a01b03821661084b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610334565b6001600160a01b038216600090815260208190526040902054818110156108bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610334565b6001600160a01b03831660009081526020819052604081208383039055600280548492906108ee908490610a8a565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361043e565b80356001600160a01b03811681146103b857600080fd5b600060208284031215610961578081fd5b61096a82610939565b9392505050565b60008060408385031215610983578081fd5b61098c83610939565b915061099a60208401610939565b90509250929050565b6000806000606084860312156109b7578081fd5b6109c084610939565b92506109ce60208501610939565b9150604084013590509250925092565b600080604083850312156109f0578182fd5b6109f983610939565b946020939093013593505050565b600060208284031215610a18578081fd5b5035919050565b6000602080835283518082850152825b81811015610a4b57858101830151858201604001528201610a2f565b81811115610a5c5783604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610a8557610a85610adc565b500190565b600082821015610a9c57610a9c610adc565b500390565b600181811c90821680610ab557607f821691505b60208210811415610ad657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200c78bc7e539580fb43b4dda3de1c552a8b022d52444f540f93aaf59495067d5e64736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b4114610197578063a457c2d71461019f578063a9059cbb146101b2578063dd62ed3e146101c5576100cf565b806342966c681461015c57806370a082311461017157806379cc679014610184576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc6101fe565b6040516100e99190610a1f565b60405180910390f35b6101056101003660046109de565b610290565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046109a3565b6102a6565b604051601281526020016100e9565b6101056101573660046109de565b610355565b61016f61016a366004610a07565b610391565b005b61011961017f366004610950565b61039e565b61016f6101923660046109de565b6103bd565b6100dc610443565b6101056101ad3660046109de565b610452565b6101056101c03660046109de565b6104eb565b6101196101d3366004610971565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461020d90610aa1565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610aa1565b80156102865780601f1061025b57610100808354040283529160200191610286565b820191906000526020600020905b81548152906001019060200180831161026957829003601f168201915b5050505050905090565b600061029d3384846104f8565b50600192915050565b60006102b384848461061c565b6001600160a01b03841660009081526001602090815260408083203384529091529020548281101561033d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61034a85338584036104f8565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161029d91859061038c908690610a72565b6104f8565b61039b33826107eb565b50565b6001600160a01b0381166000908152602081905260409020545b919050565b60006103c983336101d3565b9050818110156104275760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610334565b61043483338484036104f8565b61043e83836107eb565b505050565b60606004805461020d90610aa1565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156104d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610334565b6104e133858584036104f8565b5060019392505050565b600061029d33848461061c565b6001600160a01b03831661055a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610334565b6001600160a01b0382166105bb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610334565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166106805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610334565b6001600160a01b0382166106e25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610334565b6001600160a01b0383166000908152602081905260409020548181101561075a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610334565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610791908490610a72565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107dd91815260200190565b60405180910390a350505050565b6001600160a01b03821661084b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610334565b6001600160a01b038216600090815260208190526040902054818110156108bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610334565b6001600160a01b03831660009081526020819052604081208383039055600280548492906108ee908490610a8a565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361043e565b80356001600160a01b03811681146103b857600080fd5b600060208284031215610961578081fd5b61096a82610939565b9392505050565b60008060408385031215610983578081fd5b61098c83610939565b915061099a60208401610939565b90509250929050565b6000806000606084860312156109b7578081fd5b6109c084610939565b92506109ce60208501610939565b9150604084013590509250925092565b600080604083850312156109f0578182fd5b6109f983610939565b946020939093013593505050565b600060208284031215610a18578081fd5b5035919050565b6000602080835283518082850152825b81811015610a4b57858101830151858201604001528201610a2f565b81811115610a5c5783604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610a8557610a85610adc565b500190565b600082821015610a9c57610a9c610adc565b500390565b600181811c90821680610ab557607f821691505b60208210811415610ad657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200c78bc7e539580fb43b4dda3de1c552a8b022d52444f540f93aaf59495067d5e64736f6c63430008030033", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000dd738038062000dd78339810160408190526200003491620002bb565b8351849084906200004d90600390602085019062000148565b5080516200006390600490602084019062000148565b5050506200007881836200008260201b60201c565b50505050620003b3565b6001600160a01b038216620000dd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620000f1919062000350565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620001569062000377565b90600052602060002090601f0160209004810192826200017a5760008555620001c5565b82601f106200019557805160ff1916838001178555620001c5565b82800160010185558215620001c5579182015b82811115620001c5578251825591602001919060010190620001a8565b50620001d3929150620001d7565b5090565b5b80821115620001d35760008155600101620001d8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200021657600080fd5b81516001600160401b0380821115620002335762000233620001ee565b604051601f8301601f19908116603f011681019082821181831017156200025e576200025e620001ee565b816040528381526020925086838588010111156200027b57600080fd5b600091505b838210156200029f578582018301518183018401529082019062000280565b83821115620002b15760008385830101525b9695505050505050565b60008060008060808587031215620002d257600080fd5b84516001600160401b0380821115620002ea57600080fd5b620002f88883890162000204565b955060208701519150808211156200030f57600080fd5b506200031e8782880162000204565b60408701516060880151919550935090506001600160a01b03811681146200034557600080fd5b939692955090935050565b600082198211156200037257634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200038c57607f821691505b602082108103620003ad57634e487b7160e01b600052602260045260246000fd5b50919050565b610a1480620003c36000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad578063a457c2d7146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015c57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc6101ee565b6040516100e99190610839565b60405180910390f35b6101056101003660046108aa565b610280565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046108d4565b610298565b604051601281526020016100e9565b6101056101573660046108aa565b6102bc565b61016f61016a366004610910565b6102de565b005b61011961017f366004610929565b6001600160a01b031660009081526020819052604090205490565b61016f6101a83660046108aa565b6102eb565b6100dc610304565b6101056101c33660046108aa565b610313565b6101056101d63660046108aa565b610393565b6101196101e936600461094b565b6103a1565b6060600380546101fd9061097e565b80601f01602080910402602001604051908101604052809291908181526020018280546102299061097e565b80156102765780601f1061024b57610100808354040283529160200191610276565b820191906000526020600020905b81548152906001019060200180831161025957829003601f168201915b5050505050905090565b60003361028e8185856103cc565b5060019392505050565b6000336102a68582856104f1565b6102b185858561056b565b506001949350505050565b60003361028e8185856102cf83836103a1565b6102d991906109b8565b6103cc565b6102e8338261070f565b50565b6102f68233836104f1565b610300828261070f565b5050565b6060600480546101fd9061097e565b6000338161032182866103a1565b9050838110156103865760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102b182868684036103cc565b60003361028e81858561056b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661042e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161037d565b6001600160a01b03821661048f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161037d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006104fd84846103a1565b9050600019811461056557818110156105585760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161037d565b61056584848484036103cc565b50505050565b6001600160a01b0383166105cf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161037d565b6001600160a01b0382166106315760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161037d565b6001600160a01b038316600090815260208190526040902054818110156106a95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161037d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610565565b6001600160a01b03821661076f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161037d565b6001600160a01b038216600090815260208190526040902054818110156107e35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161037d565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016104e4565b600060208083528351808285015260005b818110156108665785810183015185820160400152820161084a565b81811115610878576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146108a557600080fd5b919050565b600080604083850312156108bd57600080fd5b6108c68361088e565b946020939093013593505050565b6000806000606084860312156108e957600080fd5b6108f28461088e565b92506109006020850161088e565b9150604084013590509250925092565b60006020828403121561092257600080fd5b5035919050565b60006020828403121561093b57600080fd5b6109448261088e565b9392505050565b6000806040838503121561095e57600080fd5b6109678361088e565b91506109756020840161088e565b90509250929050565b600181811c9082168061099257607f821691505b6020821081036109b257634e487b7160e01b600052602260045260246000fd5b50919050565b600082198211156109d957634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220425144f5df3cf3550ee4191ed0afa4538ae90c257bcb6a46cba7ffb43eb4e29164736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad578063a457c2d7146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015c57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc6101ee565b6040516100e99190610839565b60405180910390f35b6101056101003660046108aa565b610280565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046108d4565b610298565b604051601281526020016100e9565b6101056101573660046108aa565b6102bc565b61016f61016a366004610910565b6102de565b005b61011961017f366004610929565b6001600160a01b031660009081526020819052604090205490565b61016f6101a83660046108aa565b6102eb565b6100dc610304565b6101056101c33660046108aa565b610313565b6101056101d63660046108aa565b610393565b6101196101e936600461094b565b6103a1565b6060600380546101fd9061097e565b80601f01602080910402602001604051908101604052809291908181526020018280546102299061097e565b80156102765780601f1061024b57610100808354040283529160200191610276565b820191906000526020600020905b81548152906001019060200180831161025957829003601f168201915b5050505050905090565b60003361028e8185856103cc565b5060019392505050565b6000336102a68582856104f1565b6102b185858561056b565b506001949350505050565b60003361028e8185856102cf83836103a1565b6102d991906109b8565b6103cc565b6102e8338261070f565b50565b6102f68233836104f1565b610300828261070f565b5050565b6060600480546101fd9061097e565b6000338161032182866103a1565b9050838110156103865760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102b182868684036103cc565b60003361028e81858561056b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661042e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161037d565b6001600160a01b03821661048f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161037d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006104fd84846103a1565b9050600019811461056557818110156105585760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161037d565b61056584848484036103cc565b50505050565b6001600160a01b0383166105cf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161037d565b6001600160a01b0382166106315760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161037d565b6001600160a01b038316600090815260208190526040902054818110156106a95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161037d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610565565b6001600160a01b03821661076f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161037d565b6001600160a01b038216600090815260208190526040902054818110156107e35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161037d565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016104e4565b600060208083528351808285015260005b818110156108665785810183015185820160400152820161084a565b81811115610878576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146108a557600080fd5b919050565b600080604083850312156108bd57600080fd5b6108c68361088e565b946020939093013593505050565b6000806000606084860312156108e957600080fd5b6108f28461088e565b92506109006020850161088e565b9150604084013590509250925092565b60006020828403121561092257600080fd5b5035919050565b60006020828403121561093b57600080fd5b6109448261088e565b9392505050565b6000806040838503121561095e57600080fd5b6109678361088e565b91506109756020840161088e565b90509250929050565b600181811c9082168061099257607f821691505b6020821081036109b257634e487b7160e01b600052602260045260246000fd5b50919050565b600082198211156109d957634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220425144f5df3cf3550ee4191ed0afa4538ae90c257bcb6a46cba7ffb43eb4e29164736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20PresetMinterPauser.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20PresetMinterPauser.json index cf311d9..e7a32aa 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20PresetMinterPauser.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20PresetMinterPauser.json @@ -608,7 +608,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -632,12 +632,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -665,8 +665,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162001e3938038062001e3983398101604081905262000034916200039c565b8151829082906200004d90600590602085019062000243565b5080516200006390600690602084019062000243565b50506007805460ff19169055506200007e6000335b620000de565b620000aa7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000078565b620000d67f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3362000078565b505062000456565b620000f582826200012160201b620009ec1760201c565b60008281526001602090815260409091206200011c918390620009f662000131821b17901c565b505050565b6200012d828262000151565b5050565b600062000148836001600160a01b038416620001f1565b90505b92915050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200012d576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001ad3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008181526001830160205260408120546200023a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200014b565b5060006200014b565b828054620002519062000403565b90600052602060002090601f016020900481019282620002755760008555620002c0565b82601f106200029057805160ff1916838001178555620002c0565b82800160010185558215620002c0579182015b82811115620002c0578251825591602001919060010190620002a3565b50620002ce929150620002d2565b5090565b5b80821115620002ce5760008155600101620002d3565b600082601f830112620002fa578081fd5b81516001600160401b038082111562000317576200031762000440565b604051601f8301601f19908116603f0116810190828211818310171562000342576200034262000440565b816040528381526020925086838588010111156200035e578485fd5b8491505b8382101562000381578582018301518183018401529082019062000362565b838211156200039257848385830101525b9695505050505050565b60008060408385031215620003af578182fd5b82516001600160401b0380821115620003c6578384fd5b620003d486838701620002e9565b93506020850151915080821115620003ea578283fd5b50620003f985828601620002e9565b9150509250929050565b600181811c908216806200041857607f821691505b602082108114156200043a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6119d380620004666000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d5391393146103af578063d547741f146103d6578063dd62ed3e146103e9578063e63ab1e914610422576101c4565b8063a457c2d714610376578063a9059cbb14610389578063ca15c8731461039c576101c4565b80639010d07c116100d35780639010d07c1461032857806391d148541461035357806395d89b4114610366578063a217fddf1461036e576101c4565b806370a08231146102e457806379cc67901461030d5780638456cb5914610320576101c4565b8063313ce567116101665780633f4ba83a116101405780633f4ba83a146102ab57806340c10f19146102b357806342966c68146102c65780635c975abb146102d9576101c4565b8063313ce5671461027657806336568abe146102855780633950935114610298576101c4565b806318160ddd116101a257806318160ddd1461021957806323b872dd1461022b578063248a9ca31461023e5780632f2ff15d14610261576101c4565b806301ffc9a7146101c957806306fdde03146101f1578063095ea7b314610206575b600080fd5b6101dc6101d73660046117eb565b610449565b60405190151581526020015b60405180910390f35b6101f9610476565b6040516101e89190611888565b6101dc610214366004611767565b610508565b6004545b6040519081526020016101e8565b6101dc61023936600461172c565b61051f565b61021d61024c366004611790565b60009081526020819052604090206001015490565b61027461026f3660046117a8565b6105ce565b005b604051601281526020016101e8565b6102746102933660046117a8565b6105f5565b6101dc6102a6366004611767565b610617565b610274610653565b6102746102c1366004611767565b6106f9565b6102746102d4366004611790565b61079c565b60075460ff166101dc565b61021d6102f23660046116e0565b6001600160a01b031660009081526002602052604090205490565b61027461031b366004611767565b6107a9565b61027461082a565b61033b6103363660046117ca565b6108ce565b6040516001600160a01b0390911681526020016101e8565b6101dc6103613660046117a8565b6108ed565b6101f9610916565b61021d600081565b6101dc610384366004611767565b610925565b6101dc610397366004611767565b6109be565b61021d6103aa366004611790565b6109cb565b61021d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102746103e43660046117a8565b6109e2565b61021d6103f73660046116fa565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61021d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216635a05180f60e01b148061046e575061046e82610a0b565b90505b919050565b6060600580546104859061194c565b80601f01602080910402602001604051908101604052809291908181526020018280546104b19061194c565b80156104fe5780601f106104d3576101008083540402835291602001916104fe565b820191906000526020600020905b8154815290600101906020018083116104e157829003601f168201915b5050505050905090565b6000610515338484610a40565b5060015b92915050565b600061052c848484610b64565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156105b65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105c38533858403610a40565b506001949350505050565b6105d88282610d3f565b60008281526001602052604090206105f090826109f6565b505050565b6105ff8282610d66565b60008281526001602052604090206105f09082610de0565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161051591859061064e9086906118bb565b610a40565b61067d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610361565b6106ef5760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105ad565b6106f7610df5565b565b6107237f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610361565b61078e5760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105ad565b6107988282610e88565b5050565b6107a63382610f74565b50565b60006107b583336103f7565b9050818110156108135760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b60648201526084016105ad565b6108208333848403610a40565b6105f08383610f74565b6108547f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610361565b6108c65760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105ad565b6106f76110ce565b60008281526001602052604081206108e69083611149565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600680546104859061194c565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156109a75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105ad565b6109b43385858403610a40565b5060019392505050565b6000610515338484610b64565b600081815260016020526040812061046e90611155565b6105ff828261115f565b6107988282611185565b60006108e6836001600160a01b038416611209565b60006001600160e01b03198216637965db0b60e01b148061046e57506301ffc9a760e01b6001600160e01b031983161461046e565b6001600160a01b038316610aa25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ad565b6001600160a01b038216610b035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ad565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bc85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ad565b6001600160a01b038216610c2a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ad565b610c35838383611258565b6001600160a01b03831660009081526002602052604090205481811015610cad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105ad565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290610ce49084906118bb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3091815260200190565b60405180910390a35b50505050565b600082815260208190526040902060010154610d5c81335b611263565b6105f08383611185565b6001600160a01b0381163314610dd65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105ad565b61079882826112c7565b60006108e6836001600160a01b03841661132c565b60075460ff16610e3e5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105ad565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610ede5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105ad565b610eea60008383611258565b8060046000828254610efc91906118bb565b90915550506001600160a01b03821660009081526002602052604081208054839290610f299084906118bb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610798565b6001600160a01b038216610fd45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105ad565b610fe082600083611258565b6001600160a01b038216600090815260026020526040902054818110156110545760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105ad565b6001600160a01b03831660009081526002602052604081208383039055600480548492906110839084906118f2565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36105f0565b60075460ff16156111145760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105ad565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610e6b3390565b60006108e68383611449565b600061046e825490565b60008281526020819052604090206001015461117b8133610d57565b6105f083836112c7565b61118f82826108ed565b610798576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556111c53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600081815260018301602052604081205461125057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610519565b506000610519565b6105f0838383611481565b61126d82826108ed565b61079857611285816001600160a01b031660146114e7565b6112908360206114e7565b6040516020016112a1929190611813565b60408051601f198184030181529082905262461bcd60e51b82526105ad91600401611888565b6112d182826108ed565b15610798576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000818152600183016020526040812054801561143f5760006113506001836118f2565b8554909150600090611364906001906118f2565b90508181146113e557600086600001828154811061139257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106113c357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061140457634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610519565b6000915050610519565b600082600001828154811061146e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60075460ff16156105f05760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105ad565b606060006114f68360026118d3565b6115019060026118bb565b67ffffffffffffffff81111561152757634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611551576020820181803683370190505b509050600360fc1b8160008151811061157a57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106115b757634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006115db8460026118d3565b6115e69060016118bb565b90505b600181111561167a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061162857634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061164c57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361167381611935565b90506115e9565b5083156108e65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ad565b80356001600160a01b038116811461047157600080fd5b6000602082840312156116f1578081fd5b6108e6826116c9565b6000806040838503121561170c578081fd5b611715836116c9565b9150611723602084016116c9565b90509250929050565b600080600060608486031215611740578081fd5b611749846116c9565b9250611757602085016116c9565b9150604084013590509250925092565b60008060408385031215611779578182fd5b611782836116c9565b946020939093013593505050565b6000602082840312156117a1578081fd5b5035919050565b600080604083850312156117ba578182fd5b82359150611723602084016116c9565b600080604083850312156117dc578182fd5b50508035926020909101359150565b6000602082840312156117fc578081fd5b81356001600160e01b0319811681146108e6578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008252835161184b816017850160208801611909565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161187c816028840160208801611909565b01602801949350505050565b60006020825282518060208401526118a7816040850160208701611909565b601f01601f19169190910160400192915050565b600082198211156118ce576118ce611987565b500190565b60008160001904831182151516156118ed576118ed611987565b500290565b60008282101561190457611904611987565b500390565b60005b8381101561192457818101518382015260200161190c565b83811115610d395750506000910152565b60008161194457611944611987565b506000190190565b600181811c9082168061196057607f821691505b6020821081141561198157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220ae386b40d9bc06b6d5a7d9610f6825fc91bf0484da9d4a0f3bb5474557c2aa4864736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d5391393146103af578063d547741f146103d6578063dd62ed3e146103e9578063e63ab1e914610422576101c4565b8063a457c2d714610376578063a9059cbb14610389578063ca15c8731461039c576101c4565b80639010d07c116100d35780639010d07c1461032857806391d148541461035357806395d89b4114610366578063a217fddf1461036e576101c4565b806370a08231146102e457806379cc67901461030d5780638456cb5914610320576101c4565b8063313ce567116101665780633f4ba83a116101405780633f4ba83a146102ab57806340c10f19146102b357806342966c68146102c65780635c975abb146102d9576101c4565b8063313ce5671461027657806336568abe146102855780633950935114610298576101c4565b806318160ddd116101a257806318160ddd1461021957806323b872dd1461022b578063248a9ca31461023e5780632f2ff15d14610261576101c4565b806301ffc9a7146101c957806306fdde03146101f1578063095ea7b314610206575b600080fd5b6101dc6101d73660046117eb565b610449565b60405190151581526020015b60405180910390f35b6101f9610476565b6040516101e89190611888565b6101dc610214366004611767565b610508565b6004545b6040519081526020016101e8565b6101dc61023936600461172c565b61051f565b61021d61024c366004611790565b60009081526020819052604090206001015490565b61027461026f3660046117a8565b6105ce565b005b604051601281526020016101e8565b6102746102933660046117a8565b6105f5565b6101dc6102a6366004611767565b610617565b610274610653565b6102746102c1366004611767565b6106f9565b6102746102d4366004611790565b61079c565b60075460ff166101dc565b61021d6102f23660046116e0565b6001600160a01b031660009081526002602052604090205490565b61027461031b366004611767565b6107a9565b61027461082a565b61033b6103363660046117ca565b6108ce565b6040516001600160a01b0390911681526020016101e8565b6101dc6103613660046117a8565b6108ed565b6101f9610916565b61021d600081565b6101dc610384366004611767565b610925565b6101dc610397366004611767565b6109be565b61021d6103aa366004611790565b6109cb565b61021d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102746103e43660046117a8565b6109e2565b61021d6103f73660046116fa565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61021d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216635a05180f60e01b148061046e575061046e82610a0b565b90505b919050565b6060600580546104859061194c565b80601f01602080910402602001604051908101604052809291908181526020018280546104b19061194c565b80156104fe5780601f106104d3576101008083540402835291602001916104fe565b820191906000526020600020905b8154815290600101906020018083116104e157829003601f168201915b5050505050905090565b6000610515338484610a40565b5060015b92915050565b600061052c848484610b64565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156105b65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105c38533858403610a40565b506001949350505050565b6105d88282610d3f565b60008281526001602052604090206105f090826109f6565b505050565b6105ff8282610d66565b60008281526001602052604090206105f09082610de0565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161051591859061064e9086906118bb565b610a40565b61067d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610361565b6106ef5760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105ad565b6106f7610df5565b565b6107237f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610361565b61078e5760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105ad565b6107988282610e88565b5050565b6107a63382610f74565b50565b60006107b583336103f7565b9050818110156108135760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b60648201526084016105ad565b6108208333848403610a40565b6105f08383610f74565b6108547f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610361565b6108c65760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105ad565b6106f76110ce565b60008281526001602052604081206108e69083611149565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600680546104859061194c565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156109a75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105ad565b6109b43385858403610a40565b5060019392505050565b6000610515338484610b64565b600081815260016020526040812061046e90611155565b6105ff828261115f565b6107988282611185565b60006108e6836001600160a01b038416611209565b60006001600160e01b03198216637965db0b60e01b148061046e57506301ffc9a760e01b6001600160e01b031983161461046e565b6001600160a01b038316610aa25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ad565b6001600160a01b038216610b035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ad565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bc85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ad565b6001600160a01b038216610c2a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ad565b610c35838383611258565b6001600160a01b03831660009081526002602052604090205481811015610cad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105ad565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290610ce49084906118bb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3091815260200190565b60405180910390a35b50505050565b600082815260208190526040902060010154610d5c81335b611263565b6105f08383611185565b6001600160a01b0381163314610dd65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105ad565b61079882826112c7565b60006108e6836001600160a01b03841661132c565b60075460ff16610e3e5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105ad565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610ede5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105ad565b610eea60008383611258565b8060046000828254610efc91906118bb565b90915550506001600160a01b03821660009081526002602052604081208054839290610f299084906118bb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610798565b6001600160a01b038216610fd45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105ad565b610fe082600083611258565b6001600160a01b038216600090815260026020526040902054818110156110545760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105ad565b6001600160a01b03831660009081526002602052604081208383039055600480548492906110839084906118f2565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36105f0565b60075460ff16156111145760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105ad565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610e6b3390565b60006108e68383611449565b600061046e825490565b60008281526020819052604090206001015461117b8133610d57565b6105f083836112c7565b61118f82826108ed565b610798576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556111c53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600081815260018301602052604081205461125057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610519565b506000610519565b6105f0838383611481565b61126d82826108ed565b61079857611285816001600160a01b031660146114e7565b6112908360206114e7565b6040516020016112a1929190611813565b60408051601f198184030181529082905262461bcd60e51b82526105ad91600401611888565b6112d182826108ed565b15610798576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000818152600183016020526040812054801561143f5760006113506001836118f2565b8554909150600090611364906001906118f2565b90508181146113e557600086600001828154811061139257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106113c357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061140457634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610519565b6000915050610519565b600082600001828154811061146e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60075460ff16156105f05760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105ad565b606060006114f68360026118d3565b6115019060026118bb565b67ffffffffffffffff81111561152757634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611551576020820181803683370190505b509050600360fc1b8160008151811061157a57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106115b757634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006115db8460026118d3565b6115e69060016118bb565b90505b600181111561167a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061162857634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061164c57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361167381611935565b90506115e9565b5083156108e65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ad565b80356001600160a01b038116811461047157600080fd5b6000602082840312156116f1578081fd5b6108e6826116c9565b6000806040838503121561170c578081fd5b611715836116c9565b9150611723602084016116c9565b90509250929050565b600080600060608486031215611740578081fd5b611749846116c9565b9250611757602085016116c9565b9150604084013590509250925092565b60008060408385031215611779578182fd5b611782836116c9565b946020939093013593505050565b6000602082840312156117a1578081fd5b5035919050565b600080604083850312156117ba578182fd5b82359150611723602084016116c9565b600080604083850312156117dc578182fd5b50508035926020909101359150565b6000602082840312156117fc578081fd5b81356001600160e01b0319811681146108e6578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008252835161184b816017850160208801611909565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161187c816028840160208801611909565b01602801949350505050565b60006020825282518060208401526118a7816040850160208701611909565b601f01601f19169190910160400192915050565b600082198211156118ce576118ce611987565b500190565b60008160001904831182151516156118ed576118ed611987565b500290565b60008282101561190457611904611987565b500390565b60005b8381101561192457818101518382015260200161190c565b83811115610d395750506000910152565b60008161194457611944611987565b506000190190565b600181811c9082168061196057607f821691505b6020821081141561198157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220ae386b40d9bc06b6d5a7d9610f6825fc91bf0484da9d4a0f3bb5474557c2aa4864736f6c63430008030033", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162001d1038038062001d108339810160408190526200003491620003b5565b8151829082906200004d90600590602085019062000242565b5080516200006390600690602084019062000242565b50506007805460ff19169055506200007d600033620000dd565b620000a97f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000dd565b620000d57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000dd565b50506200045b565b620000e98282620000ed565b5050565b6200010482826200013060201b6200093d1760201c565b60008281526001602090815260409091206200012b918390620009c1620001d0821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200018c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001e7836001600160a01b038416620001f0565b90505b92915050565b60008181526001830160205260408120546200023957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001ea565b506000620001ea565b82805462000250906200041f565b90600052602060002090601f016020900481019282620002745760008555620002bf565b82601f106200028f57805160ff1916838001178555620002bf565b82800160010185558215620002bf579182015b82811115620002bf578251825591602001919060010190620002a2565b50620002cd929150620002d1565b5090565b5b80821115620002cd5760008155600101620002d2565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200031057600080fd5b81516001600160401b03808211156200032d576200032d620002e8565b604051601f8301601f19908116603f01168101908282118183101715620003585762000358620002e8565b816040528381526020925086838588010111156200037557600080fd5b600091505b838210156200039957858201830151818301840152908201906200037a565b83821115620003ab5760008385830101525b9695505050505050565b60008060408385031215620003c957600080fd5b82516001600160401b0380821115620003e157600080fd5b620003ef86838701620002fe565b935060208501519150808211156200040657600080fd5b506200041585828601620002fe565b9150509250929050565b600181811c908216806200043457607f821691505b6020821081036200045557634e487b7160e01b600052602260045260246000fd5b50919050565b6118a5806200046b6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d5391393146103af578063d547741f146103d6578063dd62ed3e146103e9578063e63ab1e9146103fc57600080fd5b8063a457c2d714610376578063a9059cbb14610389578063ca15c8731461039c57600080fd5b80639010d07c116100d35780639010d07c1461032857806391d148541461035357806395d89b4114610366578063a217fddf1461036e57600080fd5b806370a08231146102e457806379cc67901461030d5780638456cb591461032057600080fd5b8063313ce567116101665780633f4ba83a116101405780633f4ba83a146102ab57806340c10f19146102b357806342966c68146102c65780635c975abb146102d957600080fd5b8063313ce5671461027657806336568abe14610285578063395093511461029857600080fd5b806318160ddd116101a257806318160ddd1461021957806323b872dd1461022b578063248a9ca31461023e5780632f2ff15d1461026157600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063095ea7b314610206575b600080fd5b6101dc6101d736600461154c565b610423565b60405190151581526020015b60405180910390f35b6101f961044e565b6040516101e891906115a2565b6101dc6102143660046115f1565b6104e0565b6004545b6040519081526020016101e8565b6101dc61023936600461161b565b6104f8565b61021d61024c366004611657565b60009081526020819052604090206001015490565b61027461026f366004611670565b61051c565b005b604051601281526020016101e8565b610274610293366004611670565b610546565b6101dc6102a63660046115f1565b6105c9565b6102746105eb565b6102746102c13660046115f1565b610691565b6102746102d4366004611657565b610730565b60075460ff166101dc565b61021d6102f236600461169c565b6001600160a01b031660009081526002602052604090205490565b61027461031b3660046115f1565b61073d565b610274610752565b61033b6103363660046116b7565b6107f6565b6040516001600160a01b0390911681526020016101e8565b6101dc610361366004611670565b610815565b6101f961083e565b61021d600081565b6101dc6103843660046115f1565b61084d565b6101dc6103973660046115f1565b6108c8565b61021d6103aa366004611657565b6108d6565b61021d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102746103e4366004611670565b6108ed565b61021d6103f73660046116d9565b610912565b61021d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216635a05180f60e01b14806104485750610448826109d6565b92915050565b60606005805461045d90611703565b80601f016020809104026020016040519081016040528092919081815260200182805461048990611703565b80156104d65780601f106104ab576101008083540402835291602001916104d6565b820191906000526020600020905b8154815290600101906020018083116104b957829003601f168201915b5050505050905090565b6000336104ee818585610a0b565b5060019392505050565b600033610506858285610b2f565b610511858585610ba9565b506001949350505050565b60008281526020819052604090206001015461053781610d5f565b6105418383610d69565b505050565b6001600160a01b03811633146105bb5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105c58282610d8b565b5050565b6000336104ee8185856105dc8383610912565b6105e69190611753565b610a0b565b6106157f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610815565b6106875760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105b2565b61068f610dad565b565b6106bb7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610815565b6107265760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105b2565b6105c58282610dff565b61073a3382610ecc565b50565b610748823383610b2f565b6105c58282610ecc565b61077c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610815565b6107ee5760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105b2565b61068f61100c565b600082815260016020526040812061080e9083611049565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461045d90611703565b6000338161085b8286610912565b9050838110156108bb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105b2565b6105118286868403610a0b565b6000336104ee818585610ba9565b600081815260016020526040812061044890611055565b60008281526020819052604090206001015461090881610d5f565b6105418383610d8b565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6109478282610815565b6105c5576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561097d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061080e836001600160a01b03841661105f565b60006001600160e01b03198216637965db0b60e01b148061044857506301ffc9a760e01b6001600160e01b0319831614610448565b6001600160a01b038316610a6d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105b2565b6001600160a01b038216610ace5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b2565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610b3b8484610912565b90506000198114610ba35781811015610b965760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b2565b610ba38484848403610a0b565b50505050565b6001600160a01b038316610c0d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105b2565b6001600160a01b038216610c6f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105b2565b610c7a8383836110ae565b6001600160a01b03831660009081526002602052604090205481811015610cf25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105b2565b6001600160a01b0380851660008181526002602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d529086815260200190565b60405180910390a3610ba3565b61073a81336110b9565b610d73828261093d565b600082815260016020526040902061054190826109c1565b610d958282611112565b60008281526001602052604090206105419082611177565b610db561118c565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610e555760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105b2565b610e61600083836110ae565b8060046000828254610e739190611753565b90915550506001600160a01b0382166000818152600260209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216610f2c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105b2565b610f38826000836110ae565b6001600160a01b03821660009081526002602052604090205481811015610fac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105b2565b6001600160a01b03831660008181526002602090815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6110146111d5565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610de23390565b600061080e838361121b565b6000610448825490565b60008181526001830160205260408120546110a657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610448565b506000610448565b610541838383611245565b6110c38282610815565b6105c5576110d0816112ab565b6110db8360206112bd565b6040516020016110ec92919061176b565b60408051601f198184030181529082905262461bcd60e51b82526105b2916004016115a2565b61111c8282610815565b156105c5576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061080e836001600160a01b038416611459565b60075460ff1661068f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105b2565b60075460ff161561068f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105b2565b6000826000018281548110611232576112326117e0565b9060005260206000200154905092915050565b60075460ff16156105415760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105b2565b60606104486001600160a01b03831660145b606060006112cc8360026117f6565b6112d7906002611753565b67ffffffffffffffff8111156112ef576112ef611815565b6040519080825280601f01601f191660200182016040528015611319576020820181803683370190505b509050600360fc1b81600081518110611334576113346117e0565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611363576113636117e0565b60200101906001600160f81b031916908160001a90535060006113878460026117f6565b611392906001611753565b90505b600181111561140a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106113c6576113c66117e0565b1a60f81b8282815181106113dc576113dc6117e0565b60200101906001600160f81b031916908160001a90535060049490941c936114038161182b565b9050611395565b50831561080e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105b2565b6000818152600183016020526040812054801561154257600061147d600183611842565b855490915060009061149190600190611842565b90508181146114f65760008660000182815481106114b1576114b16117e0565b90600052602060002001549050808760000184815481106114d4576114d46117e0565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061150757611507611859565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610448565b6000915050610448565b60006020828403121561155e57600080fd5b81356001600160e01b03198116811461080e57600080fd5b60005b83811015611591578181015183820152602001611579565b83811115610ba35750506000910152565b60208152600082518060208401526115c1816040850160208701611576565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146115ec57600080fd5b919050565b6000806040838503121561160457600080fd5b61160d836115d5565b946020939093013593505050565b60008060006060848603121561163057600080fd5b611639846115d5565b9250611647602085016115d5565b9150604084013590509250925092565b60006020828403121561166957600080fd5b5035919050565b6000806040838503121561168357600080fd5b82359150611693602084016115d5565b90509250929050565b6000602082840312156116ae57600080fd5b61080e826115d5565b600080604083850312156116ca57600080fd5b50508035926020909101359150565b600080604083850312156116ec57600080fd5b6116f5836115d5565b9150611693602084016115d5565b600181811c9082168061171757607f821691505b60208210810361173757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156117665761176661173d565b500190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516117a3816017850160208801611576565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516117d4816028840160208801611576565b01602801949350505050565b634e487b7160e01b600052603260045260246000fd5b60008160001904831182151516156118105761181061173d565b500290565b634e487b7160e01b600052604160045260246000fd5b60008161183a5761183a61173d565b506000190190565b6000828210156118545761185461173d565b500390565b634e487b7160e01b600052603160045260246000fdfea26469706673582212203555e31cce90e73428bd55d1113c2e0b9b5a9d364695f4eed684cee3a00098e664736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d5391393146103af578063d547741f146103d6578063dd62ed3e146103e9578063e63ab1e9146103fc57600080fd5b8063a457c2d714610376578063a9059cbb14610389578063ca15c8731461039c57600080fd5b80639010d07c116100d35780639010d07c1461032857806391d148541461035357806395d89b4114610366578063a217fddf1461036e57600080fd5b806370a08231146102e457806379cc67901461030d5780638456cb591461032057600080fd5b8063313ce567116101665780633f4ba83a116101405780633f4ba83a146102ab57806340c10f19146102b357806342966c68146102c65780635c975abb146102d957600080fd5b8063313ce5671461027657806336568abe14610285578063395093511461029857600080fd5b806318160ddd116101a257806318160ddd1461021957806323b872dd1461022b578063248a9ca31461023e5780632f2ff15d1461026157600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063095ea7b314610206575b600080fd5b6101dc6101d736600461154c565b610423565b60405190151581526020015b60405180910390f35b6101f961044e565b6040516101e891906115a2565b6101dc6102143660046115f1565b6104e0565b6004545b6040519081526020016101e8565b6101dc61023936600461161b565b6104f8565b61021d61024c366004611657565b60009081526020819052604090206001015490565b61027461026f366004611670565b61051c565b005b604051601281526020016101e8565b610274610293366004611670565b610546565b6101dc6102a63660046115f1565b6105c9565b6102746105eb565b6102746102c13660046115f1565b610691565b6102746102d4366004611657565b610730565b60075460ff166101dc565b61021d6102f236600461169c565b6001600160a01b031660009081526002602052604090205490565b61027461031b3660046115f1565b61073d565b610274610752565b61033b6103363660046116b7565b6107f6565b6040516001600160a01b0390911681526020016101e8565b6101dc610361366004611670565b610815565b6101f961083e565b61021d600081565b6101dc6103843660046115f1565b61084d565b6101dc6103973660046115f1565b6108c8565b61021d6103aa366004611657565b6108d6565b61021d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102746103e4366004611670565b6108ed565b61021d6103f73660046116d9565b610912565b61021d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216635a05180f60e01b14806104485750610448826109d6565b92915050565b60606005805461045d90611703565b80601f016020809104026020016040519081016040528092919081815260200182805461048990611703565b80156104d65780601f106104ab576101008083540402835291602001916104d6565b820191906000526020600020905b8154815290600101906020018083116104b957829003601f168201915b5050505050905090565b6000336104ee818585610a0b565b5060019392505050565b600033610506858285610b2f565b610511858585610ba9565b506001949350505050565b60008281526020819052604090206001015461053781610d5f565b6105418383610d69565b505050565b6001600160a01b03811633146105bb5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105c58282610d8b565b5050565b6000336104ee8185856105dc8383610912565b6105e69190611753565b610a0b565b6106157f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610815565b6106875760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105b2565b61068f610dad565b565b6106bb7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610815565b6107265760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105b2565b6105c58282610dff565b61073a3382610ecc565b50565b610748823383610b2f565b6105c58282610ecc565b61077c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610815565b6107ee5760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105b2565b61068f61100c565b600082815260016020526040812061080e9083611049565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461045d90611703565b6000338161085b8286610912565b9050838110156108bb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105b2565b6105118286868403610a0b565b6000336104ee818585610ba9565b600081815260016020526040812061044890611055565b60008281526020819052604090206001015461090881610d5f565b6105418383610d8b565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6109478282610815565b6105c5576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561097d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061080e836001600160a01b03841661105f565b60006001600160e01b03198216637965db0b60e01b148061044857506301ffc9a760e01b6001600160e01b0319831614610448565b6001600160a01b038316610a6d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105b2565b6001600160a01b038216610ace5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b2565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610b3b8484610912565b90506000198114610ba35781811015610b965760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b2565b610ba38484848403610a0b565b50505050565b6001600160a01b038316610c0d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105b2565b6001600160a01b038216610c6f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105b2565b610c7a8383836110ae565b6001600160a01b03831660009081526002602052604090205481811015610cf25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105b2565b6001600160a01b0380851660008181526002602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d529086815260200190565b60405180910390a3610ba3565b61073a81336110b9565b610d73828261093d565b600082815260016020526040902061054190826109c1565b610d958282611112565b60008281526001602052604090206105419082611177565b610db561118c565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610e555760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105b2565b610e61600083836110ae565b8060046000828254610e739190611753565b90915550506001600160a01b0382166000818152600260209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216610f2c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105b2565b610f38826000836110ae565b6001600160a01b03821660009081526002602052604090205481811015610fac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105b2565b6001600160a01b03831660008181526002602090815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6110146111d5565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610de23390565b600061080e838361121b565b6000610448825490565b60008181526001830160205260408120546110a657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610448565b506000610448565b610541838383611245565b6110c38282610815565b6105c5576110d0816112ab565b6110db8360206112bd565b6040516020016110ec92919061176b565b60408051601f198184030181529082905262461bcd60e51b82526105b2916004016115a2565b61111c8282610815565b156105c5576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061080e836001600160a01b038416611459565b60075460ff1661068f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105b2565b60075460ff161561068f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105b2565b6000826000018281548110611232576112326117e0565b9060005260206000200154905092915050565b60075460ff16156105415760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105b2565b60606104486001600160a01b03831660145b606060006112cc8360026117f6565b6112d7906002611753565b67ffffffffffffffff8111156112ef576112ef611815565b6040519080825280601f01601f191660200182016040528015611319576020820181803683370190505b509050600360fc1b81600081518110611334576113346117e0565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611363576113636117e0565b60200101906001600160f81b031916908160001a90535060006113878460026117f6565b611392906001611753565b90505b600181111561140a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106113c6576113c66117e0565b1a60f81b8282815181106113dc576113dc6117e0565b60200101906001600160f81b031916908160001a90535060049490941c936114038161182b565b9050611395565b50831561080e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105b2565b6000818152600183016020526040812054801561154257600061147d600183611842565b855490915060009061149190600190611842565b90508181146114f65760008660000182815481106114b1576114b16117e0565b90600052602060002001549050808760000184815481106114d4576114d46117e0565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061150757611507611859565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610448565b6000915050610448565b60006020828403121561155e57600080fd5b81356001600160e01b03198116811461080e57600080fd5b60005b83811015611591578181015183820152602001611579565b83811115610ba35750506000910152565b60208152600082518060208401526115c1816040850160208701611576565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146115ec57600080fd5b919050565b6000806040838503121561160457600080fd5b61160d836115d5565b946020939093013593505050565b60008060006060848603121561163057600080fd5b611639846115d5565b9250611647602085016115d5565b9150604084013590509250925092565b60006020828403121561166957600080fd5b5035919050565b6000806040838503121561168357600080fd5b82359150611693602084016115d5565b90509250929050565b6000602082840312156116ae57600080fd5b61080e826115d5565b600080604083850312156116ca57600080fd5b50508035926020909101359150565b600080604083850312156116ec57600080fd5b6116f5836115d5565b9150611693602084016115d5565b600181811c9082168061171757607f821691505b60208210810361173757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156117665761176661173d565b500190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516117a3816017850160208801611576565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516117d4816028840160208801611576565b01602801949350505050565b634e487b7160e01b600052603260045260246000fd5b60008160001904831182151516156118105761181061173d565b500290565b634e487b7160e01b600052604160045260246000fd5b60008161183a5761183a61173d565b506000190190565b6000828210156118545761185461173d565b500390565b634e487b7160e01b600052603160045260246000fdfea26469706673582212203555e31cce90e73428bd55d1113c2e0b9b5a9d364695f4eed684cee3a00098e664736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Snapshot.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Snapshot.json index 7f30dcd..9452d97 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Snapshot.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Snapshot.json @@ -280,7 +280,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -304,12 +304,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Votes.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Votes.json index 89333fc..615b6c4 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Votes.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Votes.json @@ -3,6 +3,22 @@ "contractName": "ERC20Votes", "sourceName": "contracts/token/ERC20/extensions/ERC20Votes.sol", "abi": [ + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -78,6 +94,12 @@ "name": "DelegateVotesChanged", "type": "event" }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -103,6 +125,19 @@ "name": "Transfer", "type": "event" }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "DOMAIN_SEPARATOR", @@ -219,6 +254,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "decimals", @@ -326,11 +374,54 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -354,7 +445,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -536,7 +627,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -560,12 +651,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20VotesComp.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20VotesComp.json index 71c4ae6..e45ceba 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20VotesComp.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20VotesComp.json @@ -3,6 +3,22 @@ "contractName": "ERC20VotesComp", "sourceName": "contracts/token/ERC20/extensions/ERC20VotesComp.sol", "abi": [ + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -78,6 +94,12 @@ "name": "DelegateVotesChanged", "type": "event" }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -103,6 +125,19 @@ "name": "Transfer", "type": "event" }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "DOMAIN_SEPARATOR", @@ -219,6 +254,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "decimals", @@ -326,6 +374,49 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -349,7 +440,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -373,7 +464,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -579,7 +670,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -603,12 +694,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Wrapper.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Wrapper.json index bdfda9c..7a29c69 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC20Wrapper.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC20Wrapper.json @@ -248,7 +248,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -272,12 +272,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC721.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC721.json index 51df039..1cdce62 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC721.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC721.json @@ -248,7 +248,7 @@ }, { "internalType": "bytes", - "name": "_data", + "name": "data", "type": "bytes" } ], @@ -350,8 +350,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620014d2380380620014d28339810160408190526200003491620001c1565b81516200004990600090602085019062000068565b5080516200005f90600190602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b600181811c908216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b611247806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610f3f565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190611027565b61012461011f366004610f77565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610f16565b6103a8565b005b61014f61015f366004610dcc565b6104be565b61014f610172366004610dcc565b6104ef565b610124610185366004610f77565b61050a565b61019d610198366004610d80565b610581565b6040519081526020016100f3565b610104610608565b61014f6101c1366004610edc565b610617565b61014f6101d4366004610e07565b6106e9565b6101046101e7366004610f77565b610721565b6100e76101fa366004610d9a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606000805461028b9061114c565b80601f01602080910402602001604051908101604052809291908181526020018280546102b79061114c565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661038c5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006103b38261050a565b9050806001600160a01b0316836001600160a01b031614156104215760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610383565b336001600160a01b038216148061043d575061043d81336101fa565b6104af5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610383565b6104b98383610809565b505050565b6104c83382610877565b6104e45760405162461bcd60e51b81526004016103839061108c565b6104b983838361096e565b6104b9838383604051806020016040528060008152506106e9565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610383565b60006001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610383565b506001600160a01b031660009081526003602052604090205490565b60606001805461028b9061114c565b6001600160a01b0382163314156106705760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610383565b3360008181526005602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516106dd911515815260200190565b60405180910390a35050565b6106f33383610877565b61070f5760405162461bcd60e51b81526004016103839061108c565b61071b84848484610b0e565b50505050565b6000818152600260205260409020546060906001600160a01b03166107a05760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610383565b60006107b760408051602081019091526000815290565b905060008151116107d75760405180602001604052806000815250610802565b806107e184610b41565b6040516020016107f2929190610fbb565b6040516020818303038152906040525b9392505050565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061083e8261050a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166108f05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610383565b60006108fb8361050a565b9050806001600160a01b0316846001600160a01b031614806109365750836001600160a01b031661092b8461030e565b6001600160a01b0316145b8061096657506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166109818261050a565b6001600160a01b0316146109e95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610383565b6001600160a01b038216610a4b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610383565b610a56600082610809565b6001600160a01b0383166000908152600360205260408120805460019290610a7f908490611109565b90915550506001600160a01b0382166000908152600360205260408120805460019290610aad9084906110dd565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610b1984848461096e565b610b2584848484610c5c565b61071b5760405162461bcd60e51b81526004016103839061103a565b606081610b6657506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610b905780610b7a81611187565b9150610b899050600a836110f5565b9150610b6a565b60008167ffffffffffffffff811115610bb957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610be3576020820181803683370190505b5090505b841561096657610bf8600183611109565b9150610c05600a866111a2565b610c109060306110dd565b60f81b818381518110610c3357634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610c55600a866110f5565b9450610be7565b60006001600160a01b0384163b15610d5e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ca0903390899088908890600401610fea565b602060405180830381600087803b158015610cba57600080fd5b505af1925050508015610cea575060408051601f3d908101601f19168201909252610ce791810190610f5b565b60015b610d44573d808015610d18576040519150601f19603f3d011682016040523d82523d6000602084013e610d1d565b606091505b508051610d3c5760405162461bcd60e51b81526004016103839061103a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610966565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610d91578081fd5b61080282610d69565b60008060408385031215610dac578081fd5b610db583610d69565b9150610dc360208401610d69565b90509250929050565b600080600060608486031215610de0578081fd5b610de984610d69565b9250610df760208501610d69565b9150604084013590509250925092565b60008060008060808587031215610e1c578081fd5b610e2585610d69565b9350610e3360208601610d69565b925060408501359150606085013567ffffffffffffffff80821115610e56578283fd5b818701915087601f830112610e69578283fd5b813581811115610e7b57610e7b6111e2565b604051601f8201601f19908116603f01168101908382118183101715610ea357610ea36111e2565b816040528281528a6020848701011115610ebb578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610eee578182fd5b610ef783610d69565b915060208301358015158114610f0b578182fd5b809150509250929050565b60008060408385031215610f28578182fd5b610f3183610d69565b946020939093013593505050565b600060208284031215610f50578081fd5b8135610802816111f8565b600060208284031215610f6c578081fd5b8151610802816111f8565b600060208284031215610f88578081fd5b5035919050565b60008151808452610fa7816020860160208601611120565b601f01601f19169290920160200192915050565b60008351610fcd818460208801611120565b835190830190610fe1818360208801611120565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061101d90830184610f8f565b9695505050505050565b6000602082526108026020830184610f8f565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156110f0576110f06111b6565b500190565b600082611104576111046111cc565b500490565b60008282101561111b5761111b6111b6565b500390565b60005b8381101561113b578181015183820152602001611123565b8381111561071b5750506000910152565b600181811c9082168061116057607f821691505b6020821081141561118157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561119b5761119b6111b6565b5060010190565b6000826111b1576111b16111cc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461120e57600080fd5b5056fea26469706673582212202d938d3b28324cc89e6d2076ba56ed8ae7428805a112a58e80ba9ad3b13c770964736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610f3f565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190611027565b61012461011f366004610f77565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610f16565b6103a8565b005b61014f61015f366004610dcc565b6104be565b61014f610172366004610dcc565b6104ef565b610124610185366004610f77565b61050a565b61019d610198366004610d80565b610581565b6040519081526020016100f3565b610104610608565b61014f6101c1366004610edc565b610617565b61014f6101d4366004610e07565b6106e9565b6101046101e7366004610f77565b610721565b6100e76101fa366004610d9a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606000805461028b9061114c565b80601f01602080910402602001604051908101604052809291908181526020018280546102b79061114c565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661038c5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006103b38261050a565b9050806001600160a01b0316836001600160a01b031614156104215760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610383565b336001600160a01b038216148061043d575061043d81336101fa565b6104af5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610383565b6104b98383610809565b505050565b6104c83382610877565b6104e45760405162461bcd60e51b81526004016103839061108c565b6104b983838361096e565b6104b9838383604051806020016040528060008152506106e9565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610383565b60006001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610383565b506001600160a01b031660009081526003602052604090205490565b60606001805461028b9061114c565b6001600160a01b0382163314156106705760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610383565b3360008181526005602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516106dd911515815260200190565b60405180910390a35050565b6106f33383610877565b61070f5760405162461bcd60e51b81526004016103839061108c565b61071b84848484610b0e565b50505050565b6000818152600260205260409020546060906001600160a01b03166107a05760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610383565b60006107b760408051602081019091526000815290565b905060008151116107d75760405180602001604052806000815250610802565b806107e184610b41565b6040516020016107f2929190610fbb565b6040516020818303038152906040525b9392505050565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061083e8261050a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166108f05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610383565b60006108fb8361050a565b9050806001600160a01b0316846001600160a01b031614806109365750836001600160a01b031661092b8461030e565b6001600160a01b0316145b8061096657506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166109818261050a565b6001600160a01b0316146109e95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610383565b6001600160a01b038216610a4b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610383565b610a56600082610809565b6001600160a01b0383166000908152600360205260408120805460019290610a7f908490611109565b90915550506001600160a01b0382166000908152600360205260408120805460019290610aad9084906110dd565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610b1984848461096e565b610b2584848484610c5c565b61071b5760405162461bcd60e51b81526004016103839061103a565b606081610b6657506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610b905780610b7a81611187565b9150610b899050600a836110f5565b9150610b6a565b60008167ffffffffffffffff811115610bb957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610be3576020820181803683370190505b5090505b841561096657610bf8600183611109565b9150610c05600a866111a2565b610c109060306110dd565b60f81b818381518110610c3357634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610c55600a866110f5565b9450610be7565b60006001600160a01b0384163b15610d5e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ca0903390899088908890600401610fea565b602060405180830381600087803b158015610cba57600080fd5b505af1925050508015610cea575060408051601f3d908101601f19168201909252610ce791810190610f5b565b60015b610d44573d808015610d18576040519150601f19603f3d011682016040523d82523d6000602084013e610d1d565b606091505b508051610d3c5760405162461bcd60e51b81526004016103839061103a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610966565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610d91578081fd5b61080282610d69565b60008060408385031215610dac578081fd5b610db583610d69565b9150610dc360208401610d69565b90509250929050565b600080600060608486031215610de0578081fd5b610de984610d69565b9250610df760208501610d69565b9150604084013590509250925092565b60008060008060808587031215610e1c578081fd5b610e2585610d69565b9350610e3360208601610d69565b925060408501359150606085013567ffffffffffffffff80821115610e56578283fd5b818701915087601f830112610e69578283fd5b813581811115610e7b57610e7b6111e2565b604051601f8201601f19908116603f01168101908382118183101715610ea357610ea36111e2565b816040528281528a6020848701011115610ebb578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610eee578182fd5b610ef783610d69565b915060208301358015158114610f0b578182fd5b809150509250929050565b60008060408385031215610f28578182fd5b610f3183610d69565b946020939093013593505050565b600060208284031215610f50578081fd5b8135610802816111f8565b600060208284031215610f6c578081fd5b8151610802816111f8565b600060208284031215610f88578081fd5b5035919050565b60008151808452610fa7816020860160208601611120565b601f01601f19169290920160200192915050565b60008351610fcd818460208801611120565b835190830190610fe1818360208801611120565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061101d90830184610f8f565b9695505050505050565b6000602082526108026020830184610f8f565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156110f0576110f06111b6565b500190565b600082611104576111046111cc565b500490565b60008282101561111b5761111b6111b6565b500390565b60005b8381101561113b578181015183820152602001611123565b8381111561071b5750506000910152565b600181811c9082168061116057607f821691505b6020821081141561118157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561119b5761119b6111b6565b5060010190565b6000826111b1576111b16111cc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461120e57600080fd5b5056fea26469706673582212202d938d3b28324cc89e6d2076ba56ed8ae7428805a112a58e80ba9ad3b13c770964736f6c63430008030033", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200138c3803806200138c8339810160408190526200003491620001db565b81516200004990600090602085019062000068565b5080516200005f90600190602084019062000068565b50505062000281565b828054620000769062000245565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013657600080fd5b81516001600160401b03808211156200015357620001536200010e565b604051601f8301601f19908116603f011681019082821181831017156200017e576200017e6200010e565b816040528381526020925086838588010111156200019b57600080fd5b600091505b83821015620001bf5785820183015181830184015290820190620001a0565b83821115620001d15760008385830101525b9695505050505050565b60008060408385031215620001ef57600080fd5b82516001600160401b03808211156200020757600080fd5b620002158683870162000124565b935060208501519150808211156200022c57600080fd5b506200023b8582860162000124565b9150509250929050565b600181811c908216806200025a57607f821691505b6020821081036200027b57634e487b7160e01b600052602260045260246000fd5b50919050565b6110fb80620002916000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610c7f565b610228565b60405190151581526020015b60405180910390f35b61010461027a565b6040516100f39190610cf4565b61012461011f366004610d07565b61030c565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610d3c565b610333565b005b61014f61015f366004610d66565b61044d565b61014f610172366004610d66565b61047e565b610124610185366004610d07565b610499565b61019d610198366004610da2565b6104f9565b6040519081526020016100f3565b61010461057f565b61014f6101c1366004610dbd565b61058e565b61014f6101d4366004610e0f565b61059d565b6101046101e7366004610d07565b6105d5565b6100e76101fa366004610eeb565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461028990610f1e565b80601f01602080910402602001604051908101604052809291908181526020018280546102b590610f1e565b80156103025780601f106102d757610100808354040283529160200191610302565b820191906000526020600020905b8154815290600101906020018083116102e557829003601f168201915b5050505050905090565b600061031782610649565b506000908152600460205260409020546001600160a01b031690565b600061033e82610499565b9050806001600160a01b0316836001600160a01b0316036103b05760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103cc57506103cc81336101fa565b61043e5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016103a7565b61044883836106ab565b505050565b6104573382610719565b6104735760405162461bcd60e51b81526004016103a790610f58565b610448838383610798565b6104488383836040518060200160405280600081525061059d565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103a7565b60006001600160a01b0382166105635760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103a7565b506001600160a01b031660009081526003602052604090205490565b60606001805461028990610f1e565b6105993383836108fc565b5050565b6105a73383610719565b6105c35760405162461bcd60e51b81526004016103a790610f58565b6105cf848484846109ca565b50505050565b60606105e082610649565b60006105f760408051602081019091526000815290565b905060008151116106175760405180602001604052806000815250610642565b80610621846109fd565b604051602001610632929190610fa5565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166106a85760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103a7565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e082610499565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061072583610499565b9050806001600160a01b0316846001600160a01b0316148061076c57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107905750836001600160a01b03166107858461030c565b6001600160a01b0316145b949350505050565b826001600160a01b03166107ab82610499565b6001600160a01b0316146107d15760405162461bcd60e51b81526004016103a790610fd4565b6001600160a01b0382166108335760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103a7565b826001600160a01b031661084682610499565b6001600160a01b03161461086c5760405162461bcd60e51b81526004016103a790610fd4565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03160361095d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103a7565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109d5848484610798565b6109e184848484610a90565b6105cf5760405162461bcd60e51b81526004016103a790611019565b60606000610a0a83610b91565b600101905060008167ffffffffffffffff811115610a2a57610a2a610df9565b6040519080825280601f01601f191660200182016040528015610a54576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a5e57509392505050565b60006001600160a01b0384163b15610b8657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ad490339089908890889060040161106b565b6020604051808303816000875af1925050508015610b0f575060408051601f3d908101601f19168201909252610b0c918101906110a8565b60015b610b6c573d808015610b3d576040519150601f19603f3d011682016040523d82523d6000602084013e610b42565b606091505b508051600003610b645760405162461bcd60e51b81526004016103a790611019565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610790565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610bd05772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610bfc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c1a57662386f26fc10000830492506010015b6305f5e1008310610c32576305f5e100830492506008015b6127108310610c4657612710830492506004015b60648310610c58576064830492506002015b600a83106102745760010192915050565b6001600160e01b0319811681146106a857600080fd5b600060208284031215610c9157600080fd5b813561064281610c69565b60005b83811015610cb7578181015183820152602001610c9f565b838111156105cf5750506000910152565b60008151808452610ce0816020860160208601610c9c565b601f01601f19169290920160200192915050565b6020815260006106426020830184610cc8565b600060208284031215610d1957600080fd5b5035919050565b80356001600160a01b0381168114610d3757600080fd5b919050565b60008060408385031215610d4f57600080fd5b610d5883610d20565b946020939093013593505050565b600080600060608486031215610d7b57600080fd5b610d8484610d20565b9250610d9260208501610d20565b9150604084013590509250925092565b600060208284031215610db457600080fd5b61064282610d20565b60008060408385031215610dd057600080fd5b610dd983610d20565b915060208301358015158114610dee57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e2557600080fd5b610e2e85610d20565b9350610e3c60208601610d20565b925060408501359150606085013567ffffffffffffffff80821115610e6057600080fd5b818701915087601f830112610e7457600080fd5b813581811115610e8657610e86610df9565b604051601f8201601f19908116603f01168101908382118183101715610eae57610eae610df9565b816040528281528a6020848701011115610ec757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610efe57600080fd5b610f0783610d20565b9150610f1560208401610d20565b90509250929050565b600181811c90821680610f3257607f821691505b602082108103610f5257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60008351610fb7818460208801610c9c565b835190830190610fcb818360208801610c9c565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061109e90830184610cc8565b9695505050505050565b6000602082840312156110ba57600080fd5b815161064281610c6956fea2646970667358221220656215cd1c770b1c0ef26b32de6dec1d6fd90e95d8c1190aff80f7b572dca52664736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610c7f565b610228565b60405190151581526020015b60405180910390f35b61010461027a565b6040516100f39190610cf4565b61012461011f366004610d07565b61030c565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610d3c565b610333565b005b61014f61015f366004610d66565b61044d565b61014f610172366004610d66565b61047e565b610124610185366004610d07565b610499565b61019d610198366004610da2565b6104f9565b6040519081526020016100f3565b61010461057f565b61014f6101c1366004610dbd565b61058e565b61014f6101d4366004610e0f565b61059d565b6101046101e7366004610d07565b6105d5565b6100e76101fa366004610eeb565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461028990610f1e565b80601f01602080910402602001604051908101604052809291908181526020018280546102b590610f1e565b80156103025780601f106102d757610100808354040283529160200191610302565b820191906000526020600020905b8154815290600101906020018083116102e557829003601f168201915b5050505050905090565b600061031782610649565b506000908152600460205260409020546001600160a01b031690565b600061033e82610499565b9050806001600160a01b0316836001600160a01b0316036103b05760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103cc57506103cc81336101fa565b61043e5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016103a7565b61044883836106ab565b505050565b6104573382610719565b6104735760405162461bcd60e51b81526004016103a790610f58565b610448838383610798565b6104488383836040518060200160405280600081525061059d565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103a7565b60006001600160a01b0382166105635760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103a7565b506001600160a01b031660009081526003602052604090205490565b60606001805461028990610f1e565b6105993383836108fc565b5050565b6105a73383610719565b6105c35760405162461bcd60e51b81526004016103a790610f58565b6105cf848484846109ca565b50505050565b60606105e082610649565b60006105f760408051602081019091526000815290565b905060008151116106175760405180602001604052806000815250610642565b80610621846109fd565b604051602001610632929190610fa5565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166106a85760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103a7565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e082610499565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061072583610499565b9050806001600160a01b0316846001600160a01b0316148061076c57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107905750836001600160a01b03166107858461030c565b6001600160a01b0316145b949350505050565b826001600160a01b03166107ab82610499565b6001600160a01b0316146107d15760405162461bcd60e51b81526004016103a790610fd4565b6001600160a01b0382166108335760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103a7565b826001600160a01b031661084682610499565b6001600160a01b03161461086c5760405162461bcd60e51b81526004016103a790610fd4565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03160361095d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103a7565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109d5848484610798565b6109e184848484610a90565b6105cf5760405162461bcd60e51b81526004016103a790611019565b60606000610a0a83610b91565b600101905060008167ffffffffffffffff811115610a2a57610a2a610df9565b6040519080825280601f01601f191660200182016040528015610a54576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a5e57509392505050565b60006001600160a01b0384163b15610b8657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ad490339089908890889060040161106b565b6020604051808303816000875af1925050508015610b0f575060408051601f3d908101601f19168201909252610b0c918101906110a8565b60015b610b6c573d808015610b3d576040519150601f19603f3d011682016040523d82523d6000602084013e610b42565b606091505b508051600003610b645760405162461bcd60e51b81526004016103a790611019565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610790565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610bd05772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610bfc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c1a57662386f26fc10000830492506010015b6305f5e1008310610c32576305f5e100830492506008015b6127108310610c4657612710830492506004015b60648310610c58576064830492506002015b600a83106102745760010192915050565b6001600160e01b0319811681146106a857600080fd5b600060208284031215610c9157600080fd5b813561064281610c69565b60005b83811015610cb7578181015183820152602001610c9f565b838111156105cf5750506000910152565b60008151808452610ce0816020860160208601610c9c565b601f01601f19169290920160200192915050565b6020815260006106426020830184610cc8565b600060208284031215610d1957600080fd5b5035919050565b80356001600160a01b0381168114610d3757600080fd5b919050565b60008060408385031215610d4f57600080fd5b610d5883610d20565b946020939093013593505050565b600080600060608486031215610d7b57600080fd5b610d8484610d20565b9250610d9260208501610d20565b9150604084013590509250925092565b600060208284031215610db457600080fd5b61064282610d20565b60008060408385031215610dd057600080fd5b610dd983610d20565b915060208301358015158114610dee57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e2557600080fd5b610e2e85610d20565b9350610e3c60208601610d20565b925060408501359150606085013567ffffffffffffffff80821115610e6057600080fd5b818701915087601f830112610e7457600080fd5b813581811115610e8657610e86610df9565b604051601f8201601f19908116603f01168101908382118183101715610eae57610eae610df9565b816040528281528a6020848701011115610ec757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610efe57600080fd5b610f0783610d20565b9150610f1560208401610d20565b90509250929050565b600181811c90821680610f3257607f821691505b602082108103610f5257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60008351610fb7818460208801610c9c565b835190830190610fcb818360208801610c9c565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061109e90830184610cc8565b9695505050505050565b6000602082840312156110ba57600080fd5b815161064281610c6956fea2646970667358221220656215cd1c770b1c0ef26b32de6dec1d6fd90e95d8c1190aff80f7b572dca52664736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC721Burnable.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC721Burnable.json index ec50df5..e115eb4 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC721Burnable.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC721Burnable.json @@ -245,7 +245,7 @@ }, { "internalType": "bytes", - "name": "_data", + "name": "data", "type": "bytes" } ], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC721Enumerable.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC721Enumerable.json index d3b0ea6..364360e 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC721Enumerable.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC721Enumerable.json @@ -232,7 +232,7 @@ }, { "internalType": "bytes", - "name": "_data", + "name": "data", "type": "bytes" } ], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC721Holder.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC721Holder.json index 9dfac98..1e642ea 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC721Holder.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC721Holder.json @@ -38,8 +38,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506101a8806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063150b7a0214610030575b600080fd5b61004e61003e366004610087565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200160405180910390f35b80356001600160a01b038116811461008257600080fd5b919050565b6000806000806080858703121561009c578384fd5b6100a58561006b565b93506100b36020860161006b565b925060408501359150606085013567ffffffffffffffff808211156100d6578283fd5b818701915087601f8301126100e9578283fd5b8135818111156100fb576100fb61015c565b604051601f8201601f19908116603f011681019083821181831017156101235761012361015c565b816040528281528a602084870101111561013b578586fd5b82602086016020830137918201602001949094529598949750929550505050565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220dc27e8fed018fdfacad30c665dc1bdf024b6ef66c2c22fbce4a02747ba89990064736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063150b7a0214610030575b600080fd5b61004e61003e366004610087565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200160405180910390f35b80356001600160a01b038116811461008257600080fd5b919050565b6000806000806080858703121561009c578384fd5b6100a58561006b565b93506100b36020860161006b565b925060408501359150606085013567ffffffffffffffff808211156100d6578283fd5b818701915087601f8301126100e9578283fd5b8135818111156100fb576100fb61015c565b604051601f8201601f19908116603f011681019083821181831017156101235761012361015c565b816040528281528a602084870101111561013b578586fd5b82602086016020830137918201602001949094529598949750929550505050565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220dc27e8fed018fdfacad30c665dc1bdf024b6ef66c2c22fbce4a02747ba89990064736f6c63430008030033", + "bytecode": "0x608060405234801561001057600080fd5b506101af806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063150b7a0214610030575b600080fd5b61004e61003e36600461009d565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200160405180910390f35b80356001600160a01b038116811461008257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156100b357600080fd5b6100bc8561006b565b93506100ca6020860161006b565b925060408501359150606085013567ffffffffffffffff808211156100ee57600080fd5b818701915087601f83011261010257600080fd5b81358181111561011457610114610087565b604051601f8201601f19908116603f0116810190838211818310171561013c5761013c610087565b816040528281528a602084870101111561015557600080fd5b8260208601602083013760006020848301015280955050505050509295919450925056fea2646970667358221220937e7e7aca3ed2e03266b2dc995300bf04e0f158dc015502d750404e0329305d64736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063150b7a0214610030575b600080fd5b61004e61003e36600461009d565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200160405180910390f35b80356001600160a01b038116811461008257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156100b357600080fd5b6100bc8561006b565b93506100ca6020860161006b565b925060408501359150606085013567ffffffffffffffff808211156100ee57600080fd5b818701915087601f83011261010257600080fd5b81358181111561011457610114610087565b604051601f8201601f19908116603f0116810190838211818310171561013c5761013c610087565b816040528281528a602084870101111561015557600080fd5b8260208601602083013760006020848301015280955050505050509295919450925056fea2646970667358221220937e7e7aca3ed2e03266b2dc995300bf04e0f158dc015502d750404e0329305d64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC721Pausable.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC721Pausable.json index 8ffc703..566f11c 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC721Pausable.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC721Pausable.json @@ -271,7 +271,7 @@ }, { "internalType": "bytes", - "name": "_data", + "name": "data", "type": "bytes" } ], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC721PresetMinterPauserAutoId.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC721PresetMinterPauserAutoId.json index 13e13ab..38e48e5 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC721PresetMinterPauserAutoId.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC721PresetMinterPauserAutoId.json @@ -579,7 +579,7 @@ }, { "internalType": "bytes", - "name": "_data", + "name": "data", "type": "bytes" } ], @@ -744,8 +744,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162002b1438038062002b148339810160408190526200003491620003b3565b8251839083906200004d9060029060208501906200025a565b508051620000639060039060208401906200025a565b5050600c805460ff191690555080516200008590600e9060208401906200025a565b50620000946000335b620000f5565b620000c07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200008e565b620000ec7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336200008e565b50505062000493565b6200010c82826200013860201b62000e901760201c565b60008281526001602090815260409091206200013391839062000e9e62000148821b17901c565b505050565b62000144828262000168565b5050565b60006200015f836001600160a01b03841662000208565b90505b92915050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000144576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001c43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000818152600183016020526040812054620002515750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000162565b50600062000162565b828054620002689062000440565b90600052602060002090601f0160209004810192826200028c5760008555620002d7565b82601f10620002a757805160ff1916838001178555620002d7565b82800160010185558215620002d7579182015b82811115620002d7578251825591602001919060010190620002ba565b50620002e5929150620002e9565b5090565b5b80821115620002e55760008155600101620002ea565b600082601f83011262000311578081fd5b81516001600160401b03808211156200032e576200032e6200047d565b604051601f8301601f19908116603f011681019082821181831017156200035957620003596200047d565b8160405283815260209250868385880101111562000375578485fd5b8491505b8382101562000398578582018301518183018401529082019062000379565b83821115620003a957848385830101525b9695505050505050565b600080600060608486031215620003c8578283fd5b83516001600160401b0380821115620003df578485fd5b620003ed8783880162000300565b9450602086015191508082111562000403578384fd5b620004118783880162000300565b9350604086015191508082111562000427578283fd5b50620004368682870162000300565b9150509250925092565b600181811c908216806200045557607f821691505b602082108114156200047757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61267180620004a36000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80636352211e1161010f578063a22cb465116100a2578063d539139311610071578063d5391393146103f7578063d547741f1461041e578063e63ab1e914610431578063e985e9c514610458576101e5565b8063a22cb465146103ab578063b88d4fde146103be578063c87b56dd146103d1578063ca15c873146103e4576101e5565b80639010d07c116100de5780639010d07c1461037557806391d148541461038857806395d89b411461039b578063a217fddf146103a3576101e5565b80636352211e146103345780636a6278421461034757806370a082311461035a5780638456cb591461036d576101e5565b80632f2ff15d1161018757806342842e0e1161015657806342842e0e146102f057806342966c68146103035780634f6ccce7146103165780635c975abb14610329576101e5565b80632f2ff15d146102af5780632f745c59146102c257806336568abe146102d55780633f4ba83a146102e8576101e5565b8063095ea7b3116101c3578063095ea7b31461025257806318160ddd1461026757806323b872dd14610279578063248a9ca31461028c576101e5565b806301ffc9a7146101ea57806306fdde0314610212578063081812fc14610227575b600080fd5b6101fd6101f83660046122d9565b610494565b60405190151581526020015b60405180910390f35b61021a6104a7565b604051610209919061241e565b61023a61023536600461227e565b610539565b6040516001600160a01b039091168152602001610209565b610265610260366004612255565b6105d3565b005b600a545b604051908152602001610209565b61026561028736600461210b565b6106e9565b61026b61029a36600461227e565b60009081526020819052604090206001015490565b6102656102bd366004612296565b61071b565b61026b6102d0366004612255565b61073d565b6102656102e3366004612296565b6107d6565b6102656107f8565b6102656102fe36600461210b565b6108a0565b61026561031136600461227e565b6108bb565b61026b61032436600461227e565b610935565b600c5460ff166101fd565b61023a61034236600461227e565b6109d6565b6102656103553660046120bf565b610a4d565b61026b6103683660046120bf565b610b09565b610265610b90565b61023a6103833660046122b8565b610c34565b6101fd610396366004612296565b610c53565b61021a610c7c565b61026b600081565b6102656103b936600461221b565b610c8b565b6102656103cc366004612146565b610d5d565b61021a6103df36600461227e565b610d95565b61026b6103f236600461227e565b610e6f565b61026b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61026561042c366004612296565b610e86565b61026b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101fd6104663660046120d9565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b600061049f82610eb3565b90505b919050565b6060600280546104b690612579565b80601f01602080910402602001604051908101604052809291908181526020018280546104e290612579565b801561052f5780601f106105045761010080835404028352916020019161052f565b820191906000526020600020905b81548152906001019060200180831161051257829003601f168201915b5050505050905090565b6000818152600460205260408120546001600160a01b03166105b75760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600660205260409020546001600160a01b031690565b60006105de826109d6565b9050806001600160a01b0316836001600160a01b0316141561064c5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016105ae565b336001600160a01b038216148061066857506106688133610466565b6106da5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016105ae565b6106e48383610ed8565b505050565b6106f4335b82610f46565b6107105760405162461bcd60e51b81526004016105ae90612483565b6106e483838361103d565b61072582826111e8565b60008281526001602052604090206106e49082610e9e565b600061074883610b09565b82106107aa5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016105ae565b506001600160a01b03821660009081526008602090815260408083208484529091529020545b92915050565b6107e0828261120f565b60008281526001602052604090206106e49082611289565b6108227f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610396565b610896576040805162461bcd60e51b81526020600482015260248101919091527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f20756e706175736560648201526084016105ae565b61089e61129e565b565b6106e483838360405180602001604052806000815250610d5d565b6108c4336106ee565b6109295760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201526f1b995c881b9bdc88185c1c1c9bdd995960821b60648201526084016105ae565b61093281611331565b50565b6000610940600a5490565b82106109a35760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016105ae565b600a82815481106109c457634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6000818152600460205260408120546001600160a01b03168061049f5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b60648201526084016105ae565b610a777f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610396565b610ae95760405162461bcd60e51b815260206004820152603d60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d7573742068617665206d696e74657220726f6c6520746f206d696e7400000060648201526084016105ae565b610afb81610af6600d5490565b6113d8565b610932600d80546001019055565b60006001600160a01b038216610b745760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016105ae565b506001600160a01b031660009081526005602052604090205490565b610bba7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610396565b610c2c5760405162461bcd60e51b815260206004820152603e60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f207061757365000060648201526084016105ae565b61089e611526565b6000828152600160205260408120610c4c90836115a1565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600380546104b690612579565b6001600160a01b038216331415610ce45760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105ae565b3360008181526007602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d51911515815260200190565b60405180910390a35050565b610d673383610f46565b610d835760405162461bcd60e51b81526004016105ae90612483565b610d8f848484846115ad565b50505050565b6000818152600460205260409020546060906001600160a01b0316610e145760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016105ae565b6000610e1e6115e0565b90506000815111610e3e5760405180602001604052806000815250610c4c565b80610e48846115ef565b604051602001610e5992919061233d565b6040516020818303038152906040529392505050565b600081815260016020526040812061049f9061170a565b6107e08282611714565b610e9a828261173a565b5050565b6000610c4c836001600160a01b0384166117be565b60006001600160e01b0319821663780e9d6360e01b148061049f575061049f8261180d565b600081815260066020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610f0d826109d6565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600460205260408120546001600160a01b0316610fbf5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016105ae565b6000610fca836109d6565b9050806001600160a01b0316846001600160a01b031614806110055750836001600160a01b0316610ffa84610539565b6001600160a01b0316145b8061103557506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611050826109d6565b6001600160a01b0316146110b85760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b60648201526084016105ae565b6001600160a01b03821661111a5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105ae565b61112583838361184d565b611130600082610ed8565b6001600160a01b038316600090815260056020526040812080546001929061115990849061251f565b90915550506001600160a01b03821660009081526005602052604081208054600192906111879084906124d4565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60008281526020819052604090206001015461120581335b611858565b6106e4838361173a565b6001600160a01b038116331461127f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105ae565b610e9a82826118bc565b6000610c4c836001600160a01b038416611921565b600c5460ff166112e75760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105ae565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600061133c826109d6565b905061134a8160008461184d565b611355600083610ed8565b6001600160a01b038116600090815260056020526040812080546001929061137e90849061251f565b909155505060008281526004602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b03821661142e5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105ae565b6000818152600460205260409020546001600160a01b0316156114935760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105ae565b61149f6000838361184d565b6001600160a01b03821660009081526005602052604081208054600192906114c89084906124d4565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600c5460ff161561156c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105ae565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113143390565b6000610c4c8383611a3e565b6115b884848461103d565b6115c484848484611a76565b610d8f5760405162461bcd60e51b81526004016105ae90612431565b6060600e80546104b690612579565b60608161161457506040805180820190915260018152600360fc1b60208201526104a2565b8160005b811561163e5780611628816125b4565b91506116379050600a836124ec565b9150611618565b60008167ffffffffffffffff81111561166757634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611691576020820181803683370190505b5090505b8415611035576116a660018361251f565b91506116b3600a866125cf565b6116be9060306124d4565b60f81b8183815181106116e157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611703600a866124ec565b9450611695565b600061049f825490565b6000828152602081905260409020600101546117308133611200565b6106e483836118bc565b6117448282610c53565b610e9a576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561177a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000818152600183016020526040812054611805575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107d0565b5060006107d0565b60006001600160e01b031982166380ac58cd60e01b148061183e57506001600160e01b03198216635b5e139f60e01b145b8061049f575061049f82611b83565b6106e4838383611ba8565b6118628282610c53565b610e9a5761187a816001600160a01b03166014611c1a565b611885836020611c1a565b60405160200161189692919061236c565b60408051601f198184030181529082905262461bcd60e51b82526105ae9160040161241e565b6118c68282610c53565b15610e9a576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008181526001830160205260408120548015611a3457600061194560018361251f565b85549091506000906119599060019061251f565b90508181146119da57600086600001828154811061198757634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106119b857634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806119f957634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107d0565b60009150506107d0565b6000826000018281548110611a6357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60006001600160a01b0384163b15611b7857604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611aba9033908990889088906004016123e1565b602060405180830381600087803b158015611ad457600080fd5b505af1925050508015611b04575060408051601f3d908101601f19168201909252611b01918101906122f5565b60015b611b5e573d808015611b32576040519150601f19603f3d011682016040523d82523d6000602084013e611b37565b606091505b508051611b565760405162461bcd60e51b81526004016105ae90612431565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611035565b506001949350505050565b60006001600160e01b03198216635a05180f60e01b148061049f575061049f82611dfc565b611bb3838383611e31565b600c5460ff16156106e45760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201526a1a1a5b19481c185d5cd95960aa1b60648201526084016105ae565b60606000611c29836002612500565b611c349060026124d4565b67ffffffffffffffff811115611c5a57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c84576020820181803683370190505b509050600360fc1b81600081518110611cad57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611cea57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611d0e846002612500565b611d199060016124d4565b90505b6001811115611dad576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d5b57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110611d7f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93611da681612562565b9050611d1c565b508315610c4c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ae565b60006001600160e01b03198216637965db0b60e01b148061049f57506301ffc9a760e01b6001600160e01b031983161461049f565b6001600160a01b038316611e8c57611e8781600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b611eaf565b816001600160a01b0316836001600160a01b031614611eaf57611eaf8382611eee565b6001600160a01b038216611ecb57611ec681611f8b565b6106e4565b826001600160a01b0316826001600160a01b0316146106e4576106e48282612064565b60006001611efb84610b09565b611f05919061251f565b600083815260096020526040902054909150808214611f58576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a54600090611f9d9060019061251f565b6000838152600b6020526040812054600a8054939450909284908110611fd357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905080600a838154811061200257634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a80548061204857634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b600061206f83610b09565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b80356001600160a01b03811681146104a257600080fd5b6000602082840312156120d0578081fd5b610c4c826120a8565b600080604083850312156120eb578081fd5b6120f4836120a8565b9150612102602084016120a8565b90509250929050565b60008060006060848603121561211f578081fd5b612128846120a8565b9250612136602085016120a8565b9150604084013590509250925092565b6000806000806080858703121561215b578081fd5b612164856120a8565b9350612172602086016120a8565b925060408501359150606085013567ffffffffffffffff80821115612195578283fd5b818701915087601f8301126121a8578283fd5b8135818111156121ba576121ba61260f565b604051601f8201601f19908116603f011681019083821181831017156121e2576121e261260f565b816040528281528a60208487010111156121fa578586fd5b82602086016020830137918201602001949094529598949750929550505050565b6000806040838503121561222d578182fd5b612236836120a8565b91506020830135801515811461224a578182fd5b809150509250929050565b60008060408385031215612267578182fd5b612270836120a8565b946020939093013593505050565b60006020828403121561228f578081fd5b5035919050565b600080604083850312156122a8578182fd5b82359150612102602084016120a8565b600080604083850312156122ca578182fd5b50508035926020909101359150565b6000602082840312156122ea578081fd5b8135610c4c81612625565b600060208284031215612306578081fd5b8151610c4c81612625565b60008151808452612329816020860160208601612536565b601f01601f19169290920160200192915050565b6000835161234f818460208801612536565b835190830190612363818360208801612536565b01949350505050565b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516123a4816017850160208801612536565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516123d5816028840160208801612536565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061241490830184612311565b9695505050505050565b600060208252610c4c6020830184612311565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156124e7576124e76125e3565b500190565b6000826124fb576124fb6125f9565b500490565b600081600019048311821515161561251a5761251a6125e3565b500290565b600082821015612531576125316125e3565b500390565b60005b83811015612551578181015183820152602001612539565b83811115610d8f5750506000910152565b600081612571576125716125e3565b506000190190565b600181811c9082168061258d57607f821691505b602082108114156125ae57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156125c8576125c86125e3565b5060010190565b6000826125de576125de6125f9565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461093257600080fdfea26469706673582212207c3140b8543572afa84e5729a8fa58be87a95dc18779058077802a524585368b64736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80636352211e1161010f578063a22cb465116100a2578063d539139311610071578063d5391393146103f7578063d547741f1461041e578063e63ab1e914610431578063e985e9c514610458576101e5565b8063a22cb465146103ab578063b88d4fde146103be578063c87b56dd146103d1578063ca15c873146103e4576101e5565b80639010d07c116100de5780639010d07c1461037557806391d148541461038857806395d89b411461039b578063a217fddf146103a3576101e5565b80636352211e146103345780636a6278421461034757806370a082311461035a5780638456cb591461036d576101e5565b80632f2ff15d1161018757806342842e0e1161015657806342842e0e146102f057806342966c68146103035780634f6ccce7146103165780635c975abb14610329576101e5565b80632f2ff15d146102af5780632f745c59146102c257806336568abe146102d55780633f4ba83a146102e8576101e5565b8063095ea7b3116101c3578063095ea7b31461025257806318160ddd1461026757806323b872dd14610279578063248a9ca31461028c576101e5565b806301ffc9a7146101ea57806306fdde0314610212578063081812fc14610227575b600080fd5b6101fd6101f83660046122d9565b610494565b60405190151581526020015b60405180910390f35b61021a6104a7565b604051610209919061241e565b61023a61023536600461227e565b610539565b6040516001600160a01b039091168152602001610209565b610265610260366004612255565b6105d3565b005b600a545b604051908152602001610209565b61026561028736600461210b565b6106e9565b61026b61029a36600461227e565b60009081526020819052604090206001015490565b6102656102bd366004612296565b61071b565b61026b6102d0366004612255565b61073d565b6102656102e3366004612296565b6107d6565b6102656107f8565b6102656102fe36600461210b565b6108a0565b61026561031136600461227e565b6108bb565b61026b61032436600461227e565b610935565b600c5460ff166101fd565b61023a61034236600461227e565b6109d6565b6102656103553660046120bf565b610a4d565b61026b6103683660046120bf565b610b09565b610265610b90565b61023a6103833660046122b8565b610c34565b6101fd610396366004612296565b610c53565b61021a610c7c565b61026b600081565b6102656103b936600461221b565b610c8b565b6102656103cc366004612146565b610d5d565b61021a6103df36600461227e565b610d95565b61026b6103f236600461227e565b610e6f565b61026b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61026561042c366004612296565b610e86565b61026b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101fd6104663660046120d9565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b600061049f82610eb3565b90505b919050565b6060600280546104b690612579565b80601f01602080910402602001604051908101604052809291908181526020018280546104e290612579565b801561052f5780601f106105045761010080835404028352916020019161052f565b820191906000526020600020905b81548152906001019060200180831161051257829003601f168201915b5050505050905090565b6000818152600460205260408120546001600160a01b03166105b75760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600660205260409020546001600160a01b031690565b60006105de826109d6565b9050806001600160a01b0316836001600160a01b0316141561064c5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016105ae565b336001600160a01b038216148061066857506106688133610466565b6106da5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016105ae565b6106e48383610ed8565b505050565b6106f4335b82610f46565b6107105760405162461bcd60e51b81526004016105ae90612483565b6106e483838361103d565b61072582826111e8565b60008281526001602052604090206106e49082610e9e565b600061074883610b09565b82106107aa5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016105ae565b506001600160a01b03821660009081526008602090815260408083208484529091529020545b92915050565b6107e0828261120f565b60008281526001602052604090206106e49082611289565b6108227f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610396565b610896576040805162461bcd60e51b81526020600482015260248101919091527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f20756e706175736560648201526084016105ae565b61089e61129e565b565b6106e483838360405180602001604052806000815250610d5d565b6108c4336106ee565b6109295760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201526f1b995c881b9bdc88185c1c1c9bdd995960821b60648201526084016105ae565b61093281611331565b50565b6000610940600a5490565b82106109a35760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016105ae565b600a82815481106109c457634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6000818152600460205260408120546001600160a01b03168061049f5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b60648201526084016105ae565b610a777f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610396565b610ae95760405162461bcd60e51b815260206004820152603d60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d7573742068617665206d696e74657220726f6c6520746f206d696e7400000060648201526084016105ae565b610afb81610af6600d5490565b6113d8565b610932600d80546001019055565b60006001600160a01b038216610b745760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016105ae565b506001600160a01b031660009081526005602052604090205490565b610bba7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610396565b610c2c5760405162461bcd60e51b815260206004820152603e60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f207061757365000060648201526084016105ae565b61089e611526565b6000828152600160205260408120610c4c90836115a1565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600380546104b690612579565b6001600160a01b038216331415610ce45760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105ae565b3360008181526007602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d51911515815260200190565b60405180910390a35050565b610d673383610f46565b610d835760405162461bcd60e51b81526004016105ae90612483565b610d8f848484846115ad565b50505050565b6000818152600460205260409020546060906001600160a01b0316610e145760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016105ae565b6000610e1e6115e0565b90506000815111610e3e5760405180602001604052806000815250610c4c565b80610e48846115ef565b604051602001610e5992919061233d565b6040516020818303038152906040529392505050565b600081815260016020526040812061049f9061170a565b6107e08282611714565b610e9a828261173a565b5050565b6000610c4c836001600160a01b0384166117be565b60006001600160e01b0319821663780e9d6360e01b148061049f575061049f8261180d565b600081815260066020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610f0d826109d6565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600460205260408120546001600160a01b0316610fbf5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016105ae565b6000610fca836109d6565b9050806001600160a01b0316846001600160a01b031614806110055750836001600160a01b0316610ffa84610539565b6001600160a01b0316145b8061103557506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611050826109d6565b6001600160a01b0316146110b85760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b60648201526084016105ae565b6001600160a01b03821661111a5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105ae565b61112583838361184d565b611130600082610ed8565b6001600160a01b038316600090815260056020526040812080546001929061115990849061251f565b90915550506001600160a01b03821660009081526005602052604081208054600192906111879084906124d4565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60008281526020819052604090206001015461120581335b611858565b6106e4838361173a565b6001600160a01b038116331461127f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105ae565b610e9a82826118bc565b6000610c4c836001600160a01b038416611921565b600c5460ff166112e75760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105ae565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600061133c826109d6565b905061134a8160008461184d565b611355600083610ed8565b6001600160a01b038116600090815260056020526040812080546001929061137e90849061251f565b909155505060008281526004602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b03821661142e5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105ae565b6000818152600460205260409020546001600160a01b0316156114935760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105ae565b61149f6000838361184d565b6001600160a01b03821660009081526005602052604081208054600192906114c89084906124d4565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600c5460ff161561156c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105ae565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113143390565b6000610c4c8383611a3e565b6115b884848461103d565b6115c484848484611a76565b610d8f5760405162461bcd60e51b81526004016105ae90612431565b6060600e80546104b690612579565b60608161161457506040805180820190915260018152600360fc1b60208201526104a2565b8160005b811561163e5780611628816125b4565b91506116379050600a836124ec565b9150611618565b60008167ffffffffffffffff81111561166757634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611691576020820181803683370190505b5090505b8415611035576116a660018361251f565b91506116b3600a866125cf565b6116be9060306124d4565b60f81b8183815181106116e157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611703600a866124ec565b9450611695565b600061049f825490565b6000828152602081905260409020600101546117308133611200565b6106e483836118bc565b6117448282610c53565b610e9a576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561177a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000818152600183016020526040812054611805575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107d0565b5060006107d0565b60006001600160e01b031982166380ac58cd60e01b148061183e57506001600160e01b03198216635b5e139f60e01b145b8061049f575061049f82611b83565b6106e4838383611ba8565b6118628282610c53565b610e9a5761187a816001600160a01b03166014611c1a565b611885836020611c1a565b60405160200161189692919061236c565b60408051601f198184030181529082905262461bcd60e51b82526105ae9160040161241e565b6118c68282610c53565b15610e9a576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008181526001830160205260408120548015611a3457600061194560018361251f565b85549091506000906119599060019061251f565b90508181146119da57600086600001828154811061198757634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106119b857634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806119f957634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107d0565b60009150506107d0565b6000826000018281548110611a6357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60006001600160a01b0384163b15611b7857604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611aba9033908990889088906004016123e1565b602060405180830381600087803b158015611ad457600080fd5b505af1925050508015611b04575060408051601f3d908101601f19168201909252611b01918101906122f5565b60015b611b5e573d808015611b32576040519150601f19603f3d011682016040523d82523d6000602084013e611b37565b606091505b508051611b565760405162461bcd60e51b81526004016105ae90612431565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611035565b506001949350505050565b60006001600160e01b03198216635a05180f60e01b148061049f575061049f82611dfc565b611bb3838383611e31565b600c5460ff16156106e45760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201526a1a1a5b19481c185d5cd95960aa1b60648201526084016105ae565b60606000611c29836002612500565b611c349060026124d4565b67ffffffffffffffff811115611c5a57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c84576020820181803683370190505b509050600360fc1b81600081518110611cad57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611cea57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611d0e846002612500565b611d199060016124d4565b90505b6001811115611dad576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d5b57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110611d7f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93611da681612562565b9050611d1c565b508315610c4c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ae565b60006001600160e01b03198216637965db0b60e01b148061049f57506301ffc9a760e01b6001600160e01b031983161461049f565b6001600160a01b038316611e8c57611e8781600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b611eaf565b816001600160a01b0316836001600160a01b031614611eaf57611eaf8382611eee565b6001600160a01b038216611ecb57611ec681611f8b565b6106e4565b826001600160a01b0316826001600160a01b0316146106e4576106e48282612064565b60006001611efb84610b09565b611f05919061251f565b600083815260096020526040902054909150808214611f58576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a54600090611f9d9060019061251f565b6000838152600b6020526040812054600a8054939450909284908110611fd357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905080600a838154811061200257634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a80548061204857634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b600061206f83610b09565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b80356001600160a01b03811681146104a257600080fd5b6000602082840312156120d0578081fd5b610c4c826120a8565b600080604083850312156120eb578081fd5b6120f4836120a8565b9150612102602084016120a8565b90509250929050565b60008060006060848603121561211f578081fd5b612128846120a8565b9250612136602085016120a8565b9150604084013590509250925092565b6000806000806080858703121561215b578081fd5b612164856120a8565b9350612172602086016120a8565b925060408501359150606085013567ffffffffffffffff80821115612195578283fd5b818701915087601f8301126121a8578283fd5b8135818111156121ba576121ba61260f565b604051601f8201601f19908116603f011681019083821181831017156121e2576121e261260f565b816040528281528a60208487010111156121fa578586fd5b82602086016020830137918201602001949094529598949750929550505050565b6000806040838503121561222d578182fd5b612236836120a8565b91506020830135801515811461224a578182fd5b809150509250929050565b60008060408385031215612267578182fd5b612270836120a8565b946020939093013593505050565b60006020828403121561228f578081fd5b5035919050565b600080604083850312156122a8578182fd5b82359150612102602084016120a8565b600080604083850312156122ca578182fd5b50508035926020909101359150565b6000602082840312156122ea578081fd5b8135610c4c81612625565b600060208284031215612306578081fd5b8151610c4c81612625565b60008151808452612329816020860160208601612536565b601f01601f19169290920160200192915050565b6000835161234f818460208801612536565b835190830190612363818360208801612536565b01949350505050565b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516123a4816017850160208801612536565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516123d5816028840160208801612536565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061241490830184612311565b9695505050505050565b600060208252610c4c6020830184612311565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156124e7576124e76125e3565b500190565b6000826124fb576124fb6125f9565b500490565b600081600019048311821515161561251a5761251a6125e3565b500290565b600082821015612531576125316125e3565b500390565b60005b83811015612551578181015183820152602001612539565b83811115610d8f5750506000910152565b600081612571576125716125e3565b506000190190565b600181811c9082168061258d57607f821691505b602082108114156125ae57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156125c8576125c86125e3565b5060010190565b6000826125de576125de6125f9565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461093257600080fdfea26469706673582212207c3140b8543572afa84e5729a8fa58be87a95dc18779058077802a524585368b64736f6c63430008030033", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162002a0738038062002a078339810160408190526200003491620003cc565b8251839083906200004d90600290602085019062000259565b5080516200006390600390602084019062000259565b5050600c805460ff191690555080516200008590600e90602084019062000259565b5062000093600033620000f4565b620000bf7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000f4565b620000eb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000f4565b50505062000499565b62000100828262000104565b5050565b6200011b82826200014760201b62000cec1760201c565b60008281526001602090815260409091206200014291839062000d70620001e7821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000100576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001a33390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001fe836001600160a01b03841662000207565b90505b92915050565b6000818152600183016020526040812054620002505750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000201565b50600062000201565b82805462000267906200045d565b90600052602060002090601f0160209004810192826200028b5760008555620002d6565b82601f10620002a657805160ff1916838001178555620002d6565b82800160010185558215620002d6579182015b82811115620002d6578251825591602001919060010190620002b9565b50620002e4929150620002e8565b5090565b5b80821115620002e45760008155600101620002e9565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200032757600080fd5b81516001600160401b0380821115620003445762000344620002ff565b604051601f8301601f19908116603f011681019082821181831017156200036f576200036f620002ff565b816040528381526020925086838588010111156200038c57600080fd5b600091505b83821015620003b0578582018301518183018401529082019062000391565b83821115620003c25760008385830101525b9695505050505050565b600080600060608486031215620003e257600080fd5b83516001600160401b0380821115620003fa57600080fd5b620004088783880162000315565b945060208601519150808211156200041f57600080fd5b6200042d8783880162000315565b935060408601519150808211156200044457600080fd5b50620004538682870162000315565b9150509250925092565b600181811c908216806200047257607f821691505b6020821081036200049357634e487b7160e01b600052602260045260246000fd5b50919050565b61255e80620004a96000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80636352211e1161010f578063a22cb465116100a2578063d539139311610071578063d5391393146103f7578063d547741f1461041e578063e63ab1e914610431578063e985e9c51461045857600080fd5b8063a22cb465146103ab578063b88d4fde146103be578063c87b56dd146103d1578063ca15c873146103e457600080fd5b80639010d07c116100de5780639010d07c1461037557806391d148541461038857806395d89b411461039b578063a217fddf146103a357600080fd5b80636352211e146103345780636a6278421461034757806370a082311461035a5780638456cb591461036d57600080fd5b80632f2ff15d1161018757806342842e0e1161015657806342842e0e146102f057806342966c68146103035780634f6ccce7146103165780635c975abb1461032957600080fd5b80632f2ff15d146102af5780632f745c59146102c257806336568abe146102d55780633f4ba83a146102e857600080fd5b8063095ea7b3116101c3578063095ea7b31461025257806318160ddd1461026757806323b872dd14610279578063248a9ca31461028c57600080fd5b806301ffc9a7146101ea57806306fdde0314610212578063081812fc14610227575b600080fd5b6101fd6101f8366004611f81565b610494565b60405190151581526020015b60405180910390f35b61021a6104a5565b6040516102099190611ff6565b61023a610235366004612009565b610537565b6040516001600160a01b039091168152602001610209565b61026561026036600461203e565b61055e565b005b600a545b604051908152602001610209565b610265610287366004612068565b610678565b61026b61029a366004612009565b60009081526020819052604090206001015490565b6102656102bd3660046120a4565b6106aa565b61026b6102d036600461203e565b6106cf565b6102656102e33660046120a4565b610765565b6102656107e3565b6102656102fe366004612068565b61088b565b610265610311366004612009565b6108a6565b61026b610324366004612009565b6108d7565b600c5460ff166101fd565b61023a610342366004612009565b61096a565b6102656103553660046120d0565b6109ca565b61026b6103683660046120d0565b610a86565b610265610b0c565b61023a6103833660046120eb565b610bb0565b6101fd6103963660046120a4565b610bcf565b61021a610bf8565b61026b600081565b6102656103b936600461210d565b610c07565b6102656103cc36600461215f565b610c12565b61021a6103df366004612009565b610c4a565b61026b6103f2366004612009565b610cb0565b61026b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61026561042c3660046120a4565b610cc7565b61026b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101fd61046636600461223b565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b600061049f82610d85565b92915050565b6060600280546104b490612265565b80601f01602080910402602001604051908101604052809291908181526020018280546104e090612265565b801561052d5780601f106105025761010080835404028352916020019161052d565b820191906000526020600020905b81548152906001019060200180831161051057829003601f168201915b5050505050905090565b600061054282610daa565b506000908152600660205260409020546001600160a01b031690565b60006105698261096a565b9050806001600160a01b0316836001600160a01b0316036105db5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105f757506105f78133610466565b6106695760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016105d2565b6106738383610e09565b505050565b610683335b82610e77565b61069f5760405162461bcd60e51b81526004016105d29061229f565b610673838383610ef6565b6000828152602081905260409020600101546106c581611067565b6106738383611071565b60006106da83610a86565b821061073c5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016105d2565b506001600160a01b03919091166000908152600860209081526040808320938352929052205490565b6001600160a01b03811633146107d55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105d2565b6107df8282611093565b5050565b61080d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610bcf565b610881576040805162461bcd60e51b81526020600482015260248101919091527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f20756e706175736560648201526084016105d2565b6108896110b5565b565b61067383838360405180602001604052806000815250610c12565b6108af3361067d565b6108cb5760405162461bcd60e51b81526004016105d29061229f565b6108d481611107565b50565b60006108e2600a5490565b82106109455760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016105d2565b600a8281548110610958576109586122ec565b90600052602060002001549050919050565b6000818152600460205260408120546001600160a01b03168061049f5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105d2565b6109f47f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610bcf565b610a665760405162461bcd60e51b815260206004820152603d60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d7573742068617665206d696e74657220726f6c6520746f206d696e7400000060648201526084016105d2565b610a7881610a73600d5490565b6111aa565b6108d4600d80546001019055565b60006001600160a01b038216610af05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105d2565b506001600160a01b031660009081526005602052604090205490565b610b367f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610bcf565b610ba85760405162461bcd60e51b815260206004820152603e60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f207061757365000060648201526084016105d2565b610889611343565b6000828152600160205260408120610bc89083611380565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600380546104b490612265565b6107df33838361138c565b610c1c3383610e77565b610c385760405162461bcd60e51b81526004016105d29061229f565b610c448484848461145a565b50505050565b6060610c5582610daa565b6000610c5f61148d565b90506000815111610c7f5760405180602001604052806000815250610bc8565b80610c898461149c565b604051602001610c9a929190612302565b6040516020818303038152906040529392505050565b600081815260016020526040812061049f9061152f565b600082815260208190526040902060010154610ce281611067565b6106738383611093565b610cf68282610bcf565b6107df576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610d2c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610bc8836001600160a01b038416611539565b60006001600160e01b0319821663780e9d6360e01b148061049f575061049f82611588565b6000818152600460205260409020546001600160a01b03166108d45760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105d2565b600081815260066020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610e3e8261096a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610e838361096a565b9050806001600160a01b0316846001600160a01b03161480610eca57506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b80610eee5750836001600160a01b0316610ee384610537565b6001600160a01b0316145b949350505050565b826001600160a01b0316610f098261096a565b6001600160a01b031614610f2f5760405162461bcd60e51b81526004016105d290612331565b6001600160a01b038216610f915760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105d2565b610f9e83838360016115c8565b826001600160a01b0316610fb18261096a565b6001600160a01b031614610fd75760405162461bcd60e51b81526004016105d290612331565b600081815260066020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260058552838620805460001901905590871680865283862080546001019055868652600490945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6108d481336115d4565b61107b8282610cec565b60008281526001602052604090206106739082610d70565b61109d828261162d565b60008281526001602052604090206106739082611692565b6110bd6116a7565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60006111128261096a565b90506111228160008460016115c8565b61112b8261096a565b600083815260066020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526005845282852080546000190190558785526004909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b0382166112005760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105d2565b6000818152600460205260409020546001600160a01b0316156112655760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105d2565b6112736000838360016115c8565b6000818152600460205260409020546001600160a01b0316156112d85760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105d2565b6001600160a01b038216600081815260056020908152604080832080546001019055848352600490915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b61134b6116f0565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110ea3390565b6000610bc88383611736565b816001600160a01b0316836001600160a01b0316036113ed5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105d2565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611465848484610ef6565b61147184848484611760565b610c445760405162461bcd60e51b81526004016105d290612376565b6060600e80546104b490612265565b606060006114a983611861565b600101905060008167ffffffffffffffff8111156114c9576114c9612149565b6040519080825280601f01601f1916602001820160405280156114f3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846114fd57509392505050565b600061049f825490565b60008181526001830160205260408120546115805750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561049f565b50600061049f565b60006001600160e01b031982166380ac58cd60e01b14806115b957506001600160e01b03198216635b5e139f60e01b145b8061049f575061049f82611939565b610c448484848461195e565b6115de8282610bcf565b6107df576115eb816119d1565b6115f68360206119e3565b6040516020016116079291906123c8565b60408051601f198184030181529082905262461bcd60e51b82526105d291600401611ff6565b6116378282610bcf565b156107df576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610bc8836001600160a01b038416611b7f565b600c5460ff166108895760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105d2565b600c5460ff16156108895760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105d2565b600082600001828154811061174d5761174d6122ec565b9060005260206000200154905092915050565b60006001600160a01b0384163b1561185657604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906117a490339089908890889060040161243d565b6020604051808303816000875af19250505080156117df575060408051601f3d908101601f191682019092526117dc9181019061247a565b60015b61183c573d80801561180d576040519150601f19603f3d011682016040523d82523d6000602084013e611812565b606091505b5080516000036118345760405162461bcd60e51b81526004016105d290612376565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610eee565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106118a05772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106118cc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106118ea57662386f26fc10000830492506010015b6305f5e1008310611902576305f5e100830492506008015b612710831061191657612710830492506004015b60648310611928576064830492506002015b600a831061049f5760010192915050565b60006001600160e01b03198216635a05180f60e01b148061049f575061049f82611c72565b61196a84848484611ca7565b600c5460ff1615610c445760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201526a1a1a5b19481c185d5cd95960aa1b60648201526084016105d2565b606061049f6001600160a01b03831660145b606060006119f28360026124ad565b6119fd9060026124cc565b67ffffffffffffffff811115611a1557611a15612149565b6040519080825280601f01601f191660200182016040528015611a3f576020820181803683370190505b509050600360fc1b81600081518110611a5a57611a5a6122ec565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611a8957611a896122ec565b60200101906001600160f81b031916908160001a9053506000611aad8460026124ad565b611ab89060016124cc565b90505b6001811115611b30576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611aec57611aec6122ec565b1a60f81b828281518110611b0257611b026122ec565b60200101906001600160f81b031916908160001a90535060049490941c93611b29816124e4565b9050611abb565b508315610bc85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105d2565b60008181526001830160205260408120548015611c68576000611ba36001836124fb565b8554909150600090611bb7906001906124fb565b9050818114611c1c576000866000018281548110611bd757611bd76122ec565b9060005260206000200154905080876000018481548110611bfa57611bfa6122ec565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611c2d57611c2d612512565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061049f565b600091505061049f565b60006001600160e01b03198216637965db0b60e01b148061049f57506301ffc9a760e01b6001600160e01b031983161461049f565b6001811115611d165760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b60648201526084016105d2565b816001600160a01b038516611d7257611d6d81600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b611d95565b836001600160a01b0316856001600160a01b031614611d9557611d958582611ddb565b6001600160a01b038416611db157611dac81611e78565b611dd4565b846001600160a01b0316846001600160a01b031614611dd457611dd48482611f27565b5050505050565b60006001611de884610a86565b611df291906124fb565b600083815260096020526040902054909150808214611e45576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a54600090611e8a906001906124fb565b6000838152600b6020526040812054600a8054939450909284908110611eb257611eb26122ec565b9060005260206000200154905080600a8381548110611ed357611ed36122ec565b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a805480611f0b57611f0b612512565b6001900381819060005260206000200160009055905550505050565b6000611f3283610a86565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b6001600160e01b0319811681146108d457600080fd5b600060208284031215611f9357600080fd5b8135610bc881611f6b565b60005b83811015611fb9578181015183820152602001611fa1565b83811115610c445750506000910152565b60008151808452611fe2816020860160208601611f9e565b601f01601f19169290920160200192915050565b602081526000610bc86020830184611fca565b60006020828403121561201b57600080fd5b5035919050565b80356001600160a01b038116811461203957600080fd5b919050565b6000806040838503121561205157600080fd5b61205a83612022565b946020939093013593505050565b60008060006060848603121561207d57600080fd5b61208684612022565b925061209460208501612022565b9150604084013590509250925092565b600080604083850312156120b757600080fd5b823591506120c760208401612022565b90509250929050565b6000602082840312156120e257600080fd5b610bc882612022565b600080604083850312156120fe57600080fd5b50508035926020909101359150565b6000806040838503121561212057600080fd5b61212983612022565b91506020830135801515811461213e57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561217557600080fd5b61217e85612022565b935061218c60208601612022565b925060408501359150606085013567ffffffffffffffff808211156121b057600080fd5b818701915087601f8301126121c457600080fd5b8135818111156121d6576121d6612149565b604051601f8201601f19908116603f011681019083821181831017156121fe576121fe612149565b816040528281528a602084870101111561221757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561224e57600080fd5b61225783612022565b91506120c760208401612022565b600181811c9082168061227957607f821691505b60208210810361229957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008351612314818460208801611f9e565b835190830190612328818360208801611f9e565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612400816017850160208801611f9e565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612431816028840160208801611f9e565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061247090830184611fca565b9695505050505050565b60006020828403121561248c57600080fd5b8151610bc881611f6b565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156124c7576124c7612497565b500290565b600082198211156124df576124df612497565b500190565b6000816124f3576124f3612497565b506000190190565b60008282101561250d5761250d612497565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220cfd1973198752b9be878ad342b8a8e9977281479b917a502ada04e82f396427464736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80636352211e1161010f578063a22cb465116100a2578063d539139311610071578063d5391393146103f7578063d547741f1461041e578063e63ab1e914610431578063e985e9c51461045857600080fd5b8063a22cb465146103ab578063b88d4fde146103be578063c87b56dd146103d1578063ca15c873146103e457600080fd5b80639010d07c116100de5780639010d07c1461037557806391d148541461038857806395d89b411461039b578063a217fddf146103a357600080fd5b80636352211e146103345780636a6278421461034757806370a082311461035a5780638456cb591461036d57600080fd5b80632f2ff15d1161018757806342842e0e1161015657806342842e0e146102f057806342966c68146103035780634f6ccce7146103165780635c975abb1461032957600080fd5b80632f2ff15d146102af5780632f745c59146102c257806336568abe146102d55780633f4ba83a146102e857600080fd5b8063095ea7b3116101c3578063095ea7b31461025257806318160ddd1461026757806323b872dd14610279578063248a9ca31461028c57600080fd5b806301ffc9a7146101ea57806306fdde0314610212578063081812fc14610227575b600080fd5b6101fd6101f8366004611f81565b610494565b60405190151581526020015b60405180910390f35b61021a6104a5565b6040516102099190611ff6565b61023a610235366004612009565b610537565b6040516001600160a01b039091168152602001610209565b61026561026036600461203e565b61055e565b005b600a545b604051908152602001610209565b610265610287366004612068565b610678565b61026b61029a366004612009565b60009081526020819052604090206001015490565b6102656102bd3660046120a4565b6106aa565b61026b6102d036600461203e565b6106cf565b6102656102e33660046120a4565b610765565b6102656107e3565b6102656102fe366004612068565b61088b565b610265610311366004612009565b6108a6565b61026b610324366004612009565b6108d7565b600c5460ff166101fd565b61023a610342366004612009565b61096a565b6102656103553660046120d0565b6109ca565b61026b6103683660046120d0565b610a86565b610265610b0c565b61023a6103833660046120eb565b610bb0565b6101fd6103963660046120a4565b610bcf565b61021a610bf8565b61026b600081565b6102656103b936600461210d565b610c07565b6102656103cc36600461215f565b610c12565b61021a6103df366004612009565b610c4a565b61026b6103f2366004612009565b610cb0565b61026b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61026561042c3660046120a4565b610cc7565b61026b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101fd61046636600461223b565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b600061049f82610d85565b92915050565b6060600280546104b490612265565b80601f01602080910402602001604051908101604052809291908181526020018280546104e090612265565b801561052d5780601f106105025761010080835404028352916020019161052d565b820191906000526020600020905b81548152906001019060200180831161051057829003601f168201915b5050505050905090565b600061054282610daa565b506000908152600660205260409020546001600160a01b031690565b60006105698261096a565b9050806001600160a01b0316836001600160a01b0316036105db5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105f757506105f78133610466565b6106695760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016105d2565b6106738383610e09565b505050565b610683335b82610e77565b61069f5760405162461bcd60e51b81526004016105d29061229f565b610673838383610ef6565b6000828152602081905260409020600101546106c581611067565b6106738383611071565b60006106da83610a86565b821061073c5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016105d2565b506001600160a01b03919091166000908152600860209081526040808320938352929052205490565b6001600160a01b03811633146107d55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105d2565b6107df8282611093565b5050565b61080d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610bcf565b610881576040805162461bcd60e51b81526020600482015260248101919091527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f20756e706175736560648201526084016105d2565b6108896110b5565b565b61067383838360405180602001604052806000815250610c12565b6108af3361067d565b6108cb5760405162461bcd60e51b81526004016105d29061229f565b6108d481611107565b50565b60006108e2600a5490565b82106109455760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016105d2565b600a8281548110610958576109586122ec565b90600052602060002001549050919050565b6000818152600460205260408120546001600160a01b03168061049f5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105d2565b6109f47f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610bcf565b610a665760405162461bcd60e51b815260206004820152603d60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d7573742068617665206d696e74657220726f6c6520746f206d696e7400000060648201526084016105d2565b610a7881610a73600d5490565b6111aa565b6108d4600d80546001019055565b60006001600160a01b038216610af05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105d2565b506001600160a01b031660009081526005602052604090205490565b610b367f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610bcf565b610ba85760405162461bcd60e51b815260206004820152603e60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f207061757365000060648201526084016105d2565b610889611343565b6000828152600160205260408120610bc89083611380565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600380546104b490612265565b6107df33838361138c565b610c1c3383610e77565b610c385760405162461bcd60e51b81526004016105d29061229f565b610c448484848461145a565b50505050565b6060610c5582610daa565b6000610c5f61148d565b90506000815111610c7f5760405180602001604052806000815250610bc8565b80610c898461149c565b604051602001610c9a929190612302565b6040516020818303038152906040529392505050565b600081815260016020526040812061049f9061152f565b600082815260208190526040902060010154610ce281611067565b6106738383611093565b610cf68282610bcf565b6107df576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610d2c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610bc8836001600160a01b038416611539565b60006001600160e01b0319821663780e9d6360e01b148061049f575061049f82611588565b6000818152600460205260409020546001600160a01b03166108d45760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105d2565b600081815260066020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610e3e8261096a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610e838361096a565b9050806001600160a01b0316846001600160a01b03161480610eca57506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b80610eee5750836001600160a01b0316610ee384610537565b6001600160a01b0316145b949350505050565b826001600160a01b0316610f098261096a565b6001600160a01b031614610f2f5760405162461bcd60e51b81526004016105d290612331565b6001600160a01b038216610f915760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105d2565b610f9e83838360016115c8565b826001600160a01b0316610fb18261096a565b6001600160a01b031614610fd75760405162461bcd60e51b81526004016105d290612331565b600081815260066020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260058552838620805460001901905590871680865283862080546001019055868652600490945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6108d481336115d4565b61107b8282610cec565b60008281526001602052604090206106739082610d70565b61109d828261162d565b60008281526001602052604090206106739082611692565b6110bd6116a7565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60006111128261096a565b90506111228160008460016115c8565b61112b8261096a565b600083815260066020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526005845282852080546000190190558785526004909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b0382166112005760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105d2565b6000818152600460205260409020546001600160a01b0316156112655760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105d2565b6112736000838360016115c8565b6000818152600460205260409020546001600160a01b0316156112d85760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105d2565b6001600160a01b038216600081815260056020908152604080832080546001019055848352600490915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b61134b6116f0565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110ea3390565b6000610bc88383611736565b816001600160a01b0316836001600160a01b0316036113ed5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105d2565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611465848484610ef6565b61147184848484611760565b610c445760405162461bcd60e51b81526004016105d290612376565b6060600e80546104b490612265565b606060006114a983611861565b600101905060008167ffffffffffffffff8111156114c9576114c9612149565b6040519080825280601f01601f1916602001820160405280156114f3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846114fd57509392505050565b600061049f825490565b60008181526001830160205260408120546115805750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561049f565b50600061049f565b60006001600160e01b031982166380ac58cd60e01b14806115b957506001600160e01b03198216635b5e139f60e01b145b8061049f575061049f82611939565b610c448484848461195e565b6115de8282610bcf565b6107df576115eb816119d1565b6115f68360206119e3565b6040516020016116079291906123c8565b60408051601f198184030181529082905262461bcd60e51b82526105d291600401611ff6565b6116378282610bcf565b156107df576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610bc8836001600160a01b038416611b7f565b600c5460ff166108895760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105d2565b600c5460ff16156108895760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105d2565b600082600001828154811061174d5761174d6122ec565b9060005260206000200154905092915050565b60006001600160a01b0384163b1561185657604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906117a490339089908890889060040161243d565b6020604051808303816000875af19250505080156117df575060408051601f3d908101601f191682019092526117dc9181019061247a565b60015b61183c573d80801561180d576040519150601f19603f3d011682016040523d82523d6000602084013e611812565b606091505b5080516000036118345760405162461bcd60e51b81526004016105d290612376565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610eee565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106118a05772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106118cc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106118ea57662386f26fc10000830492506010015b6305f5e1008310611902576305f5e100830492506008015b612710831061191657612710830492506004015b60648310611928576064830492506002015b600a831061049f5760010192915050565b60006001600160e01b03198216635a05180f60e01b148061049f575061049f82611c72565b61196a84848484611ca7565b600c5460ff1615610c445760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201526a1a1a5b19481c185d5cd95960aa1b60648201526084016105d2565b606061049f6001600160a01b03831660145b606060006119f28360026124ad565b6119fd9060026124cc565b67ffffffffffffffff811115611a1557611a15612149565b6040519080825280601f01601f191660200182016040528015611a3f576020820181803683370190505b509050600360fc1b81600081518110611a5a57611a5a6122ec565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611a8957611a896122ec565b60200101906001600160f81b031916908160001a9053506000611aad8460026124ad565b611ab89060016124cc565b90505b6001811115611b30576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611aec57611aec6122ec565b1a60f81b828281518110611b0257611b026122ec565b60200101906001600160f81b031916908160001a90535060049490941c93611b29816124e4565b9050611abb565b508315610bc85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105d2565b60008181526001830160205260408120548015611c68576000611ba36001836124fb565b8554909150600090611bb7906001906124fb565b9050818114611c1c576000866000018281548110611bd757611bd76122ec565b9060005260206000200154905080876000018481548110611bfa57611bfa6122ec565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611c2d57611c2d612512565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061049f565b600091505061049f565b60006001600160e01b03198216637965db0b60e01b148061049f57506301ffc9a760e01b6001600160e01b031983161461049f565b6001811115611d165760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b60648201526084016105d2565b816001600160a01b038516611d7257611d6d81600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b611d95565b836001600160a01b0316856001600160a01b031614611d9557611d958582611ddb565b6001600160a01b038416611db157611dac81611e78565b611dd4565b846001600160a01b0316846001600160a01b031614611dd457611dd48482611f27565b5050505050565b60006001611de884610a86565b611df291906124fb565b600083815260096020526040902054909150808214611e45576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a54600090611e8a906001906124fb565b6000838152600b6020526040812054600a8054939450909284908110611eb257611eb26122ec565b9060005260206000200154905080600a8381548110611ed357611ed36122ec565b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a805480611f0b57611f0b612512565b6001900381819060005260206000200160009055905550505050565b6000611f3283610a86565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b6001600160e01b0319811681146108d457600080fd5b600060208284031215611f9357600080fd5b8135610bc881611f6b565b60005b83811015611fb9578181015183820152602001611fa1565b83811115610c445750506000910152565b60008151808452611fe2816020860160208601611f9e565b601f01601f19169290920160200192915050565b602081526000610bc86020830184611fca565b60006020828403121561201b57600080fd5b5035919050565b80356001600160a01b038116811461203957600080fd5b919050565b6000806040838503121561205157600080fd5b61205a83612022565b946020939093013593505050565b60008060006060848603121561207d57600080fd5b61208684612022565b925061209460208501612022565b9150604084013590509250925092565b600080604083850312156120b757600080fd5b823591506120c760208401612022565b90509250929050565b6000602082840312156120e257600080fd5b610bc882612022565b600080604083850312156120fe57600080fd5b50508035926020909101359150565b6000806040838503121561212057600080fd5b61212983612022565b91506020830135801515811461213e57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561217557600080fd5b61217e85612022565b935061218c60208601612022565b925060408501359150606085013567ffffffffffffffff808211156121b057600080fd5b818701915087601f8301126121c457600080fd5b8135818111156121d6576121d6612149565b604051601f8201601f19908116603f011681019083821181831017156121fe576121fe612149565b816040528281528a602084870101111561221757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561224e57600080fd5b61225783612022565b91506120c760208401612022565b600181811c9082168061227957607f821691505b60208210810361229957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008351612314818460208801611f9e565b835190830190612328818360208801611f9e565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612400816017850160208801611f9e565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612431816028840160208801611f9e565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061247090830184611fca565b9695505050505050565b60006020828403121561248c57600080fd5b8151610bc881611f6b565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156124c7576124c7612497565b500290565b600082198211156124df576124df612497565b500190565b6000816124f3576124f3612497565b506000190190565b60008282101561250d5761250d612497565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220cfd1973198752b9be878ad342b8a8e9977281479b917a502ada04e82f396427464736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC721URIStorage.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC721URIStorage.json index 21eb130..03bbb5d 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC721URIStorage.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC721URIStorage.json @@ -53,6 +53,38 @@ "name": "ApprovalForAll", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -232,7 +264,7 @@ }, { "internalType": "bytes", - "name": "_data", + "name": "data", "type": "bytes" } ], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC777.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC777.json index d319de2..610b96a 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC777.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC777.json @@ -580,8 +580,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162001d3b38038062001d3b8339810160408190526200003491620003b0565b82516200004990600290602086019062000221565b5081516200005f90600390602085019062000221565b50805162000075906004906020840190620002b0565b5060005b8151811015620000f157600160056000848481518110620000aa57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000e88162000535565b91505062000079565b506040516329965a1d60e01b815230600482018190527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce217705460248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156200016c57600080fd5b505af115801562000181573d6000803e3d6000fd5b50506040516329965a1d60e01b815230600482018190527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a60248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b158015620001ff57600080fd5b505af115801562000214573d6000803e3d6000fd5b5050505050505062000573565b8280546200022f90620004f8565b90600052602060002090601f0160209004810192826200025357600085556200029e565b82601f106200026e57805160ff19168380011785556200029e565b828001600101855582156200029e579182015b828111156200029e57825182559160200191906001019062000281565b50620002ac92915062000308565b5090565b8280548282559060005260206000209081019282156200029e579160200282015b828111156200029e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620002d1565b5b80821115620002ac576000815560010162000309565b600082601f83011262000330578081fd5b81516001600160401b038111156200034c576200034c6200055d565b602062000362601f8301601f19168201620004c5565b828152858284870101111562000376578384fd5b835b838110156200039557858101830151828201840152820162000378565b83811115620003a657848385840101525b5095945050505050565b600080600060608486031215620003c5578283fd5b83516001600160401b0380821115620003dc578485fd5b620003ea878388016200031f565b945060209150818601518181111562000401578485fd5b6200040f888289016200031f565b94505060408601518181111562000424578384fd5b8601601f8101881362000435578384fd5b8051828111156200044a576200044a6200055d565b8060051b92506200045d848401620004c5565b8181528481019083860185850187018c101562000478578788fd5b8795505b83861015620004b457805194506001600160a01b03851685146200049e578788fd5b848352600195909501949186019186016200047c565b508096505050505050509250925092565b604051601f8201601f191681016001600160401b0381118282101715620004f057620004f06200055d565b604052919050565b600181811c908216806200050d57607f821691505b602082108114156200052f57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156200055657634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6117b880620005836000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063959b8c3f116100a2578063d95b637111610071578063d95b63711461022b578063dd62ed3e1461023e578063fad8b32a14610277578063fc673c4f1461028a578063fe9d93031461029d57610116565b8063959b8c3f146101ea57806395d89b41146101fd5780639bd9bbc614610205578063a9059cbb1461021857610116565b806323b872dd116100e957806323b872dd14610183578063313ce56714610196578063556f0dc7146101a557806362ad1b83146101ac57806370a08231146101c157610116565b806306e485381461011b57806306fdde0314610139578063095ea7b31461014e57806318160ddd14610171575b600080fd5b6101236102b0565b60405161013091906115af565b60405180910390f35b610141610312565b60405161013091906115fc565b61016161015c3660046113c6565b61039b565b6040519015158152602001610130565b6001545b604051908152602001610130565b6101616101913660046112f6565b6103b3565b60405160128152602001610130565b6001610175565b6101bf6101ba366004611336565b61057c565b005b6101756101cf366004611286565b6001600160a01b031660009081526020819052604090205490565b6101bf6101f8366004611286565b6105b8565b6101416106d6565b6101bf6102133660046113f1565b6106e5565b6101616102263660046113c6565b610708565b6101616102393660046112be565b6107bb565b61017561024c3660046112be565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6101bf610285366004611286565b61085d565b6101bf610298366004611448565b610979565b6101bf6102ab3660046114c5565b6109b1565b6060600480548060200260200160405190810160405280929190818152602001828054801561030857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102ea575b5050505050905090565b60606002805461032190611703565b80601f016020809104026020016040519081016040528092919081815260200182805461034d90611703565b80156103085780601f1061036f57610100808354040283529160200191610308565b820191906000526020600020905b81548152906001019060200180831161037d57509395945050505050565b6000336103a98185856109d0565b5060019392505050565b60006001600160a01b0383166103e45760405162461bcd60e51b81526004016103db9061160f565b60405180910390fd5b6001600160a01b0384166104495760405162461bcd60e51b815260206004820152602660248201527f4552433737373a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016103db565b600033905061047a818686866040518060200160405280600081525060405180602001604052806000815250610af7565b6104a6818686866040518060200160405280600081525060405180602001604052806000815250610c2e565b6001600160a01b038086166000908152600860209081526040808320938516835292905220548381101561052e5760405162461bcd60e51b815260206004820152602960248201527f4552433737373a207472616e7366657220616d6f756e74206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016103db565b610542868361053d87856116ec565b6109d0565b6105708287878760405180602001604052806000815250604051806020016040528060008152506000610d94565b50600195945050505050565b61058633866107bb565b6105a25760405162461bcd60e51b81526004016103db90611653565b6105b185858585856001610f68565b5050505050565b336001600160a01b038216141561061d5760405162461bcd60e51b8152602060048201526024808201527f4552433737373a20617574686f72697a696e672073656c66206173206f70657260448201526330ba37b960e11b60648201526084016103db565b6001600160a01b03811660009081526005602052604090205460ff161561066e573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff1916905561069d565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191660011790555b60405133906001600160a01b038316907ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f990600090a350565b60606003805461032190611703565b61070333848484604051806020016040528060008152506001610f68565b505050565b60006001600160a01b0383166107305760405162461bcd60e51b81526004016103db9061160f565b6000339050610761818286866040518060200160405280600081525060405180602001604052806000815250610af7565b61078d818286866040518060200160405280600081525060405180602001604052806000815250610c2e565b6103a98182868660405180602001604052806000815250604051806020016040528060008152506000610d94565b6000816001600160a01b0316836001600160a01b0316148061082657506001600160a01b03831660009081526005602052604090205460ff16801561082657506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff16155b8061085657506001600160a01b0380831660009081526006602090815260408083209387168352929052205460ff165b9392505050565b6001600160a01b0381163314156108c05760405162461bcd60e51b815260206004820152602160248201527f4552433737373a207265766f6b696e672073656c66206173206f70657261746f6044820152603960f91b60648201526084016103db565b6001600160a01b03811660009081526005602052604090205460ff1615610914573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610940565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191690555b60405133906001600160a01b038316907f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa190600090a350565b61098333856107bb565b61099f5760405162461bcd60e51b81526004016103db90611653565b6109ab8484848461104b565b50505050565b6109cc3383836040518060200160405280600081525061104b565b5050565b6001600160a01b038316610a345760405162461bcd60e51b815260206004820152602560248201527f4552433737373a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103db565b6001600160a01b038216610a965760405162461bcd60e51b815260206004820152602360248201527f4552433737373a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103db565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca9060440160206040518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab91906112a2565b90506001600160a01b03811615610c2557604051633ad5cbc160e11b81526001600160a01b038216906375ab978290610bf2908a908a908a908a908a908a90600401611555565b600060405180830381600087803b158015610c0c57600080fd5b505af1158015610c20573d6000803e3d6000fd5b505050505b50505050505050565b6001600160a01b03851660009081526020819052604090205483811015610ca75760405162461bcd60e51b815260206004820152602760248201527f4552433737373a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b60648201526084016103db565b6001600160a01b03808716600090815260208190526040808220878503905591871681529081208054869290610cde9084906116d4565b92505081905550846001600160a01b0316866001600160a01b0316886001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987878787604051610d369392919061169f565b60405180910390a4846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610d8391815260200190565b60405180910390a350505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca9060440160206040518083038186803b158015610e1057600080fd5b505afa158015610e24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4891906112a2565b90506001600160a01b03811615610ec4576040516223de2960e01b81526001600160a01b038216906223de2990610e8d908b908b908b908b908b908b90600401611555565b600060405180830381600087803b158015610ea757600080fd5b505af1158015610ebb573d6000803e3d6000fd5b50505050610f5e565b8115610f5e576001600160a01b0386163b15610f5e5760405162461bcd60e51b815260206004820152604d60248201527f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637460448201527f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f60648201526c1ad95b9cd49958da5c1a595b9d609a1b608482015260a4016103db565b5050505050505050565b6001600160a01b038616610fc95760405162461bcd60e51b815260206004820152602260248201527f4552433737373a2073656e642066726f6d20746865207a65726f206164647265604482015261737360f01b60648201526084016103db565b6001600160a01b03851661101f5760405162461bcd60e51b815260206004820181905260248201527f4552433737373a2073656e6420746f20746865207a65726f206164647265737360448201526064016103db565b3361102e818888888888610af7565b61103c818888888888610c2e565b610c2581888888888888610d94565b6001600160a01b0384166110ac5760405162461bcd60e51b815260206004820152602260248201527f4552433737373a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b60648201526084016103db565b336110bc81866000878787610af7565b6001600160a01b038516600090815260208190526040902054848110156111315760405162461bcd60e51b815260206004820152602360248201527f4552433737373a206275726e20616d6f756e7420657863656564732062616c616044820152626e636560e81b60648201526084016103db565b6001600160a01b03861660009081526020819052604081208683039055600180548792906111609084906116ec565b92505081905550856001600160a01b0316826001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988787876040516111ae9392919061169f565b60405180910390a36040518581526000906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b600082601f83011261120f578081fd5b813567ffffffffffffffff8082111561122a5761122a611754565b604051601f8301601f19908116603f0116810190828211818310171561125257611252611754565b8160405283815286602085880101111561126a578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215611297578081fd5b81356108568161176a565b6000602082840312156112b3578081fd5b81516108568161176a565b600080604083850312156112d0578081fd5b82356112db8161176a565b915060208301356112eb8161176a565b809150509250929050565b60008060006060848603121561130a578081fd5b83356113158161176a565b925060208401356113258161176a565b929592945050506040919091013590565b600080600080600060a0868803121561134d578081fd5b85356113588161176a565b945060208601356113688161176a565b935060408601359250606086013567ffffffffffffffff8082111561138b578283fd5b61139789838a016111ff565b935060808801359150808211156113ac578283fd5b506113b9888289016111ff565b9150509295509295909350565b600080604083850312156113d8578182fd5b82356113e38161176a565b946020939093013593505050565b600080600060608486031215611405578283fd5b83356114108161176a565b925060208401359150604084013567ffffffffffffffff811115611432578182fd5b61143e868287016111ff565b9150509250925092565b6000806000806080858703121561145d578384fd5b84356114688161176a565b935060208501359250604085013567ffffffffffffffff8082111561148b578384fd5b611497888389016111ff565b935060608701359150808211156114ac578283fd5b506114b9878288016111ff565b91505092959194509250565b600080604083850312156114d7578182fd5b82359150602083013567ffffffffffffffff8111156114f4578182fd5b611500858286016111ff565b9150509250929050565b60008151808452815b8181101561152f57602081850181015186830182015201611513565b818111156115405782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190526000906115909083018561150a565b82810360a08401526115a2818561150a565b9998505050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156115f05783516001600160a01b0316835292840192918401916001016115cb565b50909695505050505050565b600060208252610856602083018461150a565b60208082526024908201527f4552433737373a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f60408201526b39103337b9103437b63232b960a11b606082015260800190565b6000848252606060208301526116b8606083018561150a565b82810360408401526116ca818561150a565b9695505050505050565b600082198211156116e7576116e761173e565b500190565b6000828210156116fe576116fe61173e565b500390565b600181811c9082168061171757607f821691505b6020821081141561173857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461177f57600080fd5b5056fea26469706673582212208c42e235847878fc7d8ada1e55ed07d1efdb2128f8d741cd4debfe867146b70b64736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063959b8c3f116100a2578063d95b637111610071578063d95b63711461022b578063dd62ed3e1461023e578063fad8b32a14610277578063fc673c4f1461028a578063fe9d93031461029d57610116565b8063959b8c3f146101ea57806395d89b41146101fd5780639bd9bbc614610205578063a9059cbb1461021857610116565b806323b872dd116100e957806323b872dd14610183578063313ce56714610196578063556f0dc7146101a557806362ad1b83146101ac57806370a08231146101c157610116565b806306e485381461011b57806306fdde0314610139578063095ea7b31461014e57806318160ddd14610171575b600080fd5b6101236102b0565b60405161013091906115af565b60405180910390f35b610141610312565b60405161013091906115fc565b61016161015c3660046113c6565b61039b565b6040519015158152602001610130565b6001545b604051908152602001610130565b6101616101913660046112f6565b6103b3565b60405160128152602001610130565b6001610175565b6101bf6101ba366004611336565b61057c565b005b6101756101cf366004611286565b6001600160a01b031660009081526020819052604090205490565b6101bf6101f8366004611286565b6105b8565b6101416106d6565b6101bf6102133660046113f1565b6106e5565b6101616102263660046113c6565b610708565b6101616102393660046112be565b6107bb565b61017561024c3660046112be565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6101bf610285366004611286565b61085d565b6101bf610298366004611448565b610979565b6101bf6102ab3660046114c5565b6109b1565b6060600480548060200260200160405190810160405280929190818152602001828054801561030857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102ea575b5050505050905090565b60606002805461032190611703565b80601f016020809104026020016040519081016040528092919081815260200182805461034d90611703565b80156103085780601f1061036f57610100808354040283529160200191610308565b820191906000526020600020905b81548152906001019060200180831161037d57509395945050505050565b6000336103a98185856109d0565b5060019392505050565b60006001600160a01b0383166103e45760405162461bcd60e51b81526004016103db9061160f565b60405180910390fd5b6001600160a01b0384166104495760405162461bcd60e51b815260206004820152602660248201527f4552433737373a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016103db565b600033905061047a818686866040518060200160405280600081525060405180602001604052806000815250610af7565b6104a6818686866040518060200160405280600081525060405180602001604052806000815250610c2e565b6001600160a01b038086166000908152600860209081526040808320938516835292905220548381101561052e5760405162461bcd60e51b815260206004820152602960248201527f4552433737373a207472616e7366657220616d6f756e74206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016103db565b610542868361053d87856116ec565b6109d0565b6105708287878760405180602001604052806000815250604051806020016040528060008152506000610d94565b50600195945050505050565b61058633866107bb565b6105a25760405162461bcd60e51b81526004016103db90611653565b6105b185858585856001610f68565b5050505050565b336001600160a01b038216141561061d5760405162461bcd60e51b8152602060048201526024808201527f4552433737373a20617574686f72697a696e672073656c66206173206f70657260448201526330ba37b960e11b60648201526084016103db565b6001600160a01b03811660009081526005602052604090205460ff161561066e573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff1916905561069d565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191660011790555b60405133906001600160a01b038316907ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f990600090a350565b60606003805461032190611703565b61070333848484604051806020016040528060008152506001610f68565b505050565b60006001600160a01b0383166107305760405162461bcd60e51b81526004016103db9061160f565b6000339050610761818286866040518060200160405280600081525060405180602001604052806000815250610af7565b61078d818286866040518060200160405280600081525060405180602001604052806000815250610c2e565b6103a98182868660405180602001604052806000815250604051806020016040528060008152506000610d94565b6000816001600160a01b0316836001600160a01b0316148061082657506001600160a01b03831660009081526005602052604090205460ff16801561082657506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff16155b8061085657506001600160a01b0380831660009081526006602090815260408083209387168352929052205460ff165b9392505050565b6001600160a01b0381163314156108c05760405162461bcd60e51b815260206004820152602160248201527f4552433737373a207265766f6b696e672073656c66206173206f70657261746f6044820152603960f91b60648201526084016103db565b6001600160a01b03811660009081526005602052604090205460ff1615610914573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610940565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191690555b60405133906001600160a01b038316907f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa190600090a350565b61098333856107bb565b61099f5760405162461bcd60e51b81526004016103db90611653565b6109ab8484848461104b565b50505050565b6109cc3383836040518060200160405280600081525061104b565b5050565b6001600160a01b038316610a345760405162461bcd60e51b815260206004820152602560248201527f4552433737373a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103db565b6001600160a01b038216610a965760405162461bcd60e51b815260206004820152602360248201527f4552433737373a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103db565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca9060440160206040518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab91906112a2565b90506001600160a01b03811615610c2557604051633ad5cbc160e11b81526001600160a01b038216906375ab978290610bf2908a908a908a908a908a908a90600401611555565b600060405180830381600087803b158015610c0c57600080fd5b505af1158015610c20573d6000803e3d6000fd5b505050505b50505050505050565b6001600160a01b03851660009081526020819052604090205483811015610ca75760405162461bcd60e51b815260206004820152602760248201527f4552433737373a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b60648201526084016103db565b6001600160a01b03808716600090815260208190526040808220878503905591871681529081208054869290610cde9084906116d4565b92505081905550846001600160a01b0316866001600160a01b0316886001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987878787604051610d369392919061169f565b60405180910390a4846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610d8391815260200190565b60405180910390a350505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca9060440160206040518083038186803b158015610e1057600080fd5b505afa158015610e24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4891906112a2565b90506001600160a01b03811615610ec4576040516223de2960e01b81526001600160a01b038216906223de2990610e8d908b908b908b908b908b908b90600401611555565b600060405180830381600087803b158015610ea757600080fd5b505af1158015610ebb573d6000803e3d6000fd5b50505050610f5e565b8115610f5e576001600160a01b0386163b15610f5e5760405162461bcd60e51b815260206004820152604d60248201527f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637460448201527f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f60648201526c1ad95b9cd49958da5c1a595b9d609a1b608482015260a4016103db565b5050505050505050565b6001600160a01b038616610fc95760405162461bcd60e51b815260206004820152602260248201527f4552433737373a2073656e642066726f6d20746865207a65726f206164647265604482015261737360f01b60648201526084016103db565b6001600160a01b03851661101f5760405162461bcd60e51b815260206004820181905260248201527f4552433737373a2073656e6420746f20746865207a65726f206164647265737360448201526064016103db565b3361102e818888888888610af7565b61103c818888888888610c2e565b610c2581888888888888610d94565b6001600160a01b0384166110ac5760405162461bcd60e51b815260206004820152602260248201527f4552433737373a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b60648201526084016103db565b336110bc81866000878787610af7565b6001600160a01b038516600090815260208190526040902054848110156111315760405162461bcd60e51b815260206004820152602360248201527f4552433737373a206275726e20616d6f756e7420657863656564732062616c616044820152626e636560e81b60648201526084016103db565b6001600160a01b03861660009081526020819052604081208683039055600180548792906111609084906116ec565b92505081905550856001600160a01b0316826001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988787876040516111ae9392919061169f565b60405180910390a36040518581526000906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b600082601f83011261120f578081fd5b813567ffffffffffffffff8082111561122a5761122a611754565b604051601f8301601f19908116603f0116810190828211818310171561125257611252611754565b8160405283815286602085880101111561126a578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215611297578081fd5b81356108568161176a565b6000602082840312156112b3578081fd5b81516108568161176a565b600080604083850312156112d0578081fd5b82356112db8161176a565b915060208301356112eb8161176a565b809150509250929050565b60008060006060848603121561130a578081fd5b83356113158161176a565b925060208401356113258161176a565b929592945050506040919091013590565b600080600080600060a0868803121561134d578081fd5b85356113588161176a565b945060208601356113688161176a565b935060408601359250606086013567ffffffffffffffff8082111561138b578283fd5b61139789838a016111ff565b935060808801359150808211156113ac578283fd5b506113b9888289016111ff565b9150509295509295909350565b600080604083850312156113d8578182fd5b82356113e38161176a565b946020939093013593505050565b600080600060608486031215611405578283fd5b83356114108161176a565b925060208401359150604084013567ffffffffffffffff811115611432578182fd5b61143e868287016111ff565b9150509250925092565b6000806000806080858703121561145d578384fd5b84356114688161176a565b935060208501359250604085013567ffffffffffffffff8082111561148b578384fd5b611497888389016111ff565b935060608701359150808211156114ac578283fd5b506114b9878288016111ff565b91505092959194509250565b600080604083850312156114d7578182fd5b82359150602083013567ffffffffffffffff8111156114f4578182fd5b611500858286016111ff565b9150509250929050565b60008151808452815b8181101561152f57602081850181015186830182015201611513565b818111156115405782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190526000906115909083018561150a565b82810360a08401526115a2818561150a565b9998505050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156115f05783516001600160a01b0316835292840192918401916001016115cb565b50909695505050505050565b600060208252610856602083018461150a565b60208082526024908201527f4552433737373a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f60408201526b39103337b9103437b63232b960a11b606082015260800190565b6000848252606060208301526116b8606083018561150a565b82810360408401526116ca818561150a565b9695505050505050565b600082198211156116e7576116e761173e565b500190565b6000828210156116fe576116fe61173e565b500390565b600181811c9082168061171757607f821691505b6020821081141561173857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461177f57600080fd5b5056fea26469706673582212208c42e235847878fc7d8ada1e55ed07d1efdb2128f8d741cd4debfe867146b70b64736f6c63430008030033", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162001bab38038062001bab8339810160408190526200003491620003f1565b82516200004990600290602086019062000215565b5081516200005f90600390602085019062000215565b50805162000075906004906020840190620002a4565b5060005b8151811015620000e5576001600560008484815181106200009e576200009e62000508565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000dc816200051e565b91505062000079565b506040516329965a1d60e01b815230600482018190527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce217705460248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156200016057600080fd5b505af115801562000175573d6000803e3d6000fd5b50506040516329965a1d60e01b815230600482018190527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a60248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b158015620001f357600080fd5b505af115801562000208573d6000803e3d6000fd5b5050505050505062000582565b828054620002239062000546565b90600052602060002090601f01602090048101928262000247576000855562000292565b82601f106200026257805160ff191683800117855562000292565b8280016001018555821562000292579182015b828111156200029257825182559160200191906001019062000275565b50620002a0929150620002fc565b5090565b82805482825590600052602060002090810192821562000292579160200282015b828111156200029257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620002c5565b5b80821115620002a05760008155600101620002fd565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000354576200035462000313565b604052919050565b600082601f8301126200036e57600080fd5b81516001600160401b038111156200038a576200038a62000313565b6020620003a0601f8301601f1916820162000329565b8281528582848701011115620003b557600080fd5b60005b83811015620003d5578581018301518282018401528201620003b8565b83811115620003e75760008385840101525b5095945050505050565b6000806000606084860312156200040757600080fd5b83516001600160401b03808211156200041f57600080fd5b6200042d878388016200035c565b94506020915081860151818111156200044557600080fd5b62000453888289016200035c565b9450506040860151818111156200046957600080fd5b8601601f810188136200047b57600080fd5b80518281111562000490576200049062000313565b8060051b9250620004a384840162000329565b818152928201840192848101908a851115620004be57600080fd5b928501925b84841015620004f857835192506001600160a01b0383168314620004e75760008081fd5b8282529285019290850190620004c3565b8096505050505050509250925092565b634e487b7160e01b600052603260045260246000fd5b6000600182016200053f57634e487b7160e01b600052601160045260246000fd5b5060010190565b600181811c908216806200055b57607f821691505b6020821081036200057c57634e487b7160e01b600052602260045260246000fd5b50919050565b61161980620005926000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063959b8c3f116100a2578063d95b637111610071578063d95b63711461022b578063dd62ed3e1461023e578063fad8b32a14610277578063fc673c4f1461028a578063fe9d93031461029d57600080fd5b8063959b8c3f146101ea57806395d89b41146101fd5780639bd9bbc614610205578063a9059cbb1461021857600080fd5b806323b872dd116100e957806323b872dd14610183578063313ce56714610196578063556f0dc7146101a557806362ad1b83146101ac57806370a08231146101c157600080fd5b806306e485381461011b57806306fdde0314610139578063095ea7b31461014e57806318160ddd14610171575b600080fd5b6101236102b0565b604051610130919061108e565b60405180910390f35b610141610312565b6040516101309190611128565b61016161015c366004611153565b61039b565b6040519015158152602001610130565b6001545b604051908152602001610130565b61016161019136600461117f565b6103b3565b60405160128152602001610130565b6001610175565b6101bf6101ba366004611263565b6103f9565b005b6101756101cf3660046112f6565b6001600160a01b031660009081526020819052604090205490565b6101bf6101f83660046112f6565b61043e565b61014161055b565b6101bf610213366004611313565b61056a565b610161610226366004611153565b61058d565b61016161023936600461136c565b6105c5565b61017561024c36600461136c565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6101bf6102853660046112f6565b610667565b6101bf6102983660046113a5565b610782565b6101bf6102ab366004611425565b6107ba565b6060600480548060200260200160405190810160405280929190818152602001828054801561030857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102ea575b5050505050905090565b6060600280546103219061146c565b80601f016020809104026020016040519081016040528092919081815260200182805461034d9061146c565b80156103085780601f1061036f57610100808354040283529160200191610308565b820191906000526020600020905b81548152906001019060200180831161037d57509395945050505050565b6000336103a98185856107d9565b5060019392505050565b6000336103c1858285610900565b6103ee8585856040518060200160405280600081525060405180602001604052806000815250600061098c565b506001949350505050565b61040333866105c5565b6104285760405162461bcd60e51b815260040161041f906114a6565b60405180910390fd5b6104378585858585600161098c565b5050505050565b6001600160a01b03811633036104a25760405162461bcd60e51b8152602060048201526024808201527f4552433737373a20617574686f72697a696e672073656c66206173206f70657260448201526330ba37b960e11b606482015260840161041f565b6001600160a01b03811660009081526005602052604090205460ff16156104f3573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19169055610522565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191660011790555b60405133906001600160a01b038316907ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f990600090a350565b6060600380546103219061146c565b6105883384848460405180602001604052806000815250600161098c565b505050565b60006105bc3384846040518060200160405280600081525060405180602001604052806000815250600061098c565b50600192915050565b6000816001600160a01b0316836001600160a01b0316148061063057506001600160a01b03831660009081526005602052604090205460ff16801561063057506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff16155b8061066057506001600160a01b0380831660009081526006602090815260408083209387168352929052205460ff165b9392505050565b336001600160a01b038216036106c95760405162461bcd60e51b815260206004820152602160248201527f4552433737373a207265766f6b696e672073656c66206173206f70657261746f6044820152603960f91b606482015260840161041f565b6001600160a01b03811660009081526005602052604090205460ff161561071d573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610749565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191690555b60405133906001600160a01b038316907f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa190600090a350565b61078c33856105c5565b6107a85760405162461bcd60e51b815260040161041f906114a6565b6107b484848484610a88565b50505050565b6107d533838360405180602001604052806000815250610a88565b5050565b6001600160a01b03831661083d5760405162461bcd60e51b815260206004820152602560248201527f4552433737373a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161041f565b6001600160a01b03821661089f5760405162461bcd60e51b815260206004820152602360248201527f4552433737373a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b606482015260840161041f565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526008602090815260408083209386168352929052205460001981146107b4578181101561097f5760405162461bcd60e51b815260206004820152601e60248201527f4552433737373a20696e73756666696369656e7420616c6c6f77616e63650000604482015260640161041f565b6107b484848484036107d9565b6001600160a01b0386166109f15760405162461bcd60e51b815260206004820152602660248201527f4552433737373a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b606482015260840161041f565b6001600160a01b038516610a535760405162461bcd60e51b8152602060048201526024808201527f4552433737373a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161041f565b33610a62818888888888610c3c565b610a70818888888888610d63565b610a7f81888888888888610ec9565b50505050505050565b6001600160a01b038416610ae95760405162461bcd60e51b815260206004820152602260248201527f4552433737373a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b606482015260840161041f565b33610af981866000878787610c3c565b6001600160a01b03851660009081526020819052604090205484811015610b6e5760405162461bcd60e51b815260206004820152602360248201527f4552433737373a206275726e20616d6f756e7420657863656564732062616c616044820152626e636560e81b606482015260840161041f565b6001600160a01b0386166000908152602081905260408120868303905560018054879290610b9d908490611508565b92505081905550856001600160a01b0316826001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098878787604051610beb9392919061151f565b60405180910390a36040518581526000906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015610cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce19190611554565b90506001600160a01b03811615610a7f57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290610d28908a908a908a908a908a908a90600401611571565b600060405180830381600087803b158015610d4257600080fd5b505af1158015610d56573d6000803e3d6000fd5b5050505050505050505050565b6001600160a01b03851660009081526020819052604090205483811015610ddc5760405162461bcd60e51b815260206004820152602760248201527f4552433737373a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b606482015260840161041f565b6001600160a01b03808716600090815260208190526040808220878503905591871681529081208054869290610e139084906115cb565b92505081905550846001600160a01b0316866001600160a01b0316886001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987878787604051610e6b9392919061151f565b60405180910390a4846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610eb891815260200190565b60405180910390a350505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e9190611554565b90506001600160a01b03811615610fea576040516223de2960e01b81526001600160a01b038216906223de2990610fb3908b908b908b908b908b908b90600401611571565b600060405180830381600087803b158015610fcd57600080fd5b505af1158015610fe1573d6000803e3d6000fd5b50505050611084565b8115611084576001600160a01b0386163b156110845760405162461bcd60e51b815260206004820152604d60248201527f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637460448201527f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f60648201526c1ad95b9cd49958da5c1a595b9d609a1b608482015260a40161041f565b5050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156110cf5783516001600160a01b0316835292840192918401916001016110aa565b50909695505050505050565b6000815180845260005b81811015611101576020818501810151868301820152016110e5565b81811115611113576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061066060208301846110db565b6001600160a01b038116811461115057600080fd5b50565b6000806040838503121561116657600080fd5b82356111718161113b565b946020939093013593505050565b60008060006060848603121561119457600080fd5b833561119f8161113b565b925060208401356111af8161113b565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126111e757600080fd5b813567ffffffffffffffff80821115611202576112026111c0565b604051601f8301601f19908116603f0116810190828211818310171561122a5761122a6111c0565b8160405283815286602085880101111561124357600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561127b57600080fd5b85356112868161113b565b945060208601356112968161113b565b935060408601359250606086013567ffffffffffffffff808211156112ba57600080fd5b6112c689838a016111d6565b935060808801359150808211156112dc57600080fd5b506112e9888289016111d6565b9150509295509295909350565b60006020828403121561130857600080fd5b81356106608161113b565b60008060006060848603121561132857600080fd5b83356113338161113b565b925060208401359150604084013567ffffffffffffffff81111561135657600080fd5b611362868287016111d6565b9150509250925092565b6000806040838503121561137f57600080fd5b823561138a8161113b565b9150602083013561139a8161113b565b809150509250929050565b600080600080608085870312156113bb57600080fd5b84356113c68161113b565b935060208501359250604085013567ffffffffffffffff808211156113ea57600080fd5b6113f6888389016111d6565b9350606087013591508082111561140c57600080fd5b50611419878288016111d6565b91505092959194509250565b6000806040838503121561143857600080fd5b82359150602083013567ffffffffffffffff81111561145657600080fd5b611462858286016111d6565b9150509250929050565b600181811c9082168061148057607f821691505b6020821081036114a057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602c908201527f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f60408201526b39103337b9103437b63232b960a11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008282101561151a5761151a6114f2565b500390565b83815260606020820152600061153860608301856110db565b828103604084015261154a81856110db565b9695505050505050565b60006020828403121561156657600080fd5b81516106608161113b565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190526000906115ac908301856110db565b82810360a08401526115be81856110db565b9998505050505050505050565b600082198211156115de576115de6114f2565b50019056fea2646970667358221220e8e83af7037b5721e0219069b713e3de74b2f8745d1abe6f8409b94bbad4c1b064736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063959b8c3f116100a2578063d95b637111610071578063d95b63711461022b578063dd62ed3e1461023e578063fad8b32a14610277578063fc673c4f1461028a578063fe9d93031461029d57600080fd5b8063959b8c3f146101ea57806395d89b41146101fd5780639bd9bbc614610205578063a9059cbb1461021857600080fd5b806323b872dd116100e957806323b872dd14610183578063313ce56714610196578063556f0dc7146101a557806362ad1b83146101ac57806370a08231146101c157600080fd5b806306e485381461011b57806306fdde0314610139578063095ea7b31461014e57806318160ddd14610171575b600080fd5b6101236102b0565b604051610130919061108e565b60405180910390f35b610141610312565b6040516101309190611128565b61016161015c366004611153565b61039b565b6040519015158152602001610130565b6001545b604051908152602001610130565b61016161019136600461117f565b6103b3565b60405160128152602001610130565b6001610175565b6101bf6101ba366004611263565b6103f9565b005b6101756101cf3660046112f6565b6001600160a01b031660009081526020819052604090205490565b6101bf6101f83660046112f6565b61043e565b61014161055b565b6101bf610213366004611313565b61056a565b610161610226366004611153565b61058d565b61016161023936600461136c565b6105c5565b61017561024c36600461136c565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6101bf6102853660046112f6565b610667565b6101bf6102983660046113a5565b610782565b6101bf6102ab366004611425565b6107ba565b6060600480548060200260200160405190810160405280929190818152602001828054801561030857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102ea575b5050505050905090565b6060600280546103219061146c565b80601f016020809104026020016040519081016040528092919081815260200182805461034d9061146c565b80156103085780601f1061036f57610100808354040283529160200191610308565b820191906000526020600020905b81548152906001019060200180831161037d57509395945050505050565b6000336103a98185856107d9565b5060019392505050565b6000336103c1858285610900565b6103ee8585856040518060200160405280600081525060405180602001604052806000815250600061098c565b506001949350505050565b61040333866105c5565b6104285760405162461bcd60e51b815260040161041f906114a6565b60405180910390fd5b6104378585858585600161098c565b5050505050565b6001600160a01b03811633036104a25760405162461bcd60e51b8152602060048201526024808201527f4552433737373a20617574686f72697a696e672073656c66206173206f70657260448201526330ba37b960e11b606482015260840161041f565b6001600160a01b03811660009081526005602052604090205460ff16156104f3573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19169055610522565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191660011790555b60405133906001600160a01b038316907ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f990600090a350565b6060600380546103219061146c565b6105883384848460405180602001604052806000815250600161098c565b505050565b60006105bc3384846040518060200160405280600081525060405180602001604052806000815250600061098c565b50600192915050565b6000816001600160a01b0316836001600160a01b0316148061063057506001600160a01b03831660009081526005602052604090205460ff16801561063057506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff16155b8061066057506001600160a01b0380831660009081526006602090815260408083209387168352929052205460ff165b9392505050565b336001600160a01b038216036106c95760405162461bcd60e51b815260206004820152602160248201527f4552433737373a207265766f6b696e672073656c66206173206f70657261746f6044820152603960f91b606482015260840161041f565b6001600160a01b03811660009081526005602052604090205460ff161561071d573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610749565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191690555b60405133906001600160a01b038316907f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa190600090a350565b61078c33856105c5565b6107a85760405162461bcd60e51b815260040161041f906114a6565b6107b484848484610a88565b50505050565b6107d533838360405180602001604052806000815250610a88565b5050565b6001600160a01b03831661083d5760405162461bcd60e51b815260206004820152602560248201527f4552433737373a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161041f565b6001600160a01b03821661089f5760405162461bcd60e51b815260206004820152602360248201527f4552433737373a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b606482015260840161041f565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526008602090815260408083209386168352929052205460001981146107b4578181101561097f5760405162461bcd60e51b815260206004820152601e60248201527f4552433737373a20696e73756666696369656e7420616c6c6f77616e63650000604482015260640161041f565b6107b484848484036107d9565b6001600160a01b0386166109f15760405162461bcd60e51b815260206004820152602660248201527f4552433737373a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b606482015260840161041f565b6001600160a01b038516610a535760405162461bcd60e51b8152602060048201526024808201527f4552433737373a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161041f565b33610a62818888888888610c3c565b610a70818888888888610d63565b610a7f81888888888888610ec9565b50505050505050565b6001600160a01b038416610ae95760405162461bcd60e51b815260206004820152602260248201527f4552433737373a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b606482015260840161041f565b33610af981866000878787610c3c565b6001600160a01b03851660009081526020819052604090205484811015610b6e5760405162461bcd60e51b815260206004820152602360248201527f4552433737373a206275726e20616d6f756e7420657863656564732062616c616044820152626e636560e81b606482015260840161041f565b6001600160a01b0386166000908152602081905260408120868303905560018054879290610b9d908490611508565b92505081905550856001600160a01b0316826001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098878787604051610beb9392919061151f565b60405180910390a36040518581526000906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015610cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce19190611554565b90506001600160a01b03811615610a7f57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290610d28908a908a908a908a908a908a90600401611571565b600060405180830381600087803b158015610d4257600080fd5b505af1158015610d56573d6000803e3d6000fd5b5050505050505050505050565b6001600160a01b03851660009081526020819052604090205483811015610ddc5760405162461bcd60e51b815260206004820152602760248201527f4552433737373a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b606482015260840161041f565b6001600160a01b03808716600090815260208190526040808220878503905591871681529081208054869290610e139084906115cb565b92505081905550846001600160a01b0316866001600160a01b0316886001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987878787604051610e6b9392919061151f565b60405180910390a4846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610eb891815260200190565b60405180910390a350505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e9190611554565b90506001600160a01b03811615610fea576040516223de2960e01b81526001600160a01b038216906223de2990610fb3908b908b908b908b908b908b90600401611571565b600060405180830381600087803b158015610fcd57600080fd5b505af1158015610fe1573d6000803e3d6000fd5b50505050611084565b8115611084576001600160a01b0386163b156110845760405162461bcd60e51b815260206004820152604d60248201527f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637460448201527f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f60648201526c1ad95b9cd49958da5c1a595b9d609a1b608482015260a40161041f565b5050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156110cf5783516001600160a01b0316835292840192918401916001016110aa565b50909695505050505050565b6000815180845260005b81811015611101576020818501810151868301820152016110e5565b81811115611113576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061066060208301846110db565b6001600160a01b038116811461115057600080fd5b50565b6000806040838503121561116657600080fd5b82356111718161113b565b946020939093013593505050565b60008060006060848603121561119457600080fd5b833561119f8161113b565b925060208401356111af8161113b565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126111e757600080fd5b813567ffffffffffffffff80821115611202576112026111c0565b604051601f8301601f19908116603f0116810190828211818310171561122a5761122a6111c0565b8160405283815286602085880101111561124357600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561127b57600080fd5b85356112868161113b565b945060208601356112968161113b565b935060408601359250606086013567ffffffffffffffff808211156112ba57600080fd5b6112c689838a016111d6565b935060808801359150808211156112dc57600080fd5b506112e9888289016111d6565b9150509295509295909350565b60006020828403121561130857600080fd5b81356106608161113b565b60008060006060848603121561132857600080fd5b83356113338161113b565b925060208401359150604084013567ffffffffffffffff81111561135657600080fd5b611362868287016111d6565b9150509250925092565b6000806040838503121561137f57600080fd5b823561138a8161113b565b9150602083013561139a8161113b565b809150509250929050565b600080600080608085870312156113bb57600080fd5b84356113c68161113b565b935060208501359250604085013567ffffffffffffffff808211156113ea57600080fd5b6113f6888389016111d6565b9350606087013591508082111561140c57600080fd5b50611419878288016111d6565b91505092959194509250565b6000806040838503121561143857600080fd5b82359150602083013567ffffffffffffffff81111561145657600080fd5b611462858286016111d6565b9150509250929050565b600181811c9082168061148057607f821691505b6020821081036114a057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602c908201527f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f60408201526b39103337b9103437b63232b960a11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008282101561151a5761151a6114f2565b500390565b83815260606020820152600061153860608301856110db565b828103604084015261154a81856110db565b9695505050505050565b60006020828403121561156657600080fd5b81516106608161113b565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190526000906115ac908301856110db565b82810360a08401526115be81856110db565b9998505050505050505050565b600082198211156115de576115de6114f2565b50019056fea2646970667358221220e8e83af7037b5721e0219069b713e3de74b2f8745d1abe6f8409b94bbad4c1b064736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ERC777PresetFixedSupply.json b/node_modules/@openzeppelin/contracts/build/contracts/ERC777PresetFixedSupply.json index 87e44b3..b1aa87b 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ERC777PresetFixedSupply.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ERC777PresetFixedSupply.json @@ -590,8 +590,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b506040516200222f3803806200222f833981016040819052620000349162000775565b84848482600290805190602001906200004f929190620005c9565b50815162000065906003906020850190620005c9565b5080516200007b90600490602084019062000658565b5060005b8151811015620000f757600160056000848481518110620000b057634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000ee8162000a17565b9150506200007f565b506040516329965a1d60e01b815230600482018190527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce217705460248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156200017257600080fd5b505af115801562000187573d6000803e3d6000fd5b50506040516329965a1d60e01b815230600482018190527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a60248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156200020557600080fd5b505af11580156200021a573d6000803e3d6000fd5b5050505050505062000253818360405180602001604052806000815250604051806020016040528060008152506200025e60201b60201c565b505050505062000a61565b6200026e84848484600162000274565b50505050565b6001600160a01b038516620002d05760405162461bcd60e51b815260206004820181905260248201527f4552433737373a206d696e7420746f20746865207a65726f206164647265737360448201526064015b60405180910390fd5b60003390508460016000828254620002e9919062000990565b90915550506001600160a01b038616600090815260208190526040812080548792906200031890849062000990565b909155506200033090508160008888888888620003ca565b856001600160a01b0316816001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d878787604051620003799392919062000924565b60405180910390a36040518581526001600160a01b038716906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca9060440160206040518083038186803b1580156200044757600080fd5b505afa1580156200045c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000482919062000751565b90506001600160a01b0381161562000504576040516223de2960e01b81526001600160a01b038216906223de2990620004ca908b908b908b908b908b908b90600401620008c6565b600060405180830381600087803b158015620004e557600080fd5b505af1158015620004fa573d6000803e3d6000fd5b50505050620005b5565b8115620005b5576200052a866001600160a01b0316620005bf60201b620009d01760201c565b15620005b55760405162461bcd60e51b815260206004820152604d60248201527f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637460448201527f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f60648201526c1ad95b9cd49958da5c1a595b9d609a1b608482015260a401620002c7565b5050505050505050565b803b15155b919050565b828054620005d790620009da565b90600052602060002090601f016020900481019282620005fb576000855562000646565b82601f106200061657805160ff191683800117855562000646565b8280016001018555821562000646579182015b828111156200064657825182559160200191906001019062000629565b5062000654929150620006b0565b5090565b82805482825590600052602060002090810192821562000646579160200282015b828111156200064657825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000679565b5b80821115620006545760008155600101620006b1565b80516001600160a01b0381168114620005c457600080fd5b600082601f830112620006f0578081fd5b81516001600160401b038111156200070c576200070c62000a4b565b62000721601f8201601f19166020016200095d565b81815284602083860101111562000736578283fd5b62000749826020830160208701620009ab565b949350505050565b60006020828403121562000763578081fd5b6200076e82620006c7565b9392505050565b600080600080600060a086880312156200078d578081fd5b85516001600160401b0380821115620007a4578283fd5b620007b289838a01620006df565b9650602091508188015181811115620007c9578384fd5b620007d78a828b01620006df565b965050604088015181811115620007ec578384fd5b8801601f81018a13620007fd578384fd5b80518281111562000812576200081262000a4b565b8060051b9250620008258484016200095d565b8181528481019083860185850187018e101562000840578788fd5b8795505b838610156200086d576200085881620006c7565b83526001959095019491860191860162000844565b50809850505050505050606086015191506200088c60808701620006c7565b90509295509295909350565b60008151808452620008b2816020860160208601620009ab565b601f01601f19169290920160200192915050565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090620009039083018562000898565b82810360a084015262000917818562000898565b9998505050505050505050565b6000848252606060208301526200093f606083018562000898565b828103604084015262000953818562000898565b9695505050505050565b604051601f8201601f191681016001600160401b038111828210171562000988576200098862000a4b565b604052919050565b60008219821115620009a657620009a662000a35565b500190565b60005b83811015620009c8578181015183820152602001620009ae565b838111156200026e5750506000910152565b600181811c90821680620009ef57607f821691505b6020821081141562000a1157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141562000a2e5762000a2e62000a35565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6117be8062000a716000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063959b8c3f116100a2578063d95b637111610071578063d95b63711461022b578063dd62ed3e1461023e578063fad8b32a14610277578063fc673c4f1461028a578063fe9d93031461029d57610116565b8063959b8c3f146101ea57806395d89b41146101fd5780639bd9bbc614610205578063a9059cbb1461021857610116565b806323b872dd116100e957806323b872dd14610183578063313ce56714610196578063556f0dc7146101a557806362ad1b83146101ac57806370a08231146101c157610116565b806306e485381461011b57806306fdde0314610139578063095ea7b31461014e57806318160ddd14610171575b600080fd5b6101236102b0565b60405161013091906115b5565b60405180910390f35b610141610312565b6040516101309190611602565b61016161015c3660046113cc565b61039b565b6040519015158152602001610130565b6001545b604051908152602001610130565b6101616101913660046112fc565b6103b3565b60405160128152602001610130565b6001610175565b6101bf6101ba36600461133c565b61057c565b005b6101756101cf36600461128c565b6001600160a01b031660009081526020819052604090205490565b6101bf6101f836600461128c565b6105b8565b6101416106d6565b6101bf6102133660046113f7565b6106e5565b6101616102263660046113cc565b610708565b6101616102393660046112c4565b6107bb565b61017561024c3660046112c4565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6101bf61028536600461128c565b61085d565b6101bf61029836600461144e565b610979565b6101bf6102ab3660046114cb565b6109b1565b6060600480548060200260200160405190810160405280929190818152602001828054801561030857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102ea575b5050505050905090565b60606002805461032190611709565b80601f016020809104026020016040519081016040528092919081815260200182805461034d90611709565b80156103085780601f1061036f57610100808354040283529160200191610308565b820191906000526020600020905b81548152906001019060200180831161037d57509395945050505050565b6000336103a98185856109d6565b5060019392505050565b60006001600160a01b0383166103e45760405162461bcd60e51b81526004016103db90611615565b60405180910390fd5b6001600160a01b0384166104495760405162461bcd60e51b815260206004820152602660248201527f4552433737373a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016103db565b600033905061047a818686866040518060200160405280600081525060405180602001604052806000815250610afd565b6104a6818686866040518060200160405280600081525060405180602001604052806000815250610c34565b6001600160a01b038086166000908152600860209081526040808320938516835292905220548381101561052e5760405162461bcd60e51b815260206004820152602960248201527f4552433737373a207472616e7366657220616d6f756e74206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016103db565b610542868361053d87856116f2565b6109d6565b6105708287878760405180602001604052806000815250604051806020016040528060008152506000610d9a565b50600195945050505050565b61058633866107bb565b6105a25760405162461bcd60e51b81526004016103db90611659565b6105b185858585856001610f6e565b5050505050565b336001600160a01b038216141561061d5760405162461bcd60e51b8152602060048201526024808201527f4552433737373a20617574686f72697a696e672073656c66206173206f70657260448201526330ba37b960e11b60648201526084016103db565b6001600160a01b03811660009081526005602052604090205460ff161561066e573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff1916905561069d565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191660011790555b60405133906001600160a01b038316907ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f990600090a350565b60606003805461032190611709565b61070333848484604051806020016040528060008152506001610f6e565b505050565b60006001600160a01b0383166107305760405162461bcd60e51b81526004016103db90611615565b6000339050610761818286866040518060200160405280600081525060405180602001604052806000815250610afd565b61078d818286866040518060200160405280600081525060405180602001604052806000815250610c34565b6103a98182868660405180602001604052806000815250604051806020016040528060008152506000610d9a565b6000816001600160a01b0316836001600160a01b0316148061082657506001600160a01b03831660009081526005602052604090205460ff16801561082657506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff16155b8061085657506001600160a01b0380831660009081526006602090815260408083209387168352929052205460ff165b9392505050565b6001600160a01b0381163314156108c05760405162461bcd60e51b815260206004820152602160248201527f4552433737373a207265766f6b696e672073656c66206173206f70657261746f6044820152603960f91b60648201526084016103db565b6001600160a01b03811660009081526005602052604090205460ff1615610914573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610940565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191690555b60405133906001600160a01b038316907f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa190600090a350565b61098333856107bb565b61099f5760405162461bcd60e51b81526004016103db90611659565b6109ab84848484611051565b50505050565b6109cc33838360405180602001604052806000815250611051565b5050565b3b151590565b6001600160a01b038316610a3a5760405162461bcd60e51b815260206004820152602560248201527f4552433737373a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103db565b6001600160a01b038216610a9c5760405162461bcd60e51b815260206004820152602360248201527f4552433737373a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103db565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca9060440160206040518083038186803b158015610b7957600080fd5b505afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb191906112a8565b90506001600160a01b03811615610c2b57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290610bf8908a908a908a908a908a908a9060040161155b565b600060405180830381600087803b158015610c1257600080fd5b505af1158015610c26573d6000803e3d6000fd5b505050505b50505050505050565b6001600160a01b03851660009081526020819052604090205483811015610cad5760405162461bcd60e51b815260206004820152602760248201527f4552433737373a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b60648201526084016103db565b6001600160a01b03808716600090815260208190526040808220878503905591871681529081208054869290610ce49084906116da565b92505081905550846001600160a01b0316866001600160a01b0316886001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987878787604051610d3c939291906116a5565b60405180910390a4846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610d8991815260200190565b60405180910390a350505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca9060440160206040518083038186803b158015610e1657600080fd5b505afa158015610e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4e91906112a8565b90506001600160a01b03811615610eca576040516223de2960e01b81526001600160a01b038216906223de2990610e93908b908b908b908b908b908b9060040161155b565b600060405180830381600087803b158015610ead57600080fd5b505af1158015610ec1573d6000803e3d6000fd5b50505050610f64565b8115610f64576001600160a01b0386163b15610f645760405162461bcd60e51b815260206004820152604d60248201527f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637460448201527f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f60648201526c1ad95b9cd49958da5c1a595b9d609a1b608482015260a4016103db565b5050505050505050565b6001600160a01b038616610fcf5760405162461bcd60e51b815260206004820152602260248201527f4552433737373a2073656e642066726f6d20746865207a65726f206164647265604482015261737360f01b60648201526084016103db565b6001600160a01b0385166110255760405162461bcd60e51b815260206004820181905260248201527f4552433737373a2073656e6420746f20746865207a65726f206164647265737360448201526064016103db565b33611034818888888888610afd565b611042818888888888610c34565b610c2b81888888888888610d9a565b6001600160a01b0384166110b25760405162461bcd60e51b815260206004820152602260248201527f4552433737373a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b60648201526084016103db565b336110c281866000878787610afd565b6001600160a01b038516600090815260208190526040902054848110156111375760405162461bcd60e51b815260206004820152602360248201527f4552433737373a206275726e20616d6f756e7420657863656564732062616c616044820152626e636560e81b60648201526084016103db565b6001600160a01b03861660009081526020819052604081208683039055600180548792906111669084906116f2565b92505081905550856001600160a01b0316826001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988787876040516111b4939291906116a5565b60405180910390a36040518581526000906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b600082601f830112611215578081fd5b813567ffffffffffffffff808211156112305761123061175a565b604051601f8301601f19908116603f011681019082821181831017156112585761125861175a565b81604052838152866020858801011115611270578485fd5b8360208701602083013792830160200193909352509392505050565b60006020828403121561129d578081fd5b813561085681611770565b6000602082840312156112b9578081fd5b815161085681611770565b600080604083850312156112d6578081fd5b82356112e181611770565b915060208301356112f181611770565b809150509250929050565b600080600060608486031215611310578081fd5b833561131b81611770565b9250602084013561132b81611770565b929592945050506040919091013590565b600080600080600060a08688031215611353578081fd5b853561135e81611770565b9450602086013561136e81611770565b935060408601359250606086013567ffffffffffffffff80821115611391578283fd5b61139d89838a01611205565b935060808801359150808211156113b2578283fd5b506113bf88828901611205565b9150509295509295909350565b600080604083850312156113de578182fd5b82356113e981611770565b946020939093013593505050565b60008060006060848603121561140b578283fd5b833561141681611770565b925060208401359150604084013567ffffffffffffffff811115611438578182fd5b61144486828701611205565b9150509250925092565b60008060008060808587031215611463578384fd5b843561146e81611770565b935060208501359250604085013567ffffffffffffffff80821115611491578384fd5b61149d88838901611205565b935060608701359150808211156114b2578283fd5b506114bf87828801611205565b91505092959194509250565b600080604083850312156114dd578182fd5b82359150602083013567ffffffffffffffff8111156114fa578182fd5b61150685828601611205565b9150509250929050565b60008151808452815b8181101561153557602081850181015186830182015201611519565b818111156115465782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c06080820181905260009061159690830185611510565b82810360a08401526115a88185611510565b9998505050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156115f65783516001600160a01b0316835292840192918401916001016115d1565b50909695505050505050565b6000602082526108566020830184611510565b60208082526024908201527f4552433737373a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f60408201526b39103337b9103437b63232b960a11b606082015260800190565b6000848252606060208301526116be6060830185611510565b82810360408401526116d08185611510565b9695505050505050565b600082198211156116ed576116ed611744565b500190565b60008282101561170457611704611744565b500390565b600181811c9082168061171d57607f821691505b6020821081141561173e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461178557600080fd5b5056fea2646970667358221220a087bebce295c54528d46a529b236de0c8206d5e357ef6a1a716cef58739474f64736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063959b8c3f116100a2578063d95b637111610071578063d95b63711461022b578063dd62ed3e1461023e578063fad8b32a14610277578063fc673c4f1461028a578063fe9d93031461029d57610116565b8063959b8c3f146101ea57806395d89b41146101fd5780639bd9bbc614610205578063a9059cbb1461021857610116565b806323b872dd116100e957806323b872dd14610183578063313ce56714610196578063556f0dc7146101a557806362ad1b83146101ac57806370a08231146101c157610116565b806306e485381461011b57806306fdde0314610139578063095ea7b31461014e57806318160ddd14610171575b600080fd5b6101236102b0565b60405161013091906115b5565b60405180910390f35b610141610312565b6040516101309190611602565b61016161015c3660046113cc565b61039b565b6040519015158152602001610130565b6001545b604051908152602001610130565b6101616101913660046112fc565b6103b3565b60405160128152602001610130565b6001610175565b6101bf6101ba36600461133c565b61057c565b005b6101756101cf36600461128c565b6001600160a01b031660009081526020819052604090205490565b6101bf6101f836600461128c565b6105b8565b6101416106d6565b6101bf6102133660046113f7565b6106e5565b6101616102263660046113cc565b610708565b6101616102393660046112c4565b6107bb565b61017561024c3660046112c4565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6101bf61028536600461128c565b61085d565b6101bf61029836600461144e565b610979565b6101bf6102ab3660046114cb565b6109b1565b6060600480548060200260200160405190810160405280929190818152602001828054801561030857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102ea575b5050505050905090565b60606002805461032190611709565b80601f016020809104026020016040519081016040528092919081815260200182805461034d90611709565b80156103085780601f1061036f57610100808354040283529160200191610308565b820191906000526020600020905b81548152906001019060200180831161037d57509395945050505050565b6000336103a98185856109d6565b5060019392505050565b60006001600160a01b0383166103e45760405162461bcd60e51b81526004016103db90611615565b60405180910390fd5b6001600160a01b0384166104495760405162461bcd60e51b815260206004820152602660248201527f4552433737373a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016103db565b600033905061047a818686866040518060200160405280600081525060405180602001604052806000815250610afd565b6104a6818686866040518060200160405280600081525060405180602001604052806000815250610c34565b6001600160a01b038086166000908152600860209081526040808320938516835292905220548381101561052e5760405162461bcd60e51b815260206004820152602960248201527f4552433737373a207472616e7366657220616d6f756e74206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016103db565b610542868361053d87856116f2565b6109d6565b6105708287878760405180602001604052806000815250604051806020016040528060008152506000610d9a565b50600195945050505050565b61058633866107bb565b6105a25760405162461bcd60e51b81526004016103db90611659565b6105b185858585856001610f6e565b5050505050565b336001600160a01b038216141561061d5760405162461bcd60e51b8152602060048201526024808201527f4552433737373a20617574686f72697a696e672073656c66206173206f70657260448201526330ba37b960e11b60648201526084016103db565b6001600160a01b03811660009081526005602052604090205460ff161561066e573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff1916905561069d565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191660011790555b60405133906001600160a01b038316907ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f990600090a350565b60606003805461032190611709565b61070333848484604051806020016040528060008152506001610f6e565b505050565b60006001600160a01b0383166107305760405162461bcd60e51b81526004016103db90611615565b6000339050610761818286866040518060200160405280600081525060405180602001604052806000815250610afd565b61078d818286866040518060200160405280600081525060405180602001604052806000815250610c34565b6103a98182868660405180602001604052806000815250604051806020016040528060008152506000610d9a565b6000816001600160a01b0316836001600160a01b0316148061082657506001600160a01b03831660009081526005602052604090205460ff16801561082657506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff16155b8061085657506001600160a01b0380831660009081526006602090815260408083209387168352929052205460ff165b9392505050565b6001600160a01b0381163314156108c05760405162461bcd60e51b815260206004820152602160248201527f4552433737373a207265766f6b696e672073656c66206173206f70657261746f6044820152603960f91b60648201526084016103db565b6001600160a01b03811660009081526005602052604090205460ff1615610914573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610940565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191690555b60405133906001600160a01b038316907f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa190600090a350565b61098333856107bb565b61099f5760405162461bcd60e51b81526004016103db90611659565b6109ab84848484611051565b50505050565b6109cc33838360405180602001604052806000815250611051565b5050565b3b151590565b6001600160a01b038316610a3a5760405162461bcd60e51b815260206004820152602560248201527f4552433737373a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103db565b6001600160a01b038216610a9c5760405162461bcd60e51b815260206004820152602360248201527f4552433737373a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103db565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca9060440160206040518083038186803b158015610b7957600080fd5b505afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb191906112a8565b90506001600160a01b03811615610c2b57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290610bf8908a908a908a908a908a908a9060040161155b565b600060405180830381600087803b158015610c1257600080fd5b505af1158015610c26573d6000803e3d6000fd5b505050505b50505050505050565b6001600160a01b03851660009081526020819052604090205483811015610cad5760405162461bcd60e51b815260206004820152602760248201527f4552433737373a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b60648201526084016103db565b6001600160a01b03808716600090815260208190526040808220878503905591871681529081208054869290610ce49084906116da565b92505081905550846001600160a01b0316866001600160a01b0316886001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987878787604051610d3c939291906116a5565b60405180910390a4846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610d8991815260200190565b60405180910390a350505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca9060440160206040518083038186803b158015610e1657600080fd5b505afa158015610e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4e91906112a8565b90506001600160a01b03811615610eca576040516223de2960e01b81526001600160a01b038216906223de2990610e93908b908b908b908b908b908b9060040161155b565b600060405180830381600087803b158015610ead57600080fd5b505af1158015610ec1573d6000803e3d6000fd5b50505050610f64565b8115610f64576001600160a01b0386163b15610f645760405162461bcd60e51b815260206004820152604d60248201527f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637460448201527f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f60648201526c1ad95b9cd49958da5c1a595b9d609a1b608482015260a4016103db565b5050505050505050565b6001600160a01b038616610fcf5760405162461bcd60e51b815260206004820152602260248201527f4552433737373a2073656e642066726f6d20746865207a65726f206164647265604482015261737360f01b60648201526084016103db565b6001600160a01b0385166110255760405162461bcd60e51b815260206004820181905260248201527f4552433737373a2073656e6420746f20746865207a65726f206164647265737360448201526064016103db565b33611034818888888888610afd565b611042818888888888610c34565b610c2b81888888888888610d9a565b6001600160a01b0384166110b25760405162461bcd60e51b815260206004820152602260248201527f4552433737373a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b60648201526084016103db565b336110c281866000878787610afd565b6001600160a01b038516600090815260208190526040902054848110156111375760405162461bcd60e51b815260206004820152602360248201527f4552433737373a206275726e20616d6f756e7420657863656564732062616c616044820152626e636560e81b60648201526084016103db565b6001600160a01b03861660009081526020819052604081208683039055600180548792906111669084906116f2565b92505081905550856001600160a01b0316826001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988787876040516111b4939291906116a5565b60405180910390a36040518581526000906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b600082601f830112611215578081fd5b813567ffffffffffffffff808211156112305761123061175a565b604051601f8301601f19908116603f011681019082821181831017156112585761125861175a565b81604052838152866020858801011115611270578485fd5b8360208701602083013792830160200193909352509392505050565b60006020828403121561129d578081fd5b813561085681611770565b6000602082840312156112b9578081fd5b815161085681611770565b600080604083850312156112d6578081fd5b82356112e181611770565b915060208301356112f181611770565b809150509250929050565b600080600060608486031215611310578081fd5b833561131b81611770565b9250602084013561132b81611770565b929592945050506040919091013590565b600080600080600060a08688031215611353578081fd5b853561135e81611770565b9450602086013561136e81611770565b935060408601359250606086013567ffffffffffffffff80821115611391578283fd5b61139d89838a01611205565b935060808801359150808211156113b2578283fd5b506113bf88828901611205565b9150509295509295909350565b600080604083850312156113de578182fd5b82356113e981611770565b946020939093013593505050565b60008060006060848603121561140b578283fd5b833561141681611770565b925060208401359150604084013567ffffffffffffffff811115611438578182fd5b61144486828701611205565b9150509250925092565b60008060008060808587031215611463578384fd5b843561146e81611770565b935060208501359250604085013567ffffffffffffffff80821115611491578384fd5b61149d88838901611205565b935060608701359150808211156114b2578283fd5b506114bf87828801611205565b91505092959194509250565b600080604083850312156114dd578182fd5b82359150602083013567ffffffffffffffff8111156114fa578182fd5b61150685828601611205565b9150509250929050565b60008151808452815b8181101561153557602081850181015186830182015201611519565b818111156115465782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c06080820181905260009061159690830185611510565b82810360a08401526115a88185611510565b9998505050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156115f65783516001600160a01b0316835292840192918401916001016115d1565b50909695505050505050565b6000602082526108566020830184611510565b60208082526024908201527f4552433737373a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f60408201526b39103337b9103437b63232b960a11b606082015260800190565b6000848252606060208301526116be6060830185611510565b82810360408401526116d08185611510565b9695505050505050565b600082198211156116ed576116ed611744565b500190565b60008282101561170457611704611744565b500390565b600181811c9082168061171d57607f821691505b6020821081141561173e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461178557600080fd5b5056fea2646970667358221220a087bebce295c54528d46a529b236de0c8206d5e357ef6a1a716cef58739474f64736f6c63430008030033", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200209d3803806200209d8339810160408190526200003491620007b9565b84848482600290805190602001906200004f929190620005b2565b50815162000065906003906020850190620005b2565b5080516200007b90600490602084019062000641565b5060005b8151811015620000eb57600160056000848481518110620000a457620000a4620008dc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000e28162000908565b9150506200007f565b506040516329965a1d60e01b815230600482018190527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce217705460248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156200016657600080fd5b505af11580156200017b573d6000803e3d6000fd5b50506040516329965a1d60e01b815230600482018190527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a60248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b158015620001f957600080fd5b505af11580156200020e573d6000803e3d6000fd5b5050505050505062000247818360405180602001604052806000815250604051806020016040528060008152506200025260201b60201c565b505050505062000a65565b6200026284848484600162000268565b50505050565b6001600160a01b038516620002c45760405162461bcd60e51b815260206004820181905260248201527f4552433737373a206d696e7420746f20746865207a65726f206164647265737360448201526064015b60405180910390fd5b60003390508460016000828254620002dd919062000924565b90915550506001600160a01b038616600090815260208190526040812080548792906200030c90849062000924565b909155506200032490508160008888888888620003be565b856001600160a01b0316816001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d8787876040516200036d939291906200096d565b60405180910390a36040518581526001600160a01b038716906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa15801562000440573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004669190620009a6565b90506001600160a01b03811615620004e8576040516223de2960e01b81526001600160a01b038216906223de2990620004ae908b908b908b908b908b908b90600401620009cb565b600060405180830381600087803b158015620004c957600080fd5b505af1158015620004de573d6000803e3d6000fd5b5050505062000599565b811562000599576200050e866001600160a01b0316620005a360201b620007d91760201c565b15620005995760405162461bcd60e51b815260206004820152604d60248201527f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637460448201527f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f60648201526c1ad95b9cd49958da5c1a595b9d609a1b608482015260a401620002bb565b5050505050505050565b6001600160a01b03163b151590565b828054620005c09062000a29565b90600052602060002090601f016020900481019282620005e457600085556200062f565b82601f10620005ff57805160ff19168380011785556200062f565b828001600101855582156200062f579182015b828111156200062f57825182559160200191906001019062000612565b506200063d92915062000699565b5090565b8280548282559060005260206000209081019282156200062f579160200282015b828111156200062f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000662565b5b808211156200063d57600081556001016200069a565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620006f157620006f1620006b0565b604052919050565b60005b8381101562000716578181015183820152602001620006fc565b83811115620002625750506000910152565b600082601f8301126200073a57600080fd5b81516001600160401b03811115620007565762000756620006b0565b6200076b601f8201601f1916602001620006c6565b8181528460208386010111156200078157600080fd5b62000794826020830160208701620006f9565b949350505050565b80516001600160a01b0381168114620007b457600080fd5b919050565b600080600080600060a08688031215620007d257600080fd5b85516001600160401b0380821115620007ea57600080fd5b620007f889838a0162000728565b96506020915081880151818111156200081057600080fd5b6200081e8a828b0162000728565b9650506040880151818111156200083457600080fd5b8801601f81018a136200084657600080fd5b8051828111156200085b576200085b620006b0565b8060051b92506200086e848401620006c6565b818152928201840192848101908c8511156200088957600080fd5b928501925b84841015620008b257620008a2846200079c565b825292850192908501906200088e565b80985050505050505060608601519150620008d0608087016200079c565b90509295509295909350565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016200091d576200091d620008f2565b5060010190565b600082198211156200093a576200093a620008f2565b500190565b6000815180845262000959816020860160208601620006f9565b601f01601f19169290920160200192915050565b8381526060602082015260006200098860608301856200093f565b82810360408401526200099c81856200093f565b9695505050505050565b600060208284031215620009b957600080fd5b620009c4826200079c565b9392505050565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c06080820181905260009062000a08908301856200093f565b82810360a084015262000a1c81856200093f565b9998505050505050505050565b600181811c9082168062000a3e57607f821691505b60208210810362000a5f57634e487b7160e01b600052602260045260246000fd5b50919050565b6116288062000a756000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063959b8c3f116100a2578063d95b637111610071578063d95b63711461022b578063dd62ed3e1461023e578063fad8b32a14610277578063fc673c4f1461028a578063fe9d93031461029d57600080fd5b8063959b8c3f146101ea57806395d89b41146101fd5780639bd9bbc614610205578063a9059cbb1461021857600080fd5b806323b872dd116100e957806323b872dd14610183578063313ce56714610196578063556f0dc7146101a557806362ad1b83146101ac57806370a08231146101c157600080fd5b806306e485381461011b57806306fdde0314610139578063095ea7b31461014e57806318160ddd14610171575b600080fd5b6101236102b0565b604051610130919061109d565b60405180910390f35b610141610312565b6040516101309190611137565b61016161015c366004611162565b61039b565b6040519015158152602001610130565b6001545b604051908152602001610130565b61016161019136600461118e565b6103b3565b60405160128152602001610130565b6001610175565b6101bf6101ba366004611272565b6103f9565b005b6101756101cf366004611305565b6001600160a01b031660009081526020819052604090205490565b6101bf6101f8366004611305565b61043e565b61014161055b565b6101bf610213366004611322565b61056a565b610161610226366004611162565b61058d565b61016161023936600461137b565b6105c5565b61017561024c36600461137b565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6101bf610285366004611305565b610667565b6101bf6102983660046113b4565b610782565b6101bf6102ab366004611434565b6107ba565b6060600480548060200260200160405190810160405280929190818152602001828054801561030857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102ea575b5050505050905090565b6060600280546103219061147b565b80601f016020809104026020016040519081016040528092919081815260200182805461034d9061147b565b80156103085780601f1061036f57610100808354040283529160200191610308565b820191906000526020600020905b81548152906001019060200180831161037d57509395945050505050565b6000336103a98185856107e8565b5060019392505050565b6000336103c185828561090f565b6103ee8585856040518060200160405280600081525060405180602001604052806000815250600061099b565b506001949350505050565b61040333866105c5565b6104285760405162461bcd60e51b815260040161041f906114b5565b60405180910390fd5b6104378585858585600161099b565b5050505050565b6001600160a01b03811633036104a25760405162461bcd60e51b8152602060048201526024808201527f4552433737373a20617574686f72697a696e672073656c66206173206f70657260448201526330ba37b960e11b606482015260840161041f565b6001600160a01b03811660009081526005602052604090205460ff16156104f3573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19169055610522565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191660011790555b60405133906001600160a01b038316907ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f990600090a350565b6060600380546103219061147b565b6105883384848460405180602001604052806000815250600161099b565b505050565b60006105bc3384846040518060200160405280600081525060405180602001604052806000815250600061099b565b50600192915050565b6000816001600160a01b0316836001600160a01b0316148061063057506001600160a01b03831660009081526005602052604090205460ff16801561063057506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff16155b8061066057506001600160a01b0380831660009081526006602090815260408083209387168352929052205460ff165b9392505050565b336001600160a01b038216036106c95760405162461bcd60e51b815260206004820152602160248201527f4552433737373a207265766f6b696e672073656c66206173206f70657261746f6044820152603960f91b606482015260840161041f565b6001600160a01b03811660009081526005602052604090205460ff161561071d573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610749565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191690555b60405133906001600160a01b038316907f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa190600090a350565b61078c33856105c5565b6107a85760405162461bcd60e51b815260040161041f906114b5565b6107b484848484610a97565b50505050565b6107d533838360405180602001604052806000815250610a97565b5050565b6001600160a01b03163b151590565b6001600160a01b03831661084c5760405162461bcd60e51b815260206004820152602560248201527f4552433737373a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161041f565b6001600160a01b0382166108ae5760405162461bcd60e51b815260206004820152602360248201527f4552433737373a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b606482015260840161041f565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526008602090815260408083209386168352929052205460001981146107b4578181101561098e5760405162461bcd60e51b815260206004820152601e60248201527f4552433737373a20696e73756666696369656e7420616c6c6f77616e63650000604482015260640161041f565b6107b484848484036107e8565b6001600160a01b038616610a005760405162461bcd60e51b815260206004820152602660248201527f4552433737373a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b606482015260840161041f565b6001600160a01b038516610a625760405162461bcd60e51b8152602060048201526024808201527f4552433737373a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161041f565b33610a71818888888888610c4b565b610a7f818888888888610d72565b610a8e81888888888888610ed8565b50505050505050565b6001600160a01b038416610af85760405162461bcd60e51b815260206004820152602260248201527f4552433737373a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b606482015260840161041f565b33610b0881866000878787610c4b565b6001600160a01b03851660009081526020819052604090205484811015610b7d5760405162461bcd60e51b815260206004820152602360248201527f4552433737373a206275726e20616d6f756e7420657863656564732062616c616044820152626e636560e81b606482015260840161041f565b6001600160a01b0386166000908152602081905260408120868303905560018054879290610bac908490611517565b92505081905550856001600160a01b0316826001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098878787604051610bfa9392919061152e565b60405180910390a36040518581526000906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015610ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf09190611563565b90506001600160a01b03811615610a8e57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290610d37908a908a908a908a908a908a90600401611580565b600060405180830381600087803b158015610d5157600080fd5b505af1158015610d65573d6000803e3d6000fd5b5050505050505050505050565b6001600160a01b03851660009081526020819052604090205483811015610deb5760405162461bcd60e51b815260206004820152602760248201527f4552433737373a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b606482015260840161041f565b6001600160a01b03808716600090815260208190526040808220878503905591871681529081208054869290610e229084906115da565b92505081905550846001600160a01b0316866001600160a01b0316886001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987878787604051610e7a9392919061152e565b60405180910390a4846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610ec791815260200190565b60405180910390a350505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d9190611563565b90506001600160a01b03811615610ff9576040516223de2960e01b81526001600160a01b038216906223de2990610fc2908b908b908b908b908b908b90600401611580565b600060405180830381600087803b158015610fdc57600080fd5b505af1158015610ff0573d6000803e3d6000fd5b50505050611093565b8115611093576001600160a01b0386163b156110935760405162461bcd60e51b815260206004820152604d60248201527f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637460448201527f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f60648201526c1ad95b9cd49958da5c1a595b9d609a1b608482015260a40161041f565b5050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156110de5783516001600160a01b0316835292840192918401916001016110b9565b50909695505050505050565b6000815180845260005b81811015611110576020818501810151868301820152016110f4565b81811115611122576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061066060208301846110ea565b6001600160a01b038116811461115f57600080fd5b50565b6000806040838503121561117557600080fd5b82356111808161114a565b946020939093013593505050565b6000806000606084860312156111a357600080fd5b83356111ae8161114a565b925060208401356111be8161114a565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126111f657600080fd5b813567ffffffffffffffff80821115611211576112116111cf565b604051601f8301601f19908116603f01168101908282118183101715611239576112396111cf565b8160405283815286602085880101111561125257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561128a57600080fd5b85356112958161114a565b945060208601356112a58161114a565b935060408601359250606086013567ffffffffffffffff808211156112c957600080fd5b6112d589838a016111e5565b935060808801359150808211156112eb57600080fd5b506112f8888289016111e5565b9150509295509295909350565b60006020828403121561131757600080fd5b81356106608161114a565b60008060006060848603121561133757600080fd5b83356113428161114a565b925060208401359150604084013567ffffffffffffffff81111561136557600080fd5b611371868287016111e5565b9150509250925092565b6000806040838503121561138e57600080fd5b82356113998161114a565b915060208301356113a98161114a565b809150509250929050565b600080600080608085870312156113ca57600080fd5b84356113d58161114a565b935060208501359250604085013567ffffffffffffffff808211156113f957600080fd5b611405888389016111e5565b9350606087013591508082111561141b57600080fd5b50611428878288016111e5565b91505092959194509250565b6000806040838503121561144757600080fd5b82359150602083013567ffffffffffffffff81111561146557600080fd5b611471858286016111e5565b9150509250929050565b600181811c9082168061148f57607f821691505b6020821081036114af57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602c908201527f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f60408201526b39103337b9103437b63232b960a11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008282101561152957611529611501565b500390565b83815260606020820152600061154760608301856110ea565b828103604084015261155981856110ea565b9695505050505050565b60006020828403121561157557600080fd5b81516106608161114a565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190526000906115bb908301856110ea565b82810360a08401526115cd81856110ea565b9998505050505050505050565b600082198211156115ed576115ed611501565b50019056fea2646970667358221220cef610267830be9674d9c250b18a1c4398cd7518ce3f493e45edfe801b0f623064736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063959b8c3f116100a2578063d95b637111610071578063d95b63711461022b578063dd62ed3e1461023e578063fad8b32a14610277578063fc673c4f1461028a578063fe9d93031461029d57600080fd5b8063959b8c3f146101ea57806395d89b41146101fd5780639bd9bbc614610205578063a9059cbb1461021857600080fd5b806323b872dd116100e957806323b872dd14610183578063313ce56714610196578063556f0dc7146101a557806362ad1b83146101ac57806370a08231146101c157600080fd5b806306e485381461011b57806306fdde0314610139578063095ea7b31461014e57806318160ddd14610171575b600080fd5b6101236102b0565b604051610130919061109d565b60405180910390f35b610141610312565b6040516101309190611137565b61016161015c366004611162565b61039b565b6040519015158152602001610130565b6001545b604051908152602001610130565b61016161019136600461118e565b6103b3565b60405160128152602001610130565b6001610175565b6101bf6101ba366004611272565b6103f9565b005b6101756101cf366004611305565b6001600160a01b031660009081526020819052604090205490565b6101bf6101f8366004611305565b61043e565b61014161055b565b6101bf610213366004611322565b61056a565b610161610226366004611162565b61058d565b61016161023936600461137b565b6105c5565b61017561024c36600461137b565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6101bf610285366004611305565b610667565b6101bf6102983660046113b4565b610782565b6101bf6102ab366004611434565b6107ba565b6060600480548060200260200160405190810160405280929190818152602001828054801561030857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102ea575b5050505050905090565b6060600280546103219061147b565b80601f016020809104026020016040519081016040528092919081815260200182805461034d9061147b565b80156103085780601f1061036f57610100808354040283529160200191610308565b820191906000526020600020905b81548152906001019060200180831161037d57509395945050505050565b6000336103a98185856107e8565b5060019392505050565b6000336103c185828561090f565b6103ee8585856040518060200160405280600081525060405180602001604052806000815250600061099b565b506001949350505050565b61040333866105c5565b6104285760405162461bcd60e51b815260040161041f906114b5565b60405180910390fd5b6104378585858585600161099b565b5050505050565b6001600160a01b03811633036104a25760405162461bcd60e51b8152602060048201526024808201527f4552433737373a20617574686f72697a696e672073656c66206173206f70657260448201526330ba37b960e11b606482015260840161041f565b6001600160a01b03811660009081526005602052604090205460ff16156104f3573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19169055610522565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191660011790555b60405133906001600160a01b038316907ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f990600090a350565b6060600380546103219061147b565b6105883384848460405180602001604052806000815250600161099b565b505050565b60006105bc3384846040518060200160405280600081525060405180602001604052806000815250600061099b565b50600192915050565b6000816001600160a01b0316836001600160a01b0316148061063057506001600160a01b03831660009081526005602052604090205460ff16801561063057506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff16155b8061066057506001600160a01b0380831660009081526006602090815260408083209387168352929052205460ff165b9392505050565b336001600160a01b038216036106c95760405162461bcd60e51b815260206004820152602160248201527f4552433737373a207265766f6b696e672073656c66206173206f70657261746f6044820152603960f91b606482015260840161041f565b6001600160a01b03811660009081526005602052604090205460ff161561071d573360009081526007602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610749565b3360009081526006602090815260408083206001600160a01b03851684529091529020805460ff191690555b60405133906001600160a01b038316907f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa190600090a350565b61078c33856105c5565b6107a85760405162461bcd60e51b815260040161041f906114b5565b6107b484848484610a97565b50505050565b6107d533838360405180602001604052806000815250610a97565b5050565b6001600160a01b03163b151590565b6001600160a01b03831661084c5760405162461bcd60e51b815260206004820152602560248201527f4552433737373a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161041f565b6001600160a01b0382166108ae5760405162461bcd60e51b815260206004820152602360248201527f4552433737373a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b606482015260840161041f565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526008602090815260408083209386168352929052205460001981146107b4578181101561098e5760405162461bcd60e51b815260206004820152601e60248201527f4552433737373a20696e73756666696369656e7420616c6c6f77616e63650000604482015260640161041f565b6107b484848484036107e8565b6001600160a01b038616610a005760405162461bcd60e51b815260206004820152602660248201527f4552433737373a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b606482015260840161041f565b6001600160a01b038516610a625760405162461bcd60e51b8152602060048201526024808201527f4552433737373a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161041f565b33610a71818888888888610c4b565b610a7f818888888888610d72565b610a8e81888888888888610ed8565b50505050505050565b6001600160a01b038416610af85760405162461bcd60e51b815260206004820152602260248201527f4552433737373a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b606482015260840161041f565b33610b0881866000878787610c4b565b6001600160a01b03851660009081526020819052604090205484811015610b7d5760405162461bcd60e51b815260206004820152602360248201527f4552433737373a206275726e20616d6f756e7420657863656564732062616c616044820152626e636560e81b606482015260840161041f565b6001600160a01b0386166000908152602081905260408120868303905560018054879290610bac908490611517565b92505081905550856001600160a01b0316826001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098878787604051610bfa9392919061152e565b60405180910390a36040518581526000906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015610ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf09190611563565b90506001600160a01b03811615610a8e57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290610d37908a908a908a908a908a908a90600401611580565b600060405180830381600087803b158015610d5157600080fd5b505af1158015610d65573d6000803e3d6000fd5b5050505050505050505050565b6001600160a01b03851660009081526020819052604090205483811015610deb5760405162461bcd60e51b815260206004820152602760248201527f4552433737373a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b606482015260840161041f565b6001600160a01b03808716600090815260208190526040808220878503905591871681529081208054869290610e229084906115da565b92505081905550846001600160a01b0316866001600160a01b0316886001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987878787604051610e7a9392919061152e565b60405180910390a4846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610ec791815260200190565b60405180910390a350505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d9190611563565b90506001600160a01b03811615610ff9576040516223de2960e01b81526001600160a01b038216906223de2990610fc2908b908b908b908b908b908b90600401611580565b600060405180830381600087803b158015610fdc57600080fd5b505af1158015610ff0573d6000803e3d6000fd5b50505050611093565b8115611093576001600160a01b0386163b156110935760405162461bcd60e51b815260206004820152604d60248201527f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637460448201527f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f60648201526c1ad95b9cd49958da5c1a595b9d609a1b608482015260a40161041f565b5050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156110de5783516001600160a01b0316835292840192918401916001016110b9565b50909695505050505050565b6000815180845260005b81811015611110576020818501810151868301820152016110f4565b81811115611122576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061066060208301846110ea565b6001600160a01b038116811461115f57600080fd5b50565b6000806040838503121561117557600080fd5b82356111808161114a565b946020939093013593505050565b6000806000606084860312156111a357600080fd5b83356111ae8161114a565b925060208401356111be8161114a565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126111f657600080fd5b813567ffffffffffffffff80821115611211576112116111cf565b604051601f8301601f19908116603f01168101908282118183101715611239576112396111cf565b8160405283815286602085880101111561125257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561128a57600080fd5b85356112958161114a565b945060208601356112a58161114a565b935060408601359250606086013567ffffffffffffffff808211156112c957600080fd5b6112d589838a016111e5565b935060808801359150808211156112eb57600080fd5b506112f8888289016111e5565b9150509295509295909350565b60006020828403121561131757600080fd5b81356106608161114a565b60008060006060848603121561133757600080fd5b83356113428161114a565b925060208401359150604084013567ffffffffffffffff81111561136557600080fd5b611371868287016111e5565b9150509250925092565b6000806040838503121561138e57600080fd5b82356113998161114a565b915060208301356113a98161114a565b809150509250929050565b600080600080608085870312156113ca57600080fd5b84356113d58161114a565b935060208501359250604085013567ffffffffffffffff808211156113f957600080fd5b611405888389016111e5565b9350606087013591508082111561141b57600080fd5b50611428878288016111e5565b91505092959194509250565b6000806040838503121561144757600080fd5b82359150602083013567ffffffffffffffff81111561146557600080fd5b611471858286016111e5565b9150509250929050565b600181811c9082168061148f57607f821691505b6020821081036114af57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602c908201527f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f60408201526b39103337b9103437b63232b960a11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008282101561152957611529611501565b500390565b83815260606020820152600061154760608301856110ea565b828103604084015261155981856110ea565b9695505050505050565b60006020828403121561157557600080fd5b81516106608161114a565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190526000906115bb908301856110ea565b82810360a08401526115cd81856110ea565b9998505050505050505050565b600082198211156115ed576115ed611501565b50019056fea2646970667358221220cef610267830be9674d9c250b18a1c4398cd7518ce3f493e45edfe801b0f623064736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/EnumerableMap.json b/node_modules/@openzeppelin/contracts/build/contracts/EnumerableMap.json index 510b74e..fa7fb02 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/EnumerableMap.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/EnumerableMap.json @@ -3,8 +3,8 @@ "contractName": "EnumerableMap", "sourceName": "contracts/utils/structs/EnumerableMap.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220876bea9f5ee57b76986922e0bc86d9242a2bd18f71f9dcfe34b608c3a18608c564736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220876bea9f5ee57b76986922e0bc86d9242a2bd18f71f9dcfe34b608c3a18608c564736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1247dbc9cc619113e0c5945f8c62202b8c4eb957dce30baa3239658a5019e5864736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1247dbc9cc619113e0c5945f8c62202b8c4eb957dce30baa3239658a5019e5864736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/EnumerableSet.json b/node_modules/@openzeppelin/contracts/build/contracts/EnumerableSet.json index 29ad747..8271ee3 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/EnumerableSet.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/EnumerableSet.json @@ -3,8 +3,8 @@ "contractName": "EnumerableSet", "sourceName": "contracts/utils/structs/EnumerableSet.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209f6f77f5fb41613a06651d4d326d291333662cfa605ace53ad32c68e00fead4964736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209f6f77f5fb41613a06651d4d326d291333662cfa605ace53ad32c68e00fead4964736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122074e69cd2a0d98d262dffa88e25191ecf000f74539d774ab9f6d72ba9c393e1b964736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122074e69cd2a0d98d262dffa88e25191ecf000f74539d774ab9f6d72ba9c393e1b964736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/Escrow.json b/node_modules/@openzeppelin/contracts/build/contracts/Escrow.json index c41118d..47039aa 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/Escrow.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/Escrow.json @@ -139,8 +139,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105718061007e6000396000f3fe6080604052600436106100555760003560e01c806351cff8d91461005a578063715018a61461007c5780638da5cb5b14610091578063e3a9db1a146100be578063f2fde38b14610102578063f340fa0114610122575b600080fd5b34801561006657600080fd5b5061007a6100753660046104aa565b610135565b005b34801561008857600080fd5b5061007a6101d7565b34801561009d57600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b3480156100ca57600080fd5b506100f46100d93660046104aa565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100b5565b34801561010e57600080fd5b5061007a61011d3660046104aa565b61020d565b61007a6101303660046104aa565b6102a8565b6000546001600160a01b031633146101685760405162461bcd60e51b815260040161015f906104cd565b60405180910390fd5b6001600160a01b0381166000818152600160205260408120805491905590610190908261033c565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040516101cb91815260200190565b60405180910390a25050565b6000546001600160a01b031633146102015760405162461bcd60e51b815260040161015f906104cd565b61020b600061045a565b565b6000546001600160a01b031633146102375760405162461bcd60e51b815260040161015f906104cd565b6001600160a01b03811661029c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161015f565b6102a58161045a565b50565b6000546001600160a01b031633146102d25760405162461bcd60e51b815260040161015f906104cd565b6001600160a01b0381166000908152600160205260408120805434928392916102fc908490610502565b90915550506040518181526001600160a01b038316907f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4906020016101cb565b8047101561038c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161015f565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146103d9576040519150601f19603f3d011682016040523d82523d6000602084013e6103de565b606091505b50509050806104555760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161015f565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156104bb578081fd5b81356104c681610526565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561052157634e487b7160e01b81526011600452602481fd5b500190565b6001600160a01b03811681146102a557600080fdfea2646970667358221220fb80e6f61ed9d07b2715127957616df7a00a176f20e17aebd317ca95eeeb3bd364736f6c63430008030033", - "deployedBytecode": "0x6080604052600436106100555760003560e01c806351cff8d91461005a578063715018a61461007c5780638da5cb5b14610091578063e3a9db1a146100be578063f2fde38b14610102578063f340fa0114610122575b600080fd5b34801561006657600080fd5b5061007a6100753660046104aa565b610135565b005b34801561008857600080fd5b5061007a6101d7565b34801561009d57600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b3480156100ca57600080fd5b506100f46100d93660046104aa565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100b5565b34801561010e57600080fd5b5061007a61011d3660046104aa565b61020d565b61007a6101303660046104aa565b6102a8565b6000546001600160a01b031633146101685760405162461bcd60e51b815260040161015f906104cd565b60405180910390fd5b6001600160a01b0381166000818152600160205260408120805491905590610190908261033c565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040516101cb91815260200190565b60405180910390a25050565b6000546001600160a01b031633146102015760405162461bcd60e51b815260040161015f906104cd565b61020b600061045a565b565b6000546001600160a01b031633146102375760405162461bcd60e51b815260040161015f906104cd565b6001600160a01b03811661029c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161015f565b6102a58161045a565b50565b6000546001600160a01b031633146102d25760405162461bcd60e51b815260040161015f906104cd565b6001600160a01b0381166000908152600160205260408120805434928392916102fc908490610502565b90915550506040518181526001600160a01b038316907f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4906020016101cb565b8047101561038c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161015f565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146103d9576040519150601f19603f3d011682016040523d82523d6000602084013e6103de565b606091505b50509050806104555760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161015f565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156104bb578081fd5b81356104c681610526565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561052157634e487b7160e01b81526011600452602481fd5b500190565b6001600160a01b03811681146102a557600080fdfea2646970667358221220fb80e6f61ed9d07b2715127957616df7a00a176f20e17aebd317ca95eeeb3bd364736f6c63430008030033", + "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61050d8061007e6000396000f3fe6080604052600436106100555760003560e01c806351cff8d91461005a578063715018a61461007c5780638da5cb5b14610091578063e3a9db1a146100be578063f2fde38b14610102578063f340fa0114610122575b600080fd5b34801561006657600080fd5b5061007a61007536600461048d565b610135565b005b34801561008857600080fd5b5061007a6101ac565b34801561009d57600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b3480156100ca57600080fd5b506100f46100d936600461048d565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100b5565b34801561010e57600080fd5b5061007a61011d36600461048d565b6101c0565b61007a61013036600461048d565b61023e565b61013d6102b0565b6001600160a01b0381166000818152600160205260408120805491905590610165908261030a565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040516101a091815260200190565b60405180910390a25050565b6101b46102b0565b6101be6000610428565b565b6101c86102b0565b6001600160a01b0381166102325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61023b81610428565b50565b6102466102b0565b6001600160a01b0381166000908152600160205260408120805434928392916102709084906104b1565b90915550506040518181526001600160a01b038316907f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4906020016101a0565b6000546001600160a01b031633146101be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610229565b8047101561035a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610229565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146103a7576040519150601f19603f3d011682016040523d82523d6000602084013e6103ac565b606091505b50509050806104235760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610229565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461023b57600080fd5b60006020828403121561049f57600080fd5b81356104aa81610478565b9392505050565b600082198211156104d257634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220dc6c34bc3335960c9e91e6de838a4426b5dd5d59951e1c89f8b6f5d95bf262a364736f6c634300080d0033", + "deployedBytecode": "0x6080604052600436106100555760003560e01c806351cff8d91461005a578063715018a61461007c5780638da5cb5b14610091578063e3a9db1a146100be578063f2fde38b14610102578063f340fa0114610122575b600080fd5b34801561006657600080fd5b5061007a61007536600461048d565b610135565b005b34801561008857600080fd5b5061007a6101ac565b34801561009d57600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b3480156100ca57600080fd5b506100f46100d936600461048d565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100b5565b34801561010e57600080fd5b5061007a61011d36600461048d565b6101c0565b61007a61013036600461048d565b61023e565b61013d6102b0565b6001600160a01b0381166000818152600160205260408120805491905590610165908261030a565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040516101a091815260200190565b60405180910390a25050565b6101b46102b0565b6101be6000610428565b565b6101c86102b0565b6001600160a01b0381166102325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61023b81610428565b50565b6102466102b0565b6001600160a01b0381166000908152600160205260408120805434928392916102709084906104b1565b90915550506040518181526001600160a01b038316907f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4906020016101a0565b6000546001600160a01b031633146101be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610229565b8047101561035a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610229565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146103a7576040519150601f19603f3d011682016040523d82523d6000602084013e6103ac565b606091505b50509050806104235760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610229565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461023b57600080fd5b60006020828403121561049f57600080fd5b81356104aa81610478565b9392505050565b600082198211156104d257634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220dc6c34bc3335960c9e91e6de838a4426b5dd5d59951e1c89f8b6f5d95bf262a364736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/Governor.json b/node_modules/@openzeppelin/contracts/build/contracts/Governor.json index b89f7c6..3344d96 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/Governor.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/Governor.json @@ -3,6 +3,33 @@ "contractName": "Governor", "sourceName": "contracts/governance/Governor.sol", "abi": [ + { + "inputs": [], + "name": "Empty", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -58,13 +85,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -127,6 +154,49 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, { "inputs": [], "name": "BALLOT_TYPEHASH", @@ -140,6 +210,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -150,7 +233,54 @@ "type": "string" } ], - "stateMutability": "pure", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "EXTENDED_BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", "type": "function" }, { @@ -245,6 +375,145 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -288,7 +557,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -303,6 +572,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -374,6 +672,118 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -393,6 +803,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalProposer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -412,6 +841,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -450,7 +892,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -465,6 +907,29 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "relay", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ { @@ -541,6 +1006,10 @@ ], "stateMutability": "view", "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ], "bytecode": "0x", diff --git a/node_modules/@openzeppelin/contracts/build/contracts/GovernorCompatibilityBravo.json b/node_modules/@openzeppelin/contracts/build/contracts/GovernorCompatibilityBravo.json index 1067a65..feb7ad9 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/GovernorCompatibilityBravo.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/GovernorCompatibilityBravo.json @@ -3,6 +3,33 @@ "contractName": "GovernorCompatibilityBravo", "sourceName": "contracts/governance/compatibility/GovernorCompatibilityBravo.sol", "abi": [ + { + "inputs": [], + "name": "Empty", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -58,13 +85,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -146,6 +173,49 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, { "inputs": [], "name": "BALLOT_TYPEHASH", @@ -159,6 +229,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -172,6 +255,19 @@ "stateMutability": "pure", "type": "function" }, + { + "inputs": [], + "name": "EXTENDED_BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -185,6 +281,40 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -277,6 +407,145 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -408,7 +677,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -423,6 +692,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -494,6 +792,118 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -532,6 +942,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalProposer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -752,7 +1181,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -780,6 +1209,29 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "relay", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ { @@ -869,6 +1321,10 @@ ], "stateMutability": "view", "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ], "bytecode": "0x", diff --git a/node_modules/@openzeppelin/contracts/build/contracts/GovernorCountingSimple.json b/node_modules/@openzeppelin/contracts/build/contracts/GovernorCountingSimple.json index 1e04989..02087f2 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/GovernorCountingSimple.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/GovernorCountingSimple.json @@ -3,6 +3,33 @@ "contractName": "GovernorCountingSimple", "sourceName": "contracts/governance/extensions/GovernorCountingSimple.sol", "abi": [ + { + "inputs": [], + "name": "Empty", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -58,13 +85,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -127,6 +154,49 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, { "inputs": [], "name": "BALLOT_TYPEHASH", @@ -140,6 +210,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -153,6 +236,53 @@ "stateMutability": "pure", "type": "function" }, + { + "inputs": [], + "name": "EXTENDED_BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -245,6 +375,145 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -288,7 +557,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -303,6 +572,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -374,6 +672,118 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -393,6 +803,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalProposer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -412,6 +841,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -479,7 +921,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -494,6 +936,29 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "relay", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ { @@ -570,6 +1035,10 @@ ], "stateMutability": "view", "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ], "bytecode": "0x", diff --git a/node_modules/@openzeppelin/contracts/build/contracts/GovernorProposalThreshold.json b/node_modules/@openzeppelin/contracts/build/contracts/GovernorProposalThreshold.json index 638dbbc..39c4908 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/GovernorProposalThreshold.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/GovernorProposalThreshold.json @@ -3,6 +3,33 @@ "contractName": "GovernorProposalThreshold", "sourceName": "contracts/governance/extensions/GovernorProposalThreshold.sol", "abi": [ + { + "inputs": [], + "name": "Empty", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -58,13 +85,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -127,6 +154,49 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, { "inputs": [], "name": "BALLOT_TYPEHASH", @@ -140,6 +210,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -150,7 +233,54 @@ "type": "string" } ], - "stateMutability": "pure", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "EXTENDED_BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", "type": "function" }, { @@ -245,6 +375,145 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -288,7 +557,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -303,6 +572,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -374,6 +672,118 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -393,6 +803,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalProposer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -463,7 +892,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -478,6 +907,29 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "relay", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ { @@ -554,6 +1006,10 @@ ], "stateMutability": "view", "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ], "bytecode": "0x", diff --git a/node_modules/@openzeppelin/contracts/build/contracts/GovernorTimelockCompound.json b/node_modules/@openzeppelin/contracts/build/contracts/GovernorTimelockCompound.json index f260c31..653aa0e 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/GovernorTimelockCompound.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/GovernorTimelockCompound.json @@ -3,6 +3,33 @@ "contractName": "GovernorTimelockCompound", "sourceName": "contracts/governance/extensions/GovernorTimelockCompound.sol", "abi": [ + { + "inputs": [], + "name": "Empty", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -58,13 +85,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -165,6 +192,49 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, { "inputs": [], "name": "BALLOT_TYPEHASH", @@ -178,6 +248,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -188,7 +271,20 @@ "type": "string" } ], - "stateMutability": "pure", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "EXTENDED_BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", "type": "function" }, { @@ -198,6 +294,40 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -290,6 +420,145 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -333,7 +602,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -348,6 +617,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -419,6 +717,118 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -457,6 +867,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalProposer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -476,6 +905,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -548,7 +990,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -563,6 +1005,29 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "relay", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ { @@ -665,6 +1130,10 @@ ], "stateMutability": "view", "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ], "bytecode": "0x", diff --git a/node_modules/@openzeppelin/contracts/build/contracts/GovernorTimelockControl.json b/node_modules/@openzeppelin/contracts/build/contracts/GovernorTimelockControl.json index 8c6e70d..b168978 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/GovernorTimelockControl.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/GovernorTimelockControl.json @@ -3,6 +3,33 @@ "contractName": "GovernorTimelockControl", "sourceName": "contracts/governance/extensions/GovernorTimelockControl.sol", "abi": [ + { + "inputs": [], + "name": "Empty", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -58,13 +85,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -165,6 +192,49 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, { "inputs": [], "name": "BALLOT_TYPEHASH", @@ -178,6 +248,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -188,7 +271,54 @@ "type": "string" } ], - "stateMutability": "pure", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "EXTENDED_BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", "type": "function" }, { @@ -283,6 +413,145 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -326,7 +595,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -341,6 +610,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -412,6 +710,118 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -450,6 +860,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalProposer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -469,6 +898,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -541,7 +983,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -556,6 +998,29 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "relay", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ { @@ -658,6 +1123,10 @@ ], "stateMutability": "view", "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ], "bytecode": "0x", diff --git a/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotes.json b/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotes.json index 617a933..d2ceec6 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotes.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotes.json @@ -3,6 +3,33 @@ "contractName": "GovernorVotes", "sourceName": "contracts/governance/extensions/GovernorVotes.sol", "abi": [ + { + "inputs": [], + "name": "Empty", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -58,13 +85,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -127,6 +154,49 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, { "inputs": [], "name": "BALLOT_TYPEHASH", @@ -140,6 +210,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -150,7 +233,54 @@ "type": "string" } ], - "stateMutability": "pure", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "EXTENDED_BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", "type": "function" }, { @@ -245,6 +375,145 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -288,7 +557,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -303,6 +572,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -374,6 +672,118 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -393,6 +803,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalProposer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -412,6 +841,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -450,7 +892,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -465,6 +907,29 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "relay", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ { @@ -508,7 +973,7 @@ "name": "token", "outputs": [ { - "internalType": "contract ERC20Votes", + "internalType": "contract IERC5805", "name": "", "type": "address" } @@ -554,6 +1019,10 @@ ], "stateMutability": "view", "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ], "bytecode": "0x", diff --git a/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotesComp.json b/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotesComp.json index ef3e712..fad189d 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotesComp.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotesComp.json @@ -3,6 +3,33 @@ "contractName": "GovernorVotesComp", "sourceName": "contracts/governance/extensions/GovernorVotesComp.sol", "abi": [ + { + "inputs": [], + "name": "Empty", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -58,13 +85,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -127,6 +154,49 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, { "inputs": [], "name": "BALLOT_TYPEHASH", @@ -140,6 +210,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -150,7 +233,54 @@ "type": "string" } ], - "stateMutability": "pure", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "EXTENDED_BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", "type": "function" }, { @@ -245,6 +375,145 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -288,7 +557,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -303,6 +572,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -374,6 +672,118 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -393,6 +803,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalProposer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -412,6 +841,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -450,7 +892,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -465,6 +907,29 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "relay", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ { @@ -554,6 +1019,10 @@ ], "stateMutability": "view", "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ], "bytecode": "0x", diff --git a/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotesQuorumFraction.json b/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotesQuorumFraction.json index f4f8257..d184ed1 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotesQuorumFraction.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/GovernorVotesQuorumFraction.json @@ -3,6 +3,33 @@ "contractName": "GovernorVotesQuorumFraction", "sourceName": "contracts/governance/extensions/GovernorVotesQuorumFraction.sol", "abi": [ + { + "inputs": [], + "name": "Empty", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -58,13 +85,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -146,6 +173,49 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, { "inputs": [], "name": "BALLOT_TYPEHASH", @@ -159,6 +229,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -169,7 +252,54 @@ "type": "string" } ], - "stateMutability": "pure", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "EXTENDED_BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", "type": "function" }, { @@ -264,6 +394,145 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -307,7 +576,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -322,6 +591,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -393,6 +691,118 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -412,6 +822,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalProposer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -431,6 +860,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -469,7 +911,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -497,6 +939,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + } + ], + "name": "quorumNumerator", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "quorumNumerator", @@ -510,6 +971,29 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "relay", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ { @@ -553,7 +1037,7 @@ "name": "token", "outputs": [ { - "internalType": "contract ERC20Votes", + "internalType": "contract IERC5805", "name": "", "type": "address" } @@ -612,6 +1096,10 @@ ], "stateMutability": "view", "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ], "bytecode": "0x", diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ICompoundTimelock.json b/node_modules/@openzeppelin/contracts/build/contracts/ICompoundTimelock.json index c532c0f..d6ba37f 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ICompoundTimelock.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ICompoundTimelock.json @@ -1,8 +1,176 @@ { "_format": "hh-sol-artifact-1", "contractName": "ICompoundTimelock", - "sourceName": "contracts/governance/extensions/GovernorTimelockCompound.sol", + "sourceName": "contracts/vendor/compound/ICompoundTimelock.sol", "abi": [ + { + "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" + }, { "inputs": [], "name": "GRACE_PERIOD", diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IERC1363.json b/node_modules/@openzeppelin/contracts/build/contracts/IERC1363.json index c5b7396..caf5ad8 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IERC1363.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IERC1363.json @@ -110,7 +110,7 @@ }, { "internalType": "uint256", - "name": "value", + "name": "amount", "type": "uint256" } ], @@ -134,7 +134,7 @@ }, { "internalType": "uint256", - "name": "value", + "name": "amount", "type": "uint256" }, { @@ -209,7 +209,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -238,7 +238,7 @@ }, { "internalType": "uint256", - "name": "value", + "name": "amount", "type": "uint256" } ], @@ -262,7 +262,7 @@ }, { "internalType": "uint256", - "name": "value", + "name": "amount", "type": "uint256" }, { @@ -286,12 +286,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -325,7 +325,7 @@ }, { "internalType": "uint256", - "name": "value", + "name": "amount", "type": "uint256" }, { @@ -359,7 +359,7 @@ }, { "internalType": "uint256", - "name": "value", + "name": "amount", "type": "uint256" } ], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IERC1363Receiver.json b/node_modules/@openzeppelin/contracts/build/contracts/IERC1363Receiver.json index 13fac20..6ba8b11 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IERC1363Receiver.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IERC1363Receiver.json @@ -17,7 +17,7 @@ }, { "internalType": "uint256", - "name": "value", + "name": "amount", "type": "uint256" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IERC1363Spender.json b/node_modules/@openzeppelin/contracts/build/contracts/IERC1363Spender.json index 8d15a15..7be114c 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IERC1363Spender.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IERC1363Spender.json @@ -12,7 +12,7 @@ }, { "internalType": "uint256", - "name": "value", + "name": "amount", "type": "uint256" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IERC20.json b/node_modules/@openzeppelin/contracts/build/contracts/IERC20.json index ca55355..1eaa014 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IERC20.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IERC20.json @@ -137,7 +137,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -161,12 +161,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IERC20Metadata.json b/node_modules/@openzeppelin/contracts/build/contracts/IERC20Metadata.json index 62af3f5..4700d18 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IERC20Metadata.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IERC20Metadata.json @@ -176,7 +176,7 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { @@ -200,12 +200,12 @@ "inputs": [ { "internalType": "address", - "name": "sender", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "recipient", + "name": "to", "type": "address" }, { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IERC20Permit.json b/node_modules/@openzeppelin/contracts/build/contracts/IERC20Permit.json index a36869b..5a1893e 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IERC20Permit.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IERC20Permit.json @@ -1,7 +1,7 @@ { "_format": "hh-sol-artifact-1", "contractName": "IERC20Permit", - "sourceName": "contracts/token/ERC20/extensions/draft-IERC20Permit.sol", + "sourceName": "contracts/token/ERC20/extensions/IERC20Permit.sol", "abi": [ { "inputs": [], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IERC2612.json b/node_modules/@openzeppelin/contracts/build/contracts/IERC2612.json index 09367fd..334751d 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IERC2612.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IERC2612.json @@ -1,7 +1,7 @@ { "_format": "hh-sol-artifact-1", "contractName": "IERC2612", - "sourceName": "contracts/interfaces/draft-IERC2612.sol", + "sourceName": "contracts/interfaces/IERC2612.sol", "abi": [ { "inputs": [], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IERC721.json b/node_modules/@openzeppelin/contracts/build/contracts/IERC721.json index 6d69996..e3a1231 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IERC721.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IERC721.json @@ -237,7 +237,7 @@ }, { "internalType": "bool", - "name": "_approved", + "name": "approved", "type": "bool" } ], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IERC721Enumerable.json b/node_modules/@openzeppelin/contracts/build/contracts/IERC721Enumerable.json index 1ffd17b..a9c1b6d 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IERC721Enumerable.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IERC721Enumerable.json @@ -237,7 +237,7 @@ }, { "internalType": "bool", - "name": "_approved", + "name": "approved", "type": "bool" } ], @@ -301,7 +301,7 @@ "outputs": [ { "internalType": "uint256", - "name": "tokenId", + "name": "", "type": "uint256" } ], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IERC721Metadata.json b/node_modules/@openzeppelin/contracts/build/contracts/IERC721Metadata.json index 606da3a..baab922 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IERC721Metadata.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IERC721Metadata.json @@ -250,7 +250,7 @@ }, { "internalType": "bool", - "name": "_approved", + "name": "approved", "type": "bool" } ], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IGovernor.json b/node_modules/@openzeppelin/contracts/build/contracts/IGovernor.json index c110809..adc25f0 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IGovernor.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IGovernor.json @@ -58,13 +58,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -127,6 +127,62 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -137,7 +193,41 @@ "type": "string" } ], - "stateMutability": "pure", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", "type": "function" }, { @@ -232,6 +322,102 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -275,7 +461,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -290,6 +476,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -380,6 +595,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalProposer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -437,7 +671,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IGovernorCompatibilityBravo.json b/node_modules/@openzeppelin/contracts/build/contracts/IGovernorCompatibilityBravo.json index 115e1ae..1770361 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IGovernorCompatibilityBravo.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IGovernorCompatibilityBravo.json @@ -58,13 +58,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -127,6 +127,62 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -137,7 +193,7 @@ "type": "string" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { @@ -153,6 +209,40 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -245,6 +335,102 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -376,7 +562,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -391,6 +577,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -489,20 +704,26 @@ "type": "uint256" } ], - "name": "proposalSnapshot", + "name": "proposalProposer", "outputs": [ { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "proposalThreshold", + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalSnapshot", "outputs": [ { "internalType": "uint256", @@ -667,7 +888,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/IGovernorTimelock.json b/node_modules/@openzeppelin/contracts/build/contracts/IGovernorTimelock.json index 07a2ddc..ea5bd9c 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/IGovernorTimelock.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/IGovernorTimelock.json @@ -58,13 +58,13 @@ { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "voteEnd", "type": "uint256" }, { @@ -146,6 +146,62 @@ "name": "VoteCast", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "VoteCastWithParams", + "type": "event" + }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "COUNTING_MODE", @@ -156,7 +212,41 @@ "type": "string" } ], - "stateMutability": "pure", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "descriptionHash", + "type": "bytes32" + } + ], + "name": "cancel", + "outputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", "type": "function" }, { @@ -251,6 +341,102 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "castVoteWithReasonAndParams", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteWithReasonAndParamsBySig", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -294,7 +480,7 @@ }, { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], @@ -309,6 +495,35 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "getVotesWithParams", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -418,6 +633,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalProposer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -509,7 +743,7 @@ "inputs": [ { "internalType": "uint256", - "name": "blockNumber", + "name": "timepoint", "type": "uint256" } ], diff --git a/node_modules/@openzeppelin/contracts/build/contracts/Initializable.json b/node_modules/@openzeppelin/contracts/build/contracts/Initializable.json index 73e4174..96741fd 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/Initializable.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/Initializable.json @@ -2,7 +2,21 @@ "_format": "hh-sol-artifact-1", "contractName": "Initializable", "sourceName": "contracts/proxy/utils/Initializable.sol", - "abi": [], + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + } + ], "bytecode": "0x", "deployedBytecode": "0x", "linkReferences": {}, diff --git a/node_modules/@openzeppelin/contracts/build/contracts/Math.json b/node_modules/@openzeppelin/contracts/build/contracts/Math.json index 84e34a3..ce20d6c 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/Math.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/Math.json @@ -3,8 +3,8 @@ "contractName": "Math", "sourceName": "contracts/utils/math/Math.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c197dd04e81d5f5b8f7425e916cdcd5a0a46e9402ab1e1383e047ecbd0a38ace64736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c197dd04e81d5f5b8f7425e916cdcd5a0a46e9402ab1e1383e047ecbd0a38ace64736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a3421fb69c380795c0236420a50209dc26fa39d309540fbc9f7eaed7c161e7a764736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a3421fb69c380795c0236420a50209dc26fa39d309540fbc9f7eaed7c161e7a764736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/MerkleProof.json b/node_modules/@openzeppelin/contracts/build/contracts/MerkleProof.json index 562a71a..3c62dab 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/MerkleProof.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/MerkleProof.json @@ -3,8 +3,8 @@ "contractName": "MerkleProof", "sourceName": "contracts/utils/cryptography/MerkleProof.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d2324771bdd9a795702ace3c783b52b05a6f0516c23f0d6b90f01e96d8ccd83c64736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d2324771bdd9a795702ace3c783b52b05a6f0516c23f0d6b90f01e96d8ccd83c64736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b07af84d0b62b8e5d8c21a4d044e526b383407e0dd5c6adefa88a1e0e79eeb3664736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b07af84d0b62b8e5d8c21a4d044e526b383407e0dd5c6adefa88a1e0e79eeb3664736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/MinimalForwarder.json b/node_modules/@openzeppelin/contracts/build/contracts/MinimalForwarder.json index cb9fe99..84a150a 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/MinimalForwarder.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/MinimalForwarder.json @@ -8,6 +8,71 @@ "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -145,8 +210,8 @@ "type": "function" } ], - "bytecode": "0x61012060405234801561001157600080fd5b50604080518082018252601081526f26b4b734b6b0b62337b93bb0b93232b960811b6020808301918252835180850185526005815264302e302e3160d81b908201529151902060c08181527fae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc19916381188560e08190524660a081815286517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818901969096526060810193909352608080840192909252308382015286518084039091018152919092019094528351939092019290922090526101005260805160a05160c05160e05161010051610b4461013360003960006104ce0152600061051d015260006104f80152600061047a015260006104a30152610b446000f3fe6080604052600436106100345760003560e01c80632d0335ab1461003957806347153f8214610082578063bf5d3bdb146100a3575b600080fd5b34801561004557600080fd5b5061006f6100543660046108fe565b6001600160a01b031660009081526020819052604090205490565b6040519081526020015b60405180910390f35b61009561009036600461092c565b6100d3565b604051610079929190610a19565b3480156100af57600080fd5b506100c36100be36600461092c565b610280565b6040519015158152602001610079565b600060606100e2858585610280565b61014e5760405162461bcd60e51b815260206004820152603260248201527f4d696e696d616c466f727761726465723a207369676e617475726520646f6573604482015271081b9bdd081b585d18da081c995c5d595cdd60721b60648201526084015b60405180910390fd5b61015d60808601356001610a9a565b60008061016d60208901896108fe565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000808660200160208101906101a791906108fe565b6001600160a01b0316606088013560408901356101c760a08b018b610a55565b6101d460208d018d6108fe565b6040516020016101e6939291906109d4565b60408051601f1981840301815290829052610200916109fd565b600060405180830381858888f193505050503d806000811461023e576040519150601f19603f3d011682016040523d82523d6000602084013e610243565b606091505b509092509050610258603f6060890135610abe565b5a1161027457634e487b7160e01b600052600160045260246000fd5b90969095509350505050565b60008061039384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061038d92507fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e4891506102f0905060208a018a6108fe565b61030060408b0160208c016108fe565b60408b013560608c013560808d013561031c60a08f018f610a55565b60405161032a9291906109c4565b6040805191829003822060208301989098526001600160a01b0396871690820152949093166060850152608084019190915260a083015260c082015260e081019190915261010001604051602081830303815290604052805190602001206103fe565b90610452565b905060808501356000806103aa60208901896108fe565b6001600160a01b03166001600160a01b03168152602001908152602001600020541480156103f557506103e060208601866108fe565b6001600160a01b0316816001600160a01b0316145b95945050505050565b600061044c61040b610476565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b6000806000610461858561056c565b9150915061046e816105dc565b509392505050565b60007f00000000000000000000000000000000000000000000000000000000000000004614156104c757507f0000000000000000000000000000000000000000000000000000000000000000610569565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c090920190925280519101205b90565b6000808251604114156105a35760208301516040840151606085015160001a610597878285856107e2565b945094505050506105d5565b8251604014156105cd57602083015160408401516105c28683836108cf565b9350935050506105d5565b506000905060025b9250929050565b60008160048111156105fe57634e487b7160e01b600052602160045260246000fd5b1415610609576107df565b600181600481111561062b57634e487b7160e01b600052602160045260246000fd5b14156106795760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610145565b600281600481111561069b57634e487b7160e01b600052602160045260246000fd5b14156106e95760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610145565b600381600481111561070b57634e487b7160e01b600052602160045260246000fd5b14156107645760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610145565b600481600481111561078657634e487b7160e01b600052602160045260246000fd5b14156107df5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610145565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561081957506000905060036108c6565b8460ff16601b1415801561083157508460ff16601c14155b1561084257506000905060046108c6565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610896573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166108bf576000600192509250506108c6565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b016108f0878288856107e2565b935093505050935093915050565b60006020828403121561090f578081fd5b81356001600160a01b0381168114610925578182fd5b9392505050565b600080600060408486031215610940578182fd5b833567ffffffffffffffff80821115610957578384fd5b9085019060c0828803121561096a578384fd5b9093506020850135908082111561097f578384fd5b818601915086601f830112610992578384fd5b8135818111156109a0578485fd5b8760208285010111156109b1578485fd5b6020830194508093505050509250925092565b6000828483379101908152919050565b6000838583375060609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60008251610a0f818460208701610ade565b9190910192915050565b60008315158252604060208301528251806040840152610a40816060850160208701610ade565b601f01601f1916919091016060019392505050565b6000808335601e19843603018112610a6b578283fd5b83018035915067ffffffffffffffff821115610a85578283fd5b6020019150368190038213156105d557600080fd5b60008219821115610ab957634e487b7160e01b81526011600452602481fd5b500190565b600082610ad957634e487b7160e01b81526012600452602481fd5b500490565b60005b83811015610af9578181015183820152602001610ae1565b83811115610b08576000848401525b5050505056fea264697066735822122053d18eea9cfddf3496703497ba0711c4caff2d2220280bab4776f1f67731324c64736f6c63430008030033", - "deployedBytecode": "0x6080604052600436106100345760003560e01c80632d0335ab1461003957806347153f8214610082578063bf5d3bdb146100a3575b600080fd5b34801561004557600080fd5b5061006f6100543660046108fe565b6001600160a01b031660009081526020819052604090205490565b6040519081526020015b60405180910390f35b61009561009036600461092c565b6100d3565b604051610079929190610a19565b3480156100af57600080fd5b506100c36100be36600461092c565b610280565b6040519015158152602001610079565b600060606100e2858585610280565b61014e5760405162461bcd60e51b815260206004820152603260248201527f4d696e696d616c466f727761726465723a207369676e617475726520646f6573604482015271081b9bdd081b585d18da081c995c5d595cdd60721b60648201526084015b60405180910390fd5b61015d60808601356001610a9a565b60008061016d60208901896108fe565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000808660200160208101906101a791906108fe565b6001600160a01b0316606088013560408901356101c760a08b018b610a55565b6101d460208d018d6108fe565b6040516020016101e6939291906109d4565b60408051601f1981840301815290829052610200916109fd565b600060405180830381858888f193505050503d806000811461023e576040519150601f19603f3d011682016040523d82523d6000602084013e610243565b606091505b509092509050610258603f6060890135610abe565b5a1161027457634e487b7160e01b600052600160045260246000fd5b90969095509350505050565b60008061039384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061038d92507fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e4891506102f0905060208a018a6108fe565b61030060408b0160208c016108fe565b60408b013560608c013560808d013561031c60a08f018f610a55565b60405161032a9291906109c4565b6040805191829003822060208301989098526001600160a01b0396871690820152949093166060850152608084019190915260a083015260c082015260e081019190915261010001604051602081830303815290604052805190602001206103fe565b90610452565b905060808501356000806103aa60208901896108fe565b6001600160a01b03166001600160a01b03168152602001908152602001600020541480156103f557506103e060208601866108fe565b6001600160a01b0316816001600160a01b0316145b95945050505050565b600061044c61040b610476565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b6000806000610461858561056c565b9150915061046e816105dc565b509392505050565b60007f00000000000000000000000000000000000000000000000000000000000000004614156104c757507f0000000000000000000000000000000000000000000000000000000000000000610569565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c090920190925280519101205b90565b6000808251604114156105a35760208301516040840151606085015160001a610597878285856107e2565b945094505050506105d5565b8251604014156105cd57602083015160408401516105c28683836108cf565b9350935050506105d5565b506000905060025b9250929050565b60008160048111156105fe57634e487b7160e01b600052602160045260246000fd5b1415610609576107df565b600181600481111561062b57634e487b7160e01b600052602160045260246000fd5b14156106795760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610145565b600281600481111561069b57634e487b7160e01b600052602160045260246000fd5b14156106e95760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610145565b600381600481111561070b57634e487b7160e01b600052602160045260246000fd5b14156107645760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610145565b600481600481111561078657634e487b7160e01b600052602160045260246000fd5b14156107df5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610145565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561081957506000905060036108c6565b8460ff16601b1415801561083157508460ff16601c14155b1561084257506000905060046108c6565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610896573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166108bf576000600192509250506108c6565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b016108f0878288856107e2565b935093505050935093915050565b60006020828403121561090f578081fd5b81356001600160a01b0381168114610925578182fd5b9392505050565b600080600060408486031215610940578182fd5b833567ffffffffffffffff80821115610957578384fd5b9085019060c0828803121561096a578384fd5b9093506020850135908082111561097f578384fd5b818601915086601f830112610992578384fd5b8135818111156109a0578485fd5b8760208285010111156109b1578485fd5b6020830194508093505050509250925092565b6000828483379101908152919050565b6000838583375060609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60008251610a0f818460208701610ade565b9190910192915050565b60008315158252604060208301528251806040840152610a40816060850160208701610ade565b601f01601f1916919091016060019392505050565b6000808335601e19843603018112610a6b578283fd5b83018035915067ffffffffffffffff821115610a85578283fd5b6020019150368190038213156105d557600080fd5b60008219821115610ab957634e487b7160e01b81526011600452602481fd5b500190565b600082610ad957634e487b7160e01b81526012600452602481fd5b500490565b60005b83811015610af9578181015183820152602001610ae1565b83811115610b08576000848401525b5050505056fea264697066735822122053d18eea9cfddf3496703497ba0711c4caff2d2220280bab4776f1f67731324c64736f6c63430008030033", + "bytecode": "0x6101606040523480156200001257600080fd5b506040518060400160405280601081526020016f26b4b734b6b0b62337b93bb0b93232b960811b81525060405180604001604052806005815260200164302e302e3160d81b815250620000756000836200012f60201b620004a71790919060201c565b61012052620000928160016200012f602090811b620004a717901c565b61014052815160208084019190912060e052815190820120610100524660a0526200012060e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526200032e565b60006020835110156200014f57620001478362000183565b90506200017d565b826200016683620001cf60201b620004e01760201c565b8151620001779260200190620001d2565b5060ff90505b92915050565b600080829050601f81511115620001ba578260405163305a27a960e01b8152600401620001b1919062000278565b60405180910390fd5b8051620001c782620002d0565b179392505050565b90565b828054620001e090620002f8565b90600052602060002090601f0160209004810192826200020457600085556200024f565b82601f106200021f57805160ff19168380011785556200024f565b828001600101855582156200024f579182015b828111156200024f57825182559160200191906001019062000232565b506200025d92915062000261565b5090565b5b808211156200025d576000815560010162000262565b600060208083528351808285015260005b81811015620002a75785810183015185820160400152820162000289565b81811115620002ba576000604083870101525b50601f01601f1916929092016040019392505050565b80516020808301519190811015620002f2576000198160200360031b1b821691505b50919050565b600181811c908216806200030d57607f821691505b602082108103620002f257634e487b7160e01b600052602260045260246000fd5b60805160a05160c05160e051610100516101205161014051610e1e6200038960003960006102d8015260006102ae0152600061072f01526000610707015260006106620152600061068c015260006106b60152610e1e6000f3fe60806040526004361061003f5760003560e01c80632d0335ab1461004457806347153f821461008d57806384b0196e146100ae578063bf5d3bdb146100d6575b600080fd5b34801561005057600080fd5b5061007a61005f366004610a9c565b6001600160a01b031660009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100a061009b366004610acc565b610106565b604051610084929190610bc7565b3480156100ba57600080fd5b506100c36102a0565b6040516100849796959493929190610bea565b3480156100e257600080fd5b506100f66100f1366004610acc565b610328565b6040519015158152602001610084565b60006060610115858585610328565b6101815760405162461bcd60e51b815260206004820152603260248201527f4d696e696d616c466f727761726465723a207369676e617475726520646f6573604482015271081b9bdd081b585d18da081c995c5d595cdd60721b60648201526084015b60405180910390fd5b61019060808601356001610c80565b600260006101a16020890189610a9c565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000808660200160208101906101db9190610a9c565b6001600160a01b0316606088013560408901356101fb60a08b018b610ca6565b61020860208d018d610a9c565b60405160200161021a93929190610ced565b60408051601f198184030181529082905261023491610d13565b600060405180830381858888f193505050503d8060008114610272576040519150601f19603f3d011682016040523d82523d6000602084013e610277565b606091505b50909250905061028c603f6060890135610d2f565b5a1161029457fe5b90969095509350505050565b6000606080828080836102d37f0000000000000000000000000000000000000000000000000000000000000000836104e3565b6102fe7f000000000000000000000000000000000000000000000000000000000000000060016104e3565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60008061043b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061043592507fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e489150610398905060208a018a610a9c565b6103a860408b0160208c01610a9c565b60408b013560608c013560808d01356103c460a08f018f610ca6565b6040516103d2929190610d51565b6040805191829003822060208301989098526001600160a01b0396871690820152949093166060850152608084019190915260a083015260c082015260e08101919091526101000160405160208183030381529060405280519060200120610587565b906105b4565b90506080850135600260006104536020890189610a9c565b6001600160a01b03166001600160a01b031681526020019081526020016000205414801561049e57506104896020860186610a9c565b6001600160a01b0316816001600160a01b0316145b95945050505050565b60006020835110156104c3576104bc836105d8565b90506104da565b828281516104d49260200190610a03565b5060ff90505b92915050565b90565b606060ff83146104f6576104bc83610616565b81805461050290610d61565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90610d61565b801561057b5780601f106105505761010080835404028352916020019161057b565b820191906000526020600020905b81548152906001019060200180831161055e57829003601f168201915b505050505090506104da565b60006104da610594610655565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006105c38585610785565b915091506105d0816107ca565b509392505050565b600080829050601f81511115610603578260405163305a27a960e01b81526004016101789190610d9b565b805161060e82610dae565b179392505050565b6060600061062383610917565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156106ae57507f000000000000000000000000000000000000000000000000000000000000000046145b156106d857507f000000000000000000000000000000000000000000000000000000000000000090565b610780604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b60008082516041036107bb5760208301516040840151606085015160001a6107af8782858561093f565b945094505050506107c3565b506000905060025b9250929050565b60008160048111156107de576107de610dd2565b036107e65750565b60018160048111156107fa576107fa610dd2565b036108475760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610178565b600281600481111561085b5761085b610dd2565b036108a85760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610178565b60038160048111156108bc576108bc610dd2565b036109145760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610178565b50565b600060ff8216601f8111156104da57604051632cd44ac360e21b815260040160405180910390fd5b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561097657506000905060036109fa565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156109ca573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166109f3576000600192509250506109fa565b9150600090505b94509492505050565b828054610a0f90610d61565b90600052602060002090601f016020900481019282610a315760008555610a77565b82601f10610a4a57805160ff1916838001178555610a77565b82800160010185558215610a77579182015b82811115610a77578251825591602001919060010190610a5c565b50610a83929150610a87565b5090565b5b80821115610a835760008155600101610a88565b600060208284031215610aae57600080fd5b81356001600160a01b0381168114610ac557600080fd5b9392505050565b600080600060408486031215610ae157600080fd5b833567ffffffffffffffff80821115610af957600080fd5b9085019060c08288031215610b0d57600080fd5b90935060208501359080821115610b2357600080fd5b818601915086601f830112610b3757600080fd5b813581811115610b4657600080fd5b876020828501011115610b5857600080fd5b6020830194508093505050509250925092565b60005b83811015610b86578181015183820152602001610b6e565b83811115610b95576000848401525b50505050565b60008151808452610bb3816020860160208601610b6b565b601f01601f19169290920160200192915050565b8215158152604060208201526000610be26040830184610b9b565b949350505050565b60ff60f81b881681526000602060e081840152610c0a60e084018a610b9b565b8381036040850152610c1c818a610b9b565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015610c6e57835183529284019291840191600101610c52565b50909c9b505050505050505050505050565b60008219821115610ca157634e487b7160e01b600052601160045260246000fd5b500190565b6000808335601e19843603018112610cbd57600080fd5b83018035915067ffffffffffffffff821115610cd857600080fd5b6020019150368190038213156107c357600080fd5b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60008251610d25818460208701610b6b565b9190910192915050565b600082610d4c57634e487b7160e01b600052601260045260246000fd5b500490565b8183823760009101908152919050565b600181811c90821680610d7557607f821691505b602082108103610d9557634e487b7160e01b600052602260045260246000fd5b50919050565b602081526000610ac56020830184610b9b565b80516020808301519190811015610d955760001960209190910360031b1b16919050565b634e487b7160e01b600052602160045260246000fdfea26469706673582212206fe5ed5ceb0154292fd4bec46d808cd37f1bb24363f695e1a84a3f4f9c71b78164736f6c634300080d0033", + "deployedBytecode": "0x60806040526004361061003f5760003560e01c80632d0335ab1461004457806347153f821461008d57806384b0196e146100ae578063bf5d3bdb146100d6575b600080fd5b34801561005057600080fd5b5061007a61005f366004610a9c565b6001600160a01b031660009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100a061009b366004610acc565b610106565b604051610084929190610bc7565b3480156100ba57600080fd5b506100c36102a0565b6040516100849796959493929190610bea565b3480156100e257600080fd5b506100f66100f1366004610acc565b610328565b6040519015158152602001610084565b60006060610115858585610328565b6101815760405162461bcd60e51b815260206004820152603260248201527f4d696e696d616c466f727761726465723a207369676e617475726520646f6573604482015271081b9bdd081b585d18da081c995c5d595cdd60721b60648201526084015b60405180910390fd5b61019060808601356001610c80565b600260006101a16020890189610a9c565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000808660200160208101906101db9190610a9c565b6001600160a01b0316606088013560408901356101fb60a08b018b610ca6565b61020860208d018d610a9c565b60405160200161021a93929190610ced565b60408051601f198184030181529082905261023491610d13565b600060405180830381858888f193505050503d8060008114610272576040519150601f19603f3d011682016040523d82523d6000602084013e610277565b606091505b50909250905061028c603f6060890135610d2f565b5a1161029457fe5b90969095509350505050565b6000606080828080836102d37f0000000000000000000000000000000000000000000000000000000000000000836104e3565b6102fe7f000000000000000000000000000000000000000000000000000000000000000060016104e3565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60008061043b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061043592507fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e489150610398905060208a018a610a9c565b6103a860408b0160208c01610a9c565b60408b013560608c013560808d01356103c460a08f018f610ca6565b6040516103d2929190610d51565b6040805191829003822060208301989098526001600160a01b0396871690820152949093166060850152608084019190915260a083015260c082015260e08101919091526101000160405160208183030381529060405280519060200120610587565b906105b4565b90506080850135600260006104536020890189610a9c565b6001600160a01b03166001600160a01b031681526020019081526020016000205414801561049e57506104896020860186610a9c565b6001600160a01b0316816001600160a01b0316145b95945050505050565b60006020835110156104c3576104bc836105d8565b90506104da565b828281516104d49260200190610a03565b5060ff90505b92915050565b90565b606060ff83146104f6576104bc83610616565b81805461050290610d61565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90610d61565b801561057b5780601f106105505761010080835404028352916020019161057b565b820191906000526020600020905b81548152906001019060200180831161055e57829003601f168201915b505050505090506104da565b60006104da610594610655565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006105c38585610785565b915091506105d0816107ca565b509392505050565b600080829050601f81511115610603578260405163305a27a960e01b81526004016101789190610d9b565b805161060e82610dae565b179392505050565b6060600061062383610917565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156106ae57507f000000000000000000000000000000000000000000000000000000000000000046145b156106d857507f000000000000000000000000000000000000000000000000000000000000000090565b610780604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b60008082516041036107bb5760208301516040840151606085015160001a6107af8782858561093f565b945094505050506107c3565b506000905060025b9250929050565b60008160048111156107de576107de610dd2565b036107e65750565b60018160048111156107fa576107fa610dd2565b036108475760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610178565b600281600481111561085b5761085b610dd2565b036108a85760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610178565b60038160048111156108bc576108bc610dd2565b036109145760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610178565b50565b600060ff8216601f8111156104da57604051632cd44ac360e21b815260040160405180910390fd5b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561097657506000905060036109fa565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156109ca573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166109f3576000600192509250506109fa565b9150600090505b94509492505050565b828054610a0f90610d61565b90600052602060002090601f016020900481019282610a315760008555610a77565b82601f10610a4a57805160ff1916838001178555610a77565b82800160010185558215610a77579182015b82811115610a77578251825591602001919060010190610a5c565b50610a83929150610a87565b5090565b5b80821115610a835760008155600101610a88565b600060208284031215610aae57600080fd5b81356001600160a01b0381168114610ac557600080fd5b9392505050565b600080600060408486031215610ae157600080fd5b833567ffffffffffffffff80821115610af957600080fd5b9085019060c08288031215610b0d57600080fd5b90935060208501359080821115610b2357600080fd5b818601915086601f830112610b3757600080fd5b813581811115610b4657600080fd5b876020828501011115610b5857600080fd5b6020830194508093505050509250925092565b60005b83811015610b86578181015183820152602001610b6e565b83811115610b95576000848401525b50505050565b60008151808452610bb3816020860160208601610b6b565b601f01601f19169290920160200192915050565b8215158152604060208201526000610be26040830184610b9b565b949350505050565b60ff60f81b881681526000602060e081840152610c0a60e084018a610b9b565b8381036040850152610c1c818a610b9b565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015610c6e57835183529284019291840191600101610c52565b50909c9b505050505050505050505050565b60008219821115610ca157634e487b7160e01b600052601160045260246000fd5b500190565b6000808335601e19843603018112610cbd57600080fd5b83018035915067ffffffffffffffff821115610cd857600080fd5b6020019150368190038213156107c357600080fd5b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60008251610d25818460208701610b6b565b9190910192915050565b600082610d4c57634e487b7160e01b600052601260045260246000fd5b500490565b8183823760009101908152919050565b600181811c90821680610d7557607f821691505b602082108103610d9557634e487b7160e01b600052602260045260246000fd5b50919050565b602081526000610ac56020830184610b9b565b80516020808301519190811015610d955760001960209190910360031b1b16919050565b634e487b7160e01b600052602160045260246000fdfea26469706673582212206fe5ed5ceb0154292fd4bec46d808cd37f1bb24363f695e1a84a3f4f9c71b78164736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/PaymentSplitter.json b/node_modules/@openzeppelin/contracts/build/contracts/PaymentSplitter.json index 4d5c902..31c59dc 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/PaymentSplitter.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/PaymentSplitter.json @@ -19,6 +19,31 @@ "stateMutability": "payable", "type": "constructor" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "ERC20PaymentReleased", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -95,6 +120,49 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "releasable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "releasable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -108,6 +176,48 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "release", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "released", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -146,6 +256,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "totalReleased", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "totalReleased", @@ -177,8 +306,8 @@ "type": "receive" } ], - "bytecode": "0x608060405260405162000b6a38038062000b6a8339810160408190526200002691620003db565b8051825114620000985760405162461bcd60e51b815260206004820152603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b60648201526084015b60405180910390fd5b6000825111620000eb5760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7453706c69747465723a206e6f2070617965657300000000000060448201526064016200008f565b60005b82518110156200016f576200015a8382815181106200011d57634e487b7160e01b600052603260045260246000fd5b60200260200101518383815181106200014657634e487b7160e01b600052603260045260246000fd5b60200260200101516200017860201b60201c565b8062000166816200052c565b915050620000ee565b50505062000576565b6001600160a01b038216620001e55760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b60648201526084016200008f565b60008111620002375760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a2073686172657320617265203000000060448201526064016200008f565b6001600160a01b03821660009081526002602052604090205415620002b35760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b60648201526084016200008f565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0384169081179091556000908152600260205260408120829055546200031b90829062000511565b600055604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b600082601f83011262000375578081fd5b815160206200038e6200038883620004eb565b620004b8565b80838252828201915082860187848660051b8901011115620003ae578586fd5b855b85811015620003ce57815184529284019290840190600101620003b0565b5090979650505050505050565b60008060408385031215620003ee578182fd5b82516001600160401b038082111562000405578384fd5b818501915085601f83011262000419578384fd5b815160206200042c6200038883620004eb565b8083825282820191508286018a848660051b89010111156200044c578889fd5b8896505b84871015620004855780516001600160a01b03811681146200047057898afd5b83526001969096019591830191830162000450565b50918801519196509093505050808211156200049f578283fd5b50620004ae8582860162000364565b9150509250929050565b604051601f8201601f191681016001600160401b0381118282101715620004e357620004e362000560565b604052919050565b60006001600160401b0382111562000507576200050762000560565b5060051b60200190565b600082198211156200052757620005276200054a565b500190565b60006000198214156200054357620005436200054a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6105e480620005866000396000f3fe6080604052600436106100595760003560e01c806319165587146100a75780633a98ef39146100c95780638b83209b146100ed5780639852595c14610125578063ce7c2ac21461015b578063e33b7de314610191576100a2565b366100a2577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b3480156100b357600080fd5b506100c76100c23660046104d7565b6101a6565b005b3480156100d557600080fd5b506000545b6040519081526020015b60405180910390f35b3480156100f957600080fd5b5061010d6101083660046104fa565b61037b565b6040516001600160a01b0390911681526020016100e4565b34801561013157600080fd5b506100da6101403660046104d7565b6001600160a01b031660009081526003602052604090205490565b34801561016757600080fd5b506100da6101763660046104d7565b6001600160a01b031660009081526002602052604090205490565b34801561019d57600080fd5b506001546100da565b6001600160a01b03811660009081526002602052604090205461021f5760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b60648201526084015b60405180910390fd5b60006001544761022f9190610512565b6001600160a01b03831660009081526003602090815260408083205483546002909352908320549394509192610265908561054a565b61026f919061052a565b6102799190610569565b9050806102dc5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608401610216565b6001600160a01b038316600090815260036020526040902054610300908290610512565b6001600160a01b038416600090815260036020526040902055600154610327908290610512565b60015561033483826103b9565b604080516001600160a01b0385168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505050565b60006004828154811061039e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031692915050565b804710156104095760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610216565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610456576040519150601f19603f3d011682016040523d82523d6000602084013e61045b565b606091505b50509050806104d25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610216565b505050565b6000602082840312156104e8578081fd5b81356104f381610596565b9392505050565b60006020828403121561050b578081fd5b5035919050565b6000821982111561052557610525610580565b500190565b60008261054557634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561056457610564610580565b500290565b60008282101561057b5761057b610580565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146105ab57600080fd5b5056fea2646970667358221220fd47b4c67cba81d391f2a7510b725d33aab03c0d4da3265f86bffb2017e1ec8c64736f6c63430008030033", - "deployedBytecode": "0x6080604052600436106100595760003560e01c806319165587146100a75780633a98ef39146100c95780638b83209b146100ed5780639852595c14610125578063ce7c2ac21461015b578063e33b7de314610191576100a2565b366100a2577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b3480156100b357600080fd5b506100c76100c23660046104d7565b6101a6565b005b3480156100d557600080fd5b506000545b6040519081526020015b60405180910390f35b3480156100f957600080fd5b5061010d6101083660046104fa565b61037b565b6040516001600160a01b0390911681526020016100e4565b34801561013157600080fd5b506100da6101403660046104d7565b6001600160a01b031660009081526003602052604090205490565b34801561016757600080fd5b506100da6101763660046104d7565b6001600160a01b031660009081526002602052604090205490565b34801561019d57600080fd5b506001546100da565b6001600160a01b03811660009081526002602052604090205461021f5760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b60648201526084015b60405180910390fd5b60006001544761022f9190610512565b6001600160a01b03831660009081526003602090815260408083205483546002909352908320549394509192610265908561054a565b61026f919061052a565b6102799190610569565b9050806102dc5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608401610216565b6001600160a01b038316600090815260036020526040902054610300908290610512565b6001600160a01b038416600090815260036020526040902055600154610327908290610512565b60015561033483826103b9565b604080516001600160a01b0385168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505050565b60006004828154811061039e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031692915050565b804710156104095760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610216565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610456576040519150601f19603f3d011682016040523d82523d6000602084013e61045b565b606091505b50509050806104d25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610216565b505050565b6000602082840312156104e8578081fd5b81356104f381610596565b9392505050565b60006020828403121561050b578081fd5b5035919050565b6000821982111561052557610525610580565b500190565b60008261054557634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561056457610564610580565b500290565b60008282101561057b5761057b610580565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146105ab57600080fd5b5056fea2646970667358221220fd47b4c67cba81d391f2a7510b725d33aab03c0d4da3265f86bffb2017e1ec8c64736f6c63430008030033", + "bytecode": "0x6080604052604051620011d3380380620011d383398101604081905262000026916200042e565b8051825114620000985760405162461bcd60e51b815260206004820152603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b60648201526084015b60405180910390fd5b6000825111620000eb5760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7453706c69747465723a206e6f2070617965657300000000000060448201526064016200008f565b60005b82518110156200015757620001428382815181106200011157620001116200050c565b60200260200101518383815181106200012e576200012e6200050c565b60200260200101516200016060201b60201c565b806200014e8162000538565b915050620000ee565b5050506200056f565b6001600160a01b038216620001cd5760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b60648201526084016200008f565b600081116200021f5760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a2073686172657320617265203000000060448201526064016200008f565b6001600160a01b038216600090815260026020526040902054156200029b5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b60648201526084016200008f565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0384169081179091556000908152600260205260408120829055546200030390829062000554565b600055604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200038d576200038d6200034c565b604052919050565b60006001600160401b03821115620003b157620003b16200034c565b5060051b60200190565b600082601f830112620003cd57600080fd5b81516020620003e6620003e08362000395565b62000362565b82815260059290921b840181019181810190868411156200040657600080fd5b8286015b848110156200042357805183529183019183016200040a565b509695505050505050565b600080604083850312156200044257600080fd5b82516001600160401b03808211156200045a57600080fd5b818501915085601f8301126200046f57600080fd5b8151602062000482620003e08362000395565b82815260059290921b84018101918181019089841115620004a257600080fd5b948201945b83861015620004d95785516001600160a01b0381168114620004c95760008081fd5b82529482019490820190620004a7565b91880151919650909350505080821115620004f357600080fd5b506200050285828601620003bb565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016200054d576200054d62000522565b5060010190565b600082198211156200056a576200056a62000522565b500190565b610c54806200057f6000396000f3fe6080604052600436106100a05760003560e01c80639852595c116100645780639852595c146101d2578063a3f8eace14610208578063c45ac05014610228578063ce7c2ac214610248578063d79779b21461027e578063e33b7de3146102b457600080fd5b806319165587146100ee5780633a98ef3914610110578063406072a91461013457806348b750441461017a5780638b83209b1461019a57600080fd5b366100e9577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b3480156100fa57600080fd5b5061010e6101093660046109c8565b6102c9565b005b34801561011c57600080fd5b506000545b6040519081526020015b60405180910390f35b34801561014057600080fd5b5061012161014f3660046109e5565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561018657600080fd5b5061010e6101953660046109e5565b6103b9565b3480156101a657600080fd5b506101ba6101b5366004610a1e565b6104ca565b6040516001600160a01b03909116815260200161012b565b3480156101de57600080fd5b506101216101ed3660046109c8565b6001600160a01b031660009081526003602052604090205490565b34801561021457600080fd5b506101216102233660046109c8565b6104fa565b34801561023457600080fd5b506101216102433660046109e5565b610542565b34801561025457600080fd5b506101216102633660046109c8565b6001600160a01b031660009081526002602052604090205490565b34801561028a57600080fd5b506101216102993660046109c8565b6001600160a01b031660009081526005602052604090205490565b3480156102c057600080fd5b50600154610121565b6001600160a01b0381166000908152600260205260409020546103075760405162461bcd60e51b81526004016102fe90610a37565b60405180910390fd5b6000610312826104fa565b9050806000036103345760405162461bcd60e51b81526004016102fe90610a7d565b80600160008282546103469190610ade565b90915550506001600160a01b0382166000908152600360205260409020805482019055610373828261060d565b604080516001600160a01b0384168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a15050565b6001600160a01b0381166000908152600260205260409020546103ee5760405162461bcd60e51b81526004016102fe90610a37565b60006103fa8383610542565b90508060000361041c5760405162461bcd60e51b81526004016102fe90610a7d565b6001600160a01b03831660009081526005602052604081208054839290610444908490610ade565b90915550506001600160a01b03808416600090815260066020908152604080832093861683529290522080548201905561047f83838361072b565b604080516001600160a01b038481168252602082018490528516917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a2505050565b6000600482815481106104df576104df610af6565b6000918252602090912001546001600160a01b031692915050565b60008061050660015490565b6105109047610ade565b905061053b8382610536866001600160a01b031660009081526003602052604090205490565b61077d565b9392505050565b6001600160a01b03821660009081526005602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156105a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c59190610b0c565b6105cf9190610ade565b6001600160a01b03808616600090815260066020908152604080832093881683529290522054909150610605908490839061077d565b949350505050565b8047101561065d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102fe565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106aa576040519150601f19603f3d011682016040523d82523d6000602084013e6106af565b606091505b50509050806107265760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102fe565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107269084906107b8565b600080546001600160a01b0385168252600260205260408220548391906107a49086610b25565b6107ae9190610b44565b6106059190610b66565b600061080d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661088d9092919063ffffffff16565b905080516000148061082e57508080602001905181019061082e9190610b7d565b6107265760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102fe565b6060610605848460008585600080866001600160a01b031685876040516108b49190610bcf565b60006040518083038185875af1925050503d80600081146108f1576040519150601f19603f3d011682016040523d82523d6000602084013e6108f6565b606091505b509150915061090787838387610912565b979650505050505050565b6060831561098157825160000361097a576001600160a01b0385163b61097a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102fe565b5081610605565b61060583838151156109965781518083602001fd5b8060405162461bcd60e51b81526004016102fe9190610beb565b6001600160a01b03811681146109c557600080fd5b50565b6000602082840312156109da57600080fd5b813561053b816109b0565b600080604083850312156109f857600080fd5b8235610a03816109b0565b91506020830135610a13816109b0565b809150509250929050565b600060208284031215610a3057600080fd5b5035919050565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008219821115610af157610af1610ac8565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610b1e57600080fd5b5051919050565b6000816000190483118215151615610b3f57610b3f610ac8565b500290565b600082610b6157634e487b7160e01b600052601260045260246000fd5b500490565b600082821015610b7857610b78610ac8565b500390565b600060208284031215610b8f57600080fd5b8151801515811461053b57600080fd5b60005b83811015610bba578181015183820152602001610ba2565b83811115610bc9576000848401525b50505050565b60008251610be1818460208701610b9f565b9190910192915050565b6020815260008251806020840152610c0a816040850160208701610b9f565b601f01601f1916919091016040019291505056fea26469706673582212200b576ee29cf675e2ba4c1ec141ddfb83fc811611bf7893d8c5be7ac83b51746964736f6c634300080d0033", + "deployedBytecode": "0x6080604052600436106100a05760003560e01c80639852595c116100645780639852595c146101d2578063a3f8eace14610208578063c45ac05014610228578063ce7c2ac214610248578063d79779b21461027e578063e33b7de3146102b457600080fd5b806319165587146100ee5780633a98ef3914610110578063406072a91461013457806348b750441461017a5780638b83209b1461019a57600080fd5b366100e9577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b3480156100fa57600080fd5b5061010e6101093660046109c8565b6102c9565b005b34801561011c57600080fd5b506000545b6040519081526020015b60405180910390f35b34801561014057600080fd5b5061012161014f3660046109e5565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561018657600080fd5b5061010e6101953660046109e5565b6103b9565b3480156101a657600080fd5b506101ba6101b5366004610a1e565b6104ca565b6040516001600160a01b03909116815260200161012b565b3480156101de57600080fd5b506101216101ed3660046109c8565b6001600160a01b031660009081526003602052604090205490565b34801561021457600080fd5b506101216102233660046109c8565b6104fa565b34801561023457600080fd5b506101216102433660046109e5565b610542565b34801561025457600080fd5b506101216102633660046109c8565b6001600160a01b031660009081526002602052604090205490565b34801561028a57600080fd5b506101216102993660046109c8565b6001600160a01b031660009081526005602052604090205490565b3480156102c057600080fd5b50600154610121565b6001600160a01b0381166000908152600260205260409020546103075760405162461bcd60e51b81526004016102fe90610a37565b60405180910390fd5b6000610312826104fa565b9050806000036103345760405162461bcd60e51b81526004016102fe90610a7d565b80600160008282546103469190610ade565b90915550506001600160a01b0382166000908152600360205260409020805482019055610373828261060d565b604080516001600160a01b0384168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a15050565b6001600160a01b0381166000908152600260205260409020546103ee5760405162461bcd60e51b81526004016102fe90610a37565b60006103fa8383610542565b90508060000361041c5760405162461bcd60e51b81526004016102fe90610a7d565b6001600160a01b03831660009081526005602052604081208054839290610444908490610ade565b90915550506001600160a01b03808416600090815260066020908152604080832093861683529290522080548201905561047f83838361072b565b604080516001600160a01b038481168252602082018490528516917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a2505050565b6000600482815481106104df576104df610af6565b6000918252602090912001546001600160a01b031692915050565b60008061050660015490565b6105109047610ade565b905061053b8382610536866001600160a01b031660009081526003602052604090205490565b61077d565b9392505050565b6001600160a01b03821660009081526005602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156105a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c59190610b0c565b6105cf9190610ade565b6001600160a01b03808616600090815260066020908152604080832093881683529290522054909150610605908490839061077d565b949350505050565b8047101561065d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102fe565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106aa576040519150601f19603f3d011682016040523d82523d6000602084013e6106af565b606091505b50509050806107265760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102fe565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107269084906107b8565b600080546001600160a01b0385168252600260205260408220548391906107a49086610b25565b6107ae9190610b44565b6106059190610b66565b600061080d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661088d9092919063ffffffff16565b905080516000148061082e57508080602001905181019061082e9190610b7d565b6107265760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102fe565b6060610605848460008585600080866001600160a01b031685876040516108b49190610bcf565b60006040518083038185875af1925050503d80600081146108f1576040519150601f19603f3d011682016040523d82523d6000602084013e6108f6565b606091505b509150915061090787838387610912565b979650505050505050565b6060831561098157825160000361097a576001600160a01b0385163b61097a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102fe565b5081610605565b61060583838151156109965781518083602001fd5b8060405162461bcd60e51b81526004016102fe9190610beb565b6001600160a01b03811681146109c557600080fd5b50565b6000602082840312156109da57600080fd5b813561053b816109b0565b600080604083850312156109f857600080fd5b8235610a03816109b0565b91506020830135610a13816109b0565b809150509250929050565b600060208284031215610a3057600080fd5b5035919050565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008219821115610af157610af1610ac8565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610b1e57600080fd5b5051919050565b6000816000190483118215151615610b3f57610b3f610ac8565b500290565b600082610b6157634e487b7160e01b600052601260045260246000fd5b500490565b600082821015610b7857610b78610ac8565b500390565b600060208284031215610b8f57600080fd5b8151801515811461053b57600080fd5b60005b83811015610bba578181015183820152602001610ba2565b83811115610bc9576000848401525b50505050565b60008251610be1818460208701610b9f565b9190910192915050565b6020815260008251806020840152610c0a816040850160208701610b9f565b601f01601f1916919091016040019291505056fea26469706673582212200b576ee29cf675e2ba4c1ec141ddfb83fc811611bf7893d8c5be7ac83b51746964736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/ProxyAdmin.json b/node_modules/@openzeppelin/contracts/build/contracts/ProxyAdmin.json index c7f9911..4a02077 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/ProxyAdmin.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/ProxyAdmin.json @@ -25,7 +25,7 @@ { "inputs": [ { - "internalType": "contract TransparentUpgradeableProxy", + "internalType": "contract ITransparentUpgradeableProxy", "name": "proxy", "type": "address" }, @@ -43,7 +43,7 @@ { "inputs": [ { - "internalType": "contract TransparentUpgradeableProxy", + "internalType": "contract ITransparentUpgradeableProxy", "name": "proxy", "type": "address" } @@ -62,7 +62,7 @@ { "inputs": [ { - "internalType": "contract TransparentUpgradeableProxy", + "internalType": "contract ITransparentUpgradeableProxy", "name": "proxy", "type": "address" } @@ -114,7 +114,7 @@ { "inputs": [ { - "internalType": "contract TransparentUpgradeableProxy", + "internalType": "contract ITransparentUpgradeableProxy", "name": "proxy", "type": "address" }, @@ -132,7 +132,7 @@ { "inputs": [ { - "internalType": "contract TransparentUpgradeableProxy", + "internalType": "contract ITransparentUpgradeableProxy", "name": "proxy", "type": "address" }, @@ -153,8 +153,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107198061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead146101645761007b565b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b3660046104d8565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee366004610517565b610254565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461054f565b6102de565b34801561013057600080fd5b506100d161013f366004610517565b61036f565b34801561015057600080fd5b506100d161015f3660046104d8565b6103c7565b34801561017057600080fd5b506100a061017f3660046104d8565b610462565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906104fb565b949350505050565b6000546001600160a01b031633146102485760405162461bcd60e51b815260040161023f90610683565b60405180910390fd5b6102526000610488565b565b6000546001600160a01b0316331461027e5760405162461bcd60e51b815260040161023f90610683565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b1580156102c257600080fd5b505af11580156102d6573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146103085760405162461bcd60e51b815260040161023f90610683565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906103389086908690600401610620565b6000604051808303818588803b15801561035157600080fd5b505af1158015610365573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146103995760405162461bcd60e51b815260040161023f90610683565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe6906024016102a8565b6000546001600160a01b031633146103f15760405162461bcd60e51b815260040161023f90610683565b6001600160a01b0381166104565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161023f565b61045f81610488565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156104e9578081fd5b81356104f4816106ce565b9392505050565b60006020828403121561050c578081fd5b81516104f4816106ce565b60008060408385031215610529578081fd5b8235610534816106ce565b91506020830135610544816106ce565b809150509250929050565b600080600060608486031215610563578081fd5b833561056e816106ce565b9250602084013561057e816106ce565b9150604084013567ffffffffffffffff8082111561059a578283fd5b818601915086601f8301126105ad578283fd5b8135818111156105bf576105bf6106b8565b604051601f8201601f19908116603f011681019083821181831017156105e7576105e76106b8565b816040528281528960208487010111156105ff578586fd5b82602086016020830137856020848301015280955050505050509250925092565b600060018060a01b038416825260206040818401528351806040850152825b8181101561065b5785810183015185820160600152820161063f565b8181111561066c5783606083870101525b50601f01601f191692909201606001949350505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461045f57600080fdfea264697066735822122055d89c2449fb1dbc93789ed0dbadfb30c56205789c038ea1f880e9dc7291281964736f6c63430008030033", - "deployedBytecode": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead146101645761007b565b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b3660046104d8565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee366004610517565b610254565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461054f565b6102de565b34801561013057600080fd5b506100d161013f366004610517565b61036f565b34801561015057600080fd5b506100d161015f3660046104d8565b6103c7565b34801561017057600080fd5b506100a061017f3660046104d8565b610462565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906104fb565b949350505050565b6000546001600160a01b031633146102485760405162461bcd60e51b815260040161023f90610683565b60405180910390fd5b6102526000610488565b565b6000546001600160a01b0316331461027e5760405162461bcd60e51b815260040161023f90610683565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b1580156102c257600080fd5b505af11580156102d6573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146103085760405162461bcd60e51b815260040161023f90610683565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906103389086908690600401610620565b6000604051808303818588803b15801561035157600080fd5b505af1158015610365573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146103995760405162461bcd60e51b815260040161023f90610683565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe6906024016102a8565b6000546001600160a01b031633146103f15760405162461bcd60e51b815260040161023f90610683565b6001600160a01b0381166104565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161023f565b61045f81610488565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156104e9578081fd5b81356104f4816106ce565b9392505050565b60006020828403121561050c578081fd5b81516104f4816106ce565b60008060408385031215610529578081fd5b8235610534816106ce565b91506020830135610544816106ce565b809150509250929050565b600080600060608486031215610563578081fd5b833561056e816106ce565b9250602084013561057e816106ce565b9150604084013567ffffffffffffffff8082111561059a578283fd5b818601915086601f8301126105ad578283fd5b8135818111156105bf576105bf6106b8565b604051601f8201601f19908116603f011681019083821181831017156105e7576105e76106b8565b816040528281528960208487010111156105ff578586fd5b82602086016020830137856020848301015280955050505050509250925092565b600060018060a01b038416825260206040818401528351806040850152825b8181101561065b5785810183015185820160600152820161063f565b8181111561066c5783606083870101525b50601f01601f191692909201606001949350505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461045f57600080fdfea264697066735822122055d89c2449fb1dbc93789ed0dbadfb30c56205789c038ea1f880e9dc7291281964736f6c63430008030033", + "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b038316815260006020604081840152835180604085015260005b8181101561063b5785810183015185820160600152820161061f565b8181111561064d576000606083870101525b50601f01601f19169290920160600194935050505056fea2646970667358221220ba609cdc1acb4b31893a88830cb51f57e1dc322365ae5105c5710d07e3ba05ac64736f6c634300080d0033", + "deployedBytecode": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b038316815260006020604081840152835180604085015260005b8181101561063b5785810183015185820160600152820161061f565b8181111561064d576000606083870101525b50601f01601f19169290920160600194935050505056fea2646970667358221220ba609cdc1acb4b31893a88830cb51f57e1dc322365ae5105c5710d07e3ba05ac64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/RefundEscrow.json b/node_modules/@openzeppelin/contracts/build/contracts/RefundEscrow.json index e0a22eb..3765f22 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/RefundEscrow.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/RefundEscrow.json @@ -228,8 +228,8 @@ "type": "function" } ], - "bytecode": "0x60a060405234801561001057600080fd5b50604051610c17380380610c1783398101604081905261002f91610117565b610038336100c7565b6001600160a01b0381166100a85760405162461bcd60e51b815260206004820152602d60248201527f526566756e64457363726f773a2062656e65666963696172792069732074686560448201526c207a65726f206164647265737360981b606482015260840160405180910390fd5b60601b6001600160601b0319166080526002805460ff19169055610145565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610128578081fd5b81516001600160a01b038116811461013e578182fd5b9392505050565b60805160601c610aae6101696000396000818160bb01526105cf0152610aae6000f3fe6080604052600436106100a75760003560e01c80638da5cb5b116100645780638da5cb5b146101895780639af6549a146101a7578063c19d93fb146101bc578063e3a9db1a146101dc578063f2fde38b14610220578063f340fa0114610240576100a7565b806338af3eed146100ac57806343d726d6146100f857806351cff8d91461010f578063685ca1941461012f578063715018a61461015f5780638c52dc4114610174575b600080fd5b3480156100b857600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010457600080fd5b5061010d610253565b005b34801561011b57600080fd5b5061010d61012a3660046109bf565b610349565b34801561013b57600080fd5b5061014f61014a3660046109bf565b6103c6565b60405190151581526020016100ef565b34801561016b57600080fd5b5061010d6103fc565b34801561018057600080fd5b5061010d610432565b34801561019557600080fd5b506000546001600160a01b03166100db565b3480156101b357600080fd5b5061010d610529565b3480156101c857600080fd5b5060025460ff166040516100ef91906109e2565b3480156101e857600080fd5b506102126101f73660046109bf565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100ef565b34801561022c57600080fd5b5061010d61023b3660046109bf565b6105f5565b61010d61024e3660046109bf565b61068d565b6000546001600160a01b031633146102865760405162461bcd60e51b815260040161027d90610a0a565b60405180910390fd5b600061029460025460ff1690565b60028111156102b357634e487b7160e01b600052602160045260246000fd5b146103125760405162461bcd60e51b815260206004820152602960248201527f526566756e64457363726f773a2063616e206f6e6c7920636c6f7365207768696044820152686c652061637469766560b81b606482015260840161027d565b6002805460ff1916811790556040517f088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f90600090a1565b610352816103c6565b6103ba5760405162461bcd60e51b815260206004820152603360248201527f436f6e646974696f6e616c457363726f773a207061796565206973206e6f7420604482015272616c6c6f77656420746f20776974686472617760681b606482015260840161027d565b6103c381610724565b50565b600060016103d660025460ff1690565b60028111156103f557634e487b7160e01b600052602160045260246000fd5b1492915050565b6000546001600160a01b031633146104265760405162461bcd60e51b815260040161027d90610a0a565b61043060006107bd565b565b6000546001600160a01b0316331461045c5760405162461bcd60e51b815260040161027d90610a0a565b600061046a60025460ff1690565b600281111561048957634e487b7160e01b600052602160045260246000fd5b146104f15760405162461bcd60e51b815260206004820152603260248201527f526566756e64457363726f773a2063616e206f6e6c7920656e61626c6520726560448201527166756e6473207768696c652061637469766560701b606482015260840161027d565b6002805460ff191660011790556040517f599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b8990600090a1565b6002805460ff16600281111561054f57634e487b7160e01b600052602160045260246000fd5b146105c25760405162461bcd60e51b815260206004820152603860248201527f526566756e64457363726f773a2062656e65666963696172792063616e206f6e60448201527f6c79207769746864726177207768696c6520636c6f7365640000000000000000606482015260840161027d565b6104306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000164761080d565b6000546001600160a01b0316331461061f5760405162461bcd60e51b815260040161027d90610a0a565b6001600160a01b0381166106845760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161027d565b6103c3816107bd565b600061069b60025460ff1690565b60028111156106ba57634e487b7160e01b600052602160045260246000fd5b1461071b5760405162461bcd60e51b815260206004820152602b60248201527f526566756e64457363726f773a2063616e206f6e6c79206465706f736974207760448201526a68696c652061637469766560a81b606482015260840161027d565b6103c38161092b565b6000546001600160a01b0316331461074e5760405162461bcd60e51b815260040161027d90610a0a565b6001600160a01b0381166000818152600160205260408120805491905590610776908261080d565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040516107b191815260200190565b60405180910390a25050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8047101561085d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161027d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146108aa576040519150601f19603f3d011682016040523d82523d6000602084013e6108af565b606091505b50509050806109265760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161027d565b505050565b6000546001600160a01b031633146109555760405162461bcd60e51b815260040161027d90610a0a565b6001600160a01b03811660009081526001602052604081208054349283929161097f908490610a3f565b90915550506040518181526001600160a01b038316907f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4906020016107b1565b6000602082840312156109d0578081fd5b81356109db81610a63565b9392505050565b6020810160038310610a0457634e487b7160e01b600052602160045260246000fd5b91905290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610a5e57634e487b7160e01b81526011600452602481fd5b500190565b6001600160a01b03811681146103c357600080fdfea2646970667358221220fcf0fd8037f372c1eae94dba60e7f9dc6b92aaa5db82e6051e33f045d837612c64736f6c63430008030033", - "deployedBytecode": "0x6080604052600436106100a75760003560e01c80638da5cb5b116100645780638da5cb5b146101895780639af6549a146101a7578063c19d93fb146101bc578063e3a9db1a146101dc578063f2fde38b14610220578063f340fa0114610240576100a7565b806338af3eed146100ac57806343d726d6146100f857806351cff8d91461010f578063685ca1941461012f578063715018a61461015f5780638c52dc4114610174575b600080fd5b3480156100b857600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010457600080fd5b5061010d610253565b005b34801561011b57600080fd5b5061010d61012a3660046109bf565b610349565b34801561013b57600080fd5b5061014f61014a3660046109bf565b6103c6565b60405190151581526020016100ef565b34801561016b57600080fd5b5061010d6103fc565b34801561018057600080fd5b5061010d610432565b34801561019557600080fd5b506000546001600160a01b03166100db565b3480156101b357600080fd5b5061010d610529565b3480156101c857600080fd5b5060025460ff166040516100ef91906109e2565b3480156101e857600080fd5b506102126101f73660046109bf565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100ef565b34801561022c57600080fd5b5061010d61023b3660046109bf565b6105f5565b61010d61024e3660046109bf565b61068d565b6000546001600160a01b031633146102865760405162461bcd60e51b815260040161027d90610a0a565b60405180910390fd5b600061029460025460ff1690565b60028111156102b357634e487b7160e01b600052602160045260246000fd5b146103125760405162461bcd60e51b815260206004820152602960248201527f526566756e64457363726f773a2063616e206f6e6c7920636c6f7365207768696044820152686c652061637469766560b81b606482015260840161027d565b6002805460ff1916811790556040517f088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f90600090a1565b610352816103c6565b6103ba5760405162461bcd60e51b815260206004820152603360248201527f436f6e646974696f6e616c457363726f773a207061796565206973206e6f7420604482015272616c6c6f77656420746f20776974686472617760681b606482015260840161027d565b6103c381610724565b50565b600060016103d660025460ff1690565b60028111156103f557634e487b7160e01b600052602160045260246000fd5b1492915050565b6000546001600160a01b031633146104265760405162461bcd60e51b815260040161027d90610a0a565b61043060006107bd565b565b6000546001600160a01b0316331461045c5760405162461bcd60e51b815260040161027d90610a0a565b600061046a60025460ff1690565b600281111561048957634e487b7160e01b600052602160045260246000fd5b146104f15760405162461bcd60e51b815260206004820152603260248201527f526566756e64457363726f773a2063616e206f6e6c7920656e61626c6520726560448201527166756e6473207768696c652061637469766560701b606482015260840161027d565b6002805460ff191660011790556040517f599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b8990600090a1565b6002805460ff16600281111561054f57634e487b7160e01b600052602160045260246000fd5b146105c25760405162461bcd60e51b815260206004820152603860248201527f526566756e64457363726f773a2062656e65666963696172792063616e206f6e60448201527f6c79207769746864726177207768696c6520636c6f7365640000000000000000606482015260840161027d565b6104306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000164761080d565b6000546001600160a01b0316331461061f5760405162461bcd60e51b815260040161027d90610a0a565b6001600160a01b0381166106845760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161027d565b6103c3816107bd565b600061069b60025460ff1690565b60028111156106ba57634e487b7160e01b600052602160045260246000fd5b1461071b5760405162461bcd60e51b815260206004820152602b60248201527f526566756e64457363726f773a2063616e206f6e6c79206465706f736974207760448201526a68696c652061637469766560a81b606482015260840161027d565b6103c38161092b565b6000546001600160a01b0316331461074e5760405162461bcd60e51b815260040161027d90610a0a565b6001600160a01b0381166000818152600160205260408120805491905590610776908261080d565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040516107b191815260200190565b60405180910390a25050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8047101561085d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161027d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146108aa576040519150601f19603f3d011682016040523d82523d6000602084013e6108af565b606091505b50509050806109265760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161027d565b505050565b6000546001600160a01b031633146109555760405162461bcd60e51b815260040161027d90610a0a565b6001600160a01b03811660009081526001602052604081208054349283929161097f908490610a3f565b90915550506040518181526001600160a01b038316907f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4906020016107b1565b6000602082840312156109d0578081fd5b81356109db81610a63565b9392505050565b6020810160038310610a0457634e487b7160e01b600052602160045260246000fd5b91905290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610a5e57634e487b7160e01b81526011600452602481fd5b500190565b6001600160a01b03811681146103c357600080fdfea2646970667358221220fcf0fd8037f372c1eae94dba60e7f9dc6b92aaa5db82e6051e33f045d837612c64736f6c63430008030033", + "bytecode": "0x60a060405234801561001057600080fd5b50604051610b22380380610b2283398101604081905261002f91610113565b610038336100c3565b6001600160a01b0381166100a85760405162461bcd60e51b815260206004820152602d60248201527f526566756e64457363726f773a2062656e65666963696172792069732074686560448201526c207a65726f206164647265737360981b606482015260840160405180910390fd5b6001600160a01b03166080526002805460ff19169055610143565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561012557600080fd5b81516001600160a01b038116811461013c57600080fd5b9392505050565b6080516109be6101646000396000818160bb015261051b01526109be6000f3fe6080604052600436106100a75760003560e01c80638da5cb5b116100645780638da5cb5b146101895780639af6549a146101a7578063c19d93fb146101bc578063e3a9db1a146101dc578063f2fde38b14610220578063f340fa011461024057600080fd5b806338af3eed146100ac57806343d726d6146100f857806351cff8d91461010f578063685ca1941461012f578063715018a61461015f5780638c52dc4114610174575b600080fd5b3480156100b857600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010457600080fd5b5061010d610253565b005b34801561011b57600080fd5b5061010d61012a366004610900565b61030f565b34801561013b57600080fd5b5061014f61014a366004610900565b61038c565b60405190151581526020016100ef565b34801561016b57600080fd5b5061010d6103ae565b34801561018057600080fd5b5061010d6103c2565b34801561019557600080fd5b506000546001600160a01b03166100db565b3480156101b357600080fd5b5061010d610483565b3480156101c857600080fd5b5060025460ff166040516100ef919061093a565b3480156101e857600080fd5b506102126101f7366004610900565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100ef565b34801561022c57600080fd5b5061010d61023b366004610900565b610541565b61010d61024e366004610900565b6105b7565b61025b61063a565b600060025460ff16600281111561027457610274610924565b146102d85760405162461bcd60e51b815260206004820152602960248201527f526566756e64457363726f773a2063616e206f6e6c7920636c6f7365207768696044820152686c652061637469766560b81b60648201526084015b60405180910390fd5b6002805460ff1916811790556040517f088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f90600090a1565b6103188161038c565b6103805760405162461bcd60e51b815260206004820152603360248201527f436f6e646974696f6e616c457363726f773a207061796565206973206e6f7420604482015272616c6c6f77656420746f20776974686472617760681b60648201526084016102cf565b61038981610694565b50565b6000600160025460ff1660028111156103a7576103a7610924565b1492915050565b6103b661063a565b6103c0600061070b565b565b6103ca61063a565b600060025460ff1660028111156103e3576103e3610924565b1461044b5760405162461bcd60e51b815260206004820152603260248201527f526566756e64457363726f773a2063616e206f6e6c7920656e61626c6520726560448201527166756e6473207768696c652061637469766560701b60648201526084016102cf565b6002805460ff191660011790556040517f599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b8990600090a1565b6002805460ff16600281111561049b5761049b610924565b1461050e5760405162461bcd60e51b815260206004820152603860248201527f526566756e64457363726f773a2062656e65666963696172792063616e206f6e60448201527f6c79207769746864726177207768696c6520636c6f736564000000000000000060648201526084016102cf565b6103c06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000164761075b565b61054961063a565b6001600160a01b0381166105ae5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102cf565b6103898161070b565b600060025460ff1660028111156105d0576105d0610924565b146106315760405162461bcd60e51b815260206004820152602b60248201527f526566756e64457363726f773a2063616e206f6e6c79206465706f736974207760448201526a68696c652061637469766560a81b60648201526084016102cf565b61038981610879565b6000546001600160a01b031633146103c05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102cf565b61069c61063a565b6001600160a01b03811660008181526001602052604081208054919055906106c4908261075b565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040516106ff91815260200190565b60405180910390a25050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b804710156107ab5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102cf565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146107f8576040519150601f19603f3d011682016040523d82523d6000602084013e6107fd565b606091505b50509050806108745760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102cf565b505050565b61088161063a565b6001600160a01b0381166000908152600160205260408120805434928392916108ab908490610962565b90915550506040518181526001600160a01b038316907f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4906020016106ff565b6001600160a01b038116811461038957600080fd5b60006020828403121561091257600080fd5b813561091d816108eb565b9392505050565b634e487b7160e01b600052602160045260246000fd5b602081016003831061095c57634e487b7160e01b600052602160045260246000fd5b91905290565b6000821982111561098357634e487b7160e01b600052601160045260246000fd5b50019056fea26469706673582212208267ea71961568bda0999b5327794fce13d0cf08516c5f195e62b943718d305664736f6c634300080d0033", + "deployedBytecode": "0x6080604052600436106100a75760003560e01c80638da5cb5b116100645780638da5cb5b146101895780639af6549a146101a7578063c19d93fb146101bc578063e3a9db1a146101dc578063f2fde38b14610220578063f340fa011461024057600080fd5b806338af3eed146100ac57806343d726d6146100f857806351cff8d91461010f578063685ca1941461012f578063715018a61461015f5780638c52dc4114610174575b600080fd5b3480156100b857600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010457600080fd5b5061010d610253565b005b34801561011b57600080fd5b5061010d61012a366004610900565b61030f565b34801561013b57600080fd5b5061014f61014a366004610900565b61038c565b60405190151581526020016100ef565b34801561016b57600080fd5b5061010d6103ae565b34801561018057600080fd5b5061010d6103c2565b34801561019557600080fd5b506000546001600160a01b03166100db565b3480156101b357600080fd5b5061010d610483565b3480156101c857600080fd5b5060025460ff166040516100ef919061093a565b3480156101e857600080fd5b506102126101f7366004610900565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100ef565b34801561022c57600080fd5b5061010d61023b366004610900565b610541565b61010d61024e366004610900565b6105b7565b61025b61063a565b600060025460ff16600281111561027457610274610924565b146102d85760405162461bcd60e51b815260206004820152602960248201527f526566756e64457363726f773a2063616e206f6e6c7920636c6f7365207768696044820152686c652061637469766560b81b60648201526084015b60405180910390fd5b6002805460ff1916811790556040517f088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f90600090a1565b6103188161038c565b6103805760405162461bcd60e51b815260206004820152603360248201527f436f6e646974696f6e616c457363726f773a207061796565206973206e6f7420604482015272616c6c6f77656420746f20776974686472617760681b60648201526084016102cf565b61038981610694565b50565b6000600160025460ff1660028111156103a7576103a7610924565b1492915050565b6103b661063a565b6103c0600061070b565b565b6103ca61063a565b600060025460ff1660028111156103e3576103e3610924565b1461044b5760405162461bcd60e51b815260206004820152603260248201527f526566756e64457363726f773a2063616e206f6e6c7920656e61626c6520726560448201527166756e6473207768696c652061637469766560701b60648201526084016102cf565b6002805460ff191660011790556040517f599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b8990600090a1565b6002805460ff16600281111561049b5761049b610924565b1461050e5760405162461bcd60e51b815260206004820152603860248201527f526566756e64457363726f773a2062656e65666963696172792063616e206f6e60448201527f6c79207769746864726177207768696c6520636c6f736564000000000000000060648201526084016102cf565b6103c06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000164761075b565b61054961063a565b6001600160a01b0381166105ae5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102cf565b6103898161070b565b600060025460ff1660028111156105d0576105d0610924565b146106315760405162461bcd60e51b815260206004820152602b60248201527f526566756e64457363726f773a2063616e206f6e6c79206465706f736974207760448201526a68696c652061637469766560a81b60648201526084016102cf565b61038981610879565b6000546001600160a01b031633146103c05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102cf565b61069c61063a565b6001600160a01b03811660008181526001602052604081208054919055906106c4908261075b565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040516106ff91815260200190565b60405180910390a25050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b804710156107ab5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102cf565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146107f8576040519150601f19603f3d011682016040523d82523d6000602084013e6107fd565b606091505b50509050806108745760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102cf565b505050565b61088161063a565b6001600160a01b0381166000908152600160205260408120805434928392916108ab908490610962565b90915550506040518181526001600160a01b038316907f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4906020016106ff565b6001600160a01b038116811461038957600080fd5b60006020828403121561091257600080fd5b813561091d816108eb565b9392505050565b634e487b7160e01b600052602160045260246000fd5b602081016003831061095c57634e487b7160e01b600052602160045260246000fd5b91905290565b6000821982111561098357634e487b7160e01b600052601160045260246000fd5b50019056fea26469706673582212208267ea71961568bda0999b5327794fce13d0cf08516c5f195e62b943718d305664736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/SafeCast.json b/node_modules/@openzeppelin/contracts/build/contracts/SafeCast.json index fdfa496..647864e 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/SafeCast.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/SafeCast.json @@ -3,8 +3,8 @@ "contractName": "SafeCast", "sourceName": "contracts/utils/math/SafeCast.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b5cfe7f9d14412e1a9a046efbbb15d9413eb64014b5ed9a2f1fb087747e3c31864736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b5cfe7f9d14412e1a9a046efbbb15d9413eb64014b5ed9a2f1fb087747e3c31864736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209b70f13b9037ee79c19308444b56b249ba516d35f57eaf86c037b39c5bf00f0464736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209b70f13b9037ee79c19308444b56b249ba516d35f57eaf86c037b39c5bf00f0464736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/SafeERC20.json b/node_modules/@openzeppelin/contracts/build/contracts/SafeERC20.json index 5ff607a..a812c15 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/SafeERC20.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/SafeERC20.json @@ -3,8 +3,8 @@ "contractName": "SafeERC20", "sourceName": "contracts/token/ERC20/utils/SafeERC20.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c013fe4570eb30cc1a6432f2f57e4d56eaf67fd154b1e2c5f43fe49d7c5e2b4364736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c013fe4570eb30cc1a6432f2f57e4d56eaf67fd154b1e2c5f43fe49d7c5e2b4364736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca170c1fdfcb2d0a788783aed77f117d515e1ad76604917fe60c438540e1692764736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca170c1fdfcb2d0a788783aed77f117d515e1ad76604917fe60c438540e1692764736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/SafeMath.json b/node_modules/@openzeppelin/contracts/build/contracts/SafeMath.json index 3146fc1..3aff147 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/SafeMath.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/SafeMath.json @@ -3,8 +3,8 @@ "contractName": "SafeMath", "sourceName": "contracts/utils/math/SafeMath.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202929a3ce9656e06a8b266f2f10b83ab9b434f09eb5fe65ccbe97cf16ae3275d264736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202929a3ce9656e06a8b266f2f10b83ab9b434f09eb5fe65ccbe97cf16ae3275d264736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206bad85ec3f129e4a2d14c0ffec29b8707e9fa0d94b1f1866adbff6471def4ddb64736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206bad85ec3f129e4a2d14c0ffec29b8707e9fa0d94b1f1866adbff6471def4ddb64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/SignatureChecker.json b/node_modules/@openzeppelin/contracts/build/contracts/SignatureChecker.json index f775ed9..7564908 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/SignatureChecker.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/SignatureChecker.json @@ -3,8 +3,8 @@ "contractName": "SignatureChecker", "sourceName": "contracts/utils/cryptography/SignatureChecker.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1dcb5700d167381f0ff07cd76482ab4efb8236a4343a6c03cf518458acba81864736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1dcb5700d167381f0ff07cd76482ab4efb8236a4343a6c03cf518458acba81864736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220767b2d621e5661e0a91e7ef50e37dfb79311d08bd7d95516bfedb69ebb980e9a64736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220767b2d621e5661e0a91e7ef50e37dfb79311d08bd7d95516bfedb69ebb980e9a64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/SignedSafeMath.json b/node_modules/@openzeppelin/contracts/build/contracts/SignedSafeMath.json index 9eb621f..d13783e 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/SignedSafeMath.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/SignedSafeMath.json @@ -3,8 +3,8 @@ "contractName": "SignedSafeMath", "sourceName": "contracts/utils/math/SignedSafeMath.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206f7e60b9087e196250ee5968781223440984d887924ffd060b6d76606db07e7564736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206f7e60b9087e196250ee5968781223440984d887924ffd060b6d76606db07e7564736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eb083871ab45137463fe50ab403fd89f48c46327b5ac689f37963752e92d060064736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eb083871ab45137463fe50ab403fd89f48c46327b5ac689f37963752e92d060064736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/StorageSlot.json b/node_modules/@openzeppelin/contracts/build/contracts/StorageSlot.json index 7b05879..e80087c 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/StorageSlot.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/StorageSlot.json @@ -3,8 +3,8 @@ "contractName": "StorageSlot", "sourceName": "contracts/utils/StorageSlot.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b67348f1b60e45326cbe2680dfa6d3f07c0330330a85529d451ac9844b56b6e364736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b67348f1b60e45326cbe2680dfa6d3f07c0330330a85529d451ac9844b56b6e364736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207aec9d374217a385544909e233e47dc530ff22774efe9a7b3f32d59634b911de64736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207aec9d374217a385544909e233e47dc530ff22774efe9a7b3f32d59634b911de64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/Strings.json b/node_modules/@openzeppelin/contracts/build/contracts/Strings.json index 42d5199..7cba042 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/Strings.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/Strings.json @@ -3,8 +3,8 @@ "contractName": "Strings", "sourceName": "contracts/utils/Strings.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc3346a4ca06fa391924677f580a635f0230679fb50fadb4bef1319d5d73949764736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc3346a4ca06fa391924677f580a635f0230679fb50fadb4bef1319d5d73949764736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122099dc6e723e28541c81b9dfe9b80160aa492ed578a0a0233f4ab4731b030d604164736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122099dc6e723e28541c81b9dfe9b80160aa492ed578a0a0233f4ab4731b030d604164736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/TimelockController.json b/node_modules/@openzeppelin/contracts/build/contracts/TimelockController.json index 8c549d9..b5d950e 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/TimelockController.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/TimelockController.json @@ -19,6 +19,11 @@ "internalType": "address[]", "name": "executors", "type": "address[]" + }, + { + "internalType": "address", + "name": "admin", + "type": "address" } ], "stateMutability": "nonpayable", @@ -61,6 +66,25 @@ "name": "CallExecuted", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + } + ], + "name": "CallSalt", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -217,6 +241,19 @@ "name": "RoleRevoked", "type": "event" }, + { + "inputs": [], + "name": "CANCELLER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", @@ -296,7 +333,7 @@ }, { "internalType": "bytes", - "name": "data", + "name": "payload", "type": "bytes" }, { @@ -329,7 +366,7 @@ }, { "internalType": "bytes[]", - "name": "datas", + "name": "payloads", "type": "bytes[]" }, { @@ -354,7 +391,7 @@ "outputs": [ { "internalType": "uint256", - "name": "duration", + "name": "", "type": "uint256" } ], @@ -392,7 +429,7 @@ "outputs": [ { "internalType": "uint256", - "name": "timestamp", + "name": "", "type": "uint256" } ], @@ -473,7 +510,7 @@ "outputs": [ { "internalType": "bytes32", - "name": "hash", + "name": "", "type": "bytes32" } ], @@ -494,7 +531,7 @@ }, { "internalType": "bytes[]", - "name": "datas", + "name": "payloads", "type": "bytes[]" }, { @@ -512,7 +549,7 @@ "outputs": [ { "internalType": "bytes32", - "name": "hash", + "name": "", "type": "bytes32" } ], @@ -531,7 +568,7 @@ "outputs": [ { "internalType": "bool", - "name": "pending", + "name": "", "type": "bool" } ], @@ -550,7 +587,7 @@ "outputs": [ { "internalType": "bool", - "name": "done", + "name": "", "type": "bool" } ], @@ -569,7 +606,7 @@ "outputs": [ { "internalType": "bool", - "name": "pending", + "name": "", "type": "bool" } ], @@ -588,13 +625,125 @@ "outputs": [ { "internalType": "bool", - "name": "ready", + "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -683,7 +832,7 @@ }, { "internalType": "bytes[]", - "name": "datas", + "name": "payloads", "type": "bytes[]" }, { @@ -744,8 +893,8 @@ "type": "receive" } ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162001e8238038062001e828339810160408190526200003491620003c6565b6200004f60008051602062001e2283398151915280620001e1565b6200007960008051602062001e4283398151915260008051602062001e22833981519152620001e1565b620000a360008051602062001e6283398151915260008051602062001e22833981519152620001e1565b620000be60008051602062001e228339815191523362000236565b620000d960008051602062001e228339815191523062000236565b60005b825181101562000142576200012f60008051602062001e428339815191528483815181106200011b57634e487b7160e01b600052603260045260246000fd5b60200260200101516200023660201b60201c565b6200013a8162000437565b9050620000dc565b5060005b815181101562000198576200018560008051602062001e628339815191528383815181106200011b57634e487b7160e01b600052603260045260246000fd5b620001908162000437565b905062000146565b5060028390556040805160008152602081018590527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a150505062000475565b6000620001ee8362000246565b600084815260208190526040808220600101859055519192508391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6200024282826200025e565b5050565b6000818152602081905260409020600101545b919050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000242576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002ba3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b80516001600160a01b03811681146200025957600080fd5b600082601f83011262000327578081fd5b815160206001600160401b03808311156200034657620003466200045f565b8260051b604051601f19603f830116810181811084821117156200036e576200036e6200045f565b604052848152838101925086840182880185018910156200038d578687fd5b8692505b85831015620003ba57620003a581620002fe565b84529284019260019290920191840162000391565b50979650505050505050565b600080600060608486031215620003db578283fd5b835160208501519093506001600160401b0380821115620003fa578384fd5b620004088783880162000316565b935060408601519150808211156200041e578283fd5b506200042d8682870162000316565b9150509250925092565b60006000198214156200045857634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b61199d80620004856000396000f3fe60806040526004361061014f5760003560e01c806364d62353116100b6578063b1c5f4271161006f578063b1c5f427146103f3578063c4d252f514610413578063d45c443514610433578063d547741f14610460578063e38335e514610480578063f27a0c921461049357610156565b806364d623531461033c5780638065657f1461035c5780638f2a0bb01461037c5780638f61f4f51461039c57806391d14854146103be578063a217fddf146103de57610156565b8063248a9ca311610108578063248a9ca31461025b5780632ab0f5291461028b5780632f2ff15d146102bc57806331d50750146102dc57806336568abe146102fc578063584b153e1461031c57610156565b806301d5062a1461015b57806301ffc9a71461017d57806307bd0265146101b25780630d3cf6fc146101f4578063134008d31461022857806313bc9f201461023b57610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017b610176366004611312565b6104a8565b005b34801561018957600080fd5b5061019d61019836600461151b565b61052d565b60405190151581526020015b60405180910390f35b3480156101be57600080fd5b506101e67fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b6040519081526020016101a9565b34801561020057600080fd5b506101e67f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b61017b6102363660046112a8565b610566565b34801561024757600080fd5b5061019d6102563660046114d8565b6105de565b34801561026757600080fd5b506101e66102763660046114d8565b60009081526020819052604090206001015490565b34801561029757600080fd5b5061019d6102a63660046114d8565b6000908152600160208190526040909120541490565b3480156102c857600080fd5b5061017b6102d73660046114f0565b610604565b3480156102e857600080fd5b5061019d6102f73660046114d8565b61062f565b34801561030857600080fd5b5061017b6103173660046114f0565b610648565b34801561032857600080fd5b5061019d6103373660046114d8565b6106cb565b34801561034857600080fd5b5061017b6103573660046114d8565b6106e1565b34801561036857600080fd5b506101e66103773660046112a8565b610785565b34801561038857600080fd5b5061017b61039736600461142a565b6107c4565b3480156103a857600080fd5b506101e660008051602061194883398151915281565b3480156103ca57600080fd5b5061019d6103d93660046114f0565b61092f565b3480156103ea57600080fd5b506101e6600081565b3480156103ff57600080fd5b506101e661040e366004611385565b610958565b34801561041f57600080fd5b5061017b61042e3660046114d8565b61099d565b34801561043f57600080fd5b506101e661044e3660046114d8565b60009081526001602052604090205490565b34801561046c57600080fd5b5061017b61047b3660046114f0565b610a61565b61017b61048e366004611385565b610a87565b34801561049f57600080fd5b506002546101e6565b6000805160206119488339815191526104c281335b610be6565b60006104d2898989898989610785565b90506104de8184610c4a565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161051a969594939291906116b1565b60405180910390a3505050505050505050565b60006001600160e01b03198216637965db0b60e01b148061055e57506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6361059281600061092f565b6105a0576105a081336104bd565b60006105b0888888888888610785565b90506105bc8185610d39565b6105cb8160008a8a8a8a610dd5565b6105d481610ee9565b5050505050505050565b6000818152600160205260408120546001811180156105fd5750428111155b9392505050565b60008281526020819052604090206001015461062081336104bd565b61062a8383610f22565b505050565b60008181526001602052604081205481905b1192915050565b6001600160a01b03811633146106bd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6106c78282610fa6565b5050565b6000818152600160208190526040822054610641565b3330146107445760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016106b4565b60025460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600255565b60008686868686866040516020016107a2969594939291906116b1565b6040516020818303038152906040528051906020012090509695505050505050565b6000805160206119488339815191526107dd81336104bd565b8887146107fc5760405162461bcd60e51b81526004016106b4906117c6565b88851461081b5760405162461bcd60e51b81526004016106b4906117c6565b600061082d8b8b8b8b8b8b8b8b610958565b90506108398184610c4a565b60005b8a8110156109215780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e8581811061088757634e487b7160e01b600052603260045260246000fd5b905060200201602081019061089c919061128e565b8d8d868181106108bc57634e487b7160e01b600052603260045260246000fd5b905060200201358c8c878181106108e357634e487b7160e01b600052603260045260246000fd5b90506020028101906108f59190611853565b8c8b604051610909969594939291906116b1565b60405180910390a361091a81611916565b905061083c565b505050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600088888888888888886040516020016109799897969594939291906116ee565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206119488339815191526109b681336104bd565b6109bf826106cb565b610a255760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016106b4565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610a7d81336104bd565b61062a8383610fa6565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610ab381600061092f565b610ac157610ac181336104bd565b878614610ae05760405162461bcd60e51b81526004016106b4906117c6565b878414610aff5760405162461bcd60e51b81526004016106b4906117c6565b6000610b118a8a8a8a8a8a8a8a610958565b9050610b1d8185610d39565b60005b89811015610bd057610bc082828d8d85818110610b4d57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b62919061128e565b8c8c86818110610b8257634e487b7160e01b600052603260045260246000fd5b905060200201358b8b87818110610ba957634e487b7160e01b600052603260045260246000fd5b9050602002810190610bbb9190611853565b610dd5565b610bc981611916565b9050610b20565b50610bda81610ee9565b50505050505050505050565b610bf0828261092f565b6106c757610c08816001600160a01b0316601461100b565b610c1383602061100b565b604051602001610c2492919061160a565b60408051601f198184030181529082905262461bcd60e51b82526106b491600401611793565b610c538261062f565b15610cb85760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016106b4565b600254811015610d195760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016106b4565b610d238142611898565b6000928352600160205260409092209190915550565b610d42826105de565b610d5e5760405162461bcd60e51b81526004016106b490611809565b801580610d7a5750600081815260016020819052604090912054145b6106c75760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016106b4565b6000846001600160a01b0316848484604051610df29291906115fa565b60006040518083038185875af1925050503d8060008114610e2f576040519150601f19603f3d011682016040523d82523d6000602084013e610e34565b606091505b5050905080610ea15760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016106b4565b85877fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5887878787604051610ed8949392919061167f565b60405180910390a350505050505050565b610ef2816105de565b610f0e5760405162461bcd60e51b81526004016106b490611809565b600090815260016020819052604090912055565b610f2c828261092f565b6106c7576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610f623390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610fb0828261092f565b156106c7576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060600061101a8360026118b0565b611025906002611898565b67ffffffffffffffff81111561104b57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611075576020820181803683370190505b509050600360fc1b8160008151811061109e57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106110db57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006110ff8460026118b0565b61110a906001611898565b90505b600181111561119e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061114c57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061117057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93611197816118ff565b905061110d565b5083156105fd5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106b4565b80356001600160a01b038116811461056157600080fd5b60008083601f840112611215578182fd5b50813567ffffffffffffffff81111561122c578182fd5b6020830191508360208260051b850101111561124757600080fd5b9250929050565b60008083601f84011261125f578182fd5b50813567ffffffffffffffff811115611276578182fd5b60208301915083602082850101111561124757600080fd5b60006020828403121561129f578081fd5b6105fd826111ed565b60008060008060008060a087890312156112c0578182fd5b6112c9876111ed565b955060208701359450604087013567ffffffffffffffff8111156112eb578283fd5b6112f789828a0161124e565b979a9699509760608101359660809091013595509350505050565b600080600080600080600060c0888a03121561132c578081fd5b611335886111ed565b965060208801359550604088013567ffffffffffffffff811115611357578182fd5b6113638a828b0161124e565b989b979a50986060810135976080820135975060a09091013595509350505050565b60008060008060008060008060a0898b0312156113a0578081fd5b883567ffffffffffffffff808211156113b7578283fd5b6113c38c838d01611204565b909a50985060208b01359150808211156113db578283fd5b6113e78c838d01611204565b909850965060408b01359150808211156113ff578283fd5b5061140c8b828c01611204565b999c989b509699959896976060870135966080013595509350505050565b600080600080600080600080600060c08a8c031215611447578081fd5b893567ffffffffffffffff8082111561145e578283fd5b61146a8d838e01611204565b909b50995060208c0135915080821115611482578283fd5b61148e8d838e01611204565b909950975060408c01359150808211156114a6578283fd5b506114b38c828d01611204565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b6000602082840312156114e9578081fd5b5035919050565b60008060408385031215611502578182fd5b82359150611512602084016111ed565b90509250929050565b60006020828403121561152c578081fd5b81356001600160e01b0319811681146105fd578182fd5b60008284526020808501808196508560051b8101915084845b878110156115c35782840389528135601e1988360301811261157c578687fd5b8701803567ffffffffffffffff811115611594578788fd5b8036038913156115a2578788fd5b6115af86828985016115d0565b9a87019a955050509084019060010161155c565b5091979650505050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000828483379101908152919050565b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516116428160178501602088016118cf565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516116738160288401602088016118cf565b01602801949350505050565b600060018060a01b0386168252846020830152606060408301526116a76060830184866115d0565b9695505050505050565b600060018060a01b038816825286602083015260a060408301526116d960a0830186886115d0565b60608301949094525060800152949350505050565b60a0808252810188905260008960c08301825b8b81101561172f576001600160a01b0361171a846111ed565b16825260209283019290910190600101611701565b5083810360208501528881526001600160fb1b0389111561174e578283fd5b8860051b9150818a6020830137016020818101838152848303909101604085015261177a81888a611543565b6060850196909652505050608001529695505050505050565b60006020825282518060208401526117b28160408501602087016118cf565b601f01601f19169190910160400192915050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b6000808335601e19843603018112611869578283fd5b83018035915067ffffffffffffffff821115611883578283fd5b60200191503681900382131561124757600080fd5b600082198211156118ab576118ab611931565b500190565b60008160001904831182151516156118ca576118ca611931565b500290565b60005b838110156118ea5781810151838201526020016118d2565b838111156118f9576000848401525b50505050565b60008161190e5761190e611931565b506000190190565b600060001982141561192a5761192a611931565b5060010190565b634e487b7160e01b600052601160045260246000fdfeb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1a2646970667358221220361a1d1e9106ffc77cb76ed529f6648bc4105a53ba3e6687320a78e96c57c24d64736f6c634300080300335f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63", - "deployedBytecode": "0x60806040526004361061014f5760003560e01c806364d62353116100b6578063b1c5f4271161006f578063b1c5f427146103f3578063c4d252f514610413578063d45c443514610433578063d547741f14610460578063e38335e514610480578063f27a0c921461049357610156565b806364d623531461033c5780638065657f1461035c5780638f2a0bb01461037c5780638f61f4f51461039c57806391d14854146103be578063a217fddf146103de57610156565b8063248a9ca311610108578063248a9ca31461025b5780632ab0f5291461028b5780632f2ff15d146102bc57806331d50750146102dc57806336568abe146102fc578063584b153e1461031c57610156565b806301d5062a1461015b57806301ffc9a71461017d57806307bd0265146101b25780630d3cf6fc146101f4578063134008d31461022857806313bc9f201461023b57610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017b610176366004611312565b6104a8565b005b34801561018957600080fd5b5061019d61019836600461151b565b61052d565b60405190151581526020015b60405180910390f35b3480156101be57600080fd5b506101e67fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b6040519081526020016101a9565b34801561020057600080fd5b506101e67f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b61017b6102363660046112a8565b610566565b34801561024757600080fd5b5061019d6102563660046114d8565b6105de565b34801561026757600080fd5b506101e66102763660046114d8565b60009081526020819052604090206001015490565b34801561029757600080fd5b5061019d6102a63660046114d8565b6000908152600160208190526040909120541490565b3480156102c857600080fd5b5061017b6102d73660046114f0565b610604565b3480156102e857600080fd5b5061019d6102f73660046114d8565b61062f565b34801561030857600080fd5b5061017b6103173660046114f0565b610648565b34801561032857600080fd5b5061019d6103373660046114d8565b6106cb565b34801561034857600080fd5b5061017b6103573660046114d8565b6106e1565b34801561036857600080fd5b506101e66103773660046112a8565b610785565b34801561038857600080fd5b5061017b61039736600461142a565b6107c4565b3480156103a857600080fd5b506101e660008051602061194883398151915281565b3480156103ca57600080fd5b5061019d6103d93660046114f0565b61092f565b3480156103ea57600080fd5b506101e6600081565b3480156103ff57600080fd5b506101e661040e366004611385565b610958565b34801561041f57600080fd5b5061017b61042e3660046114d8565b61099d565b34801561043f57600080fd5b506101e661044e3660046114d8565b60009081526001602052604090205490565b34801561046c57600080fd5b5061017b61047b3660046114f0565b610a61565b61017b61048e366004611385565b610a87565b34801561049f57600080fd5b506002546101e6565b6000805160206119488339815191526104c281335b610be6565b60006104d2898989898989610785565b90506104de8184610c4a565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161051a969594939291906116b1565b60405180910390a3505050505050505050565b60006001600160e01b03198216637965db0b60e01b148061055e57506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6361059281600061092f565b6105a0576105a081336104bd565b60006105b0888888888888610785565b90506105bc8185610d39565b6105cb8160008a8a8a8a610dd5565b6105d481610ee9565b5050505050505050565b6000818152600160205260408120546001811180156105fd5750428111155b9392505050565b60008281526020819052604090206001015461062081336104bd565b61062a8383610f22565b505050565b60008181526001602052604081205481905b1192915050565b6001600160a01b03811633146106bd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6106c78282610fa6565b5050565b6000818152600160208190526040822054610641565b3330146107445760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016106b4565b60025460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600255565b60008686868686866040516020016107a2969594939291906116b1565b6040516020818303038152906040528051906020012090509695505050505050565b6000805160206119488339815191526107dd81336104bd565b8887146107fc5760405162461bcd60e51b81526004016106b4906117c6565b88851461081b5760405162461bcd60e51b81526004016106b4906117c6565b600061082d8b8b8b8b8b8b8b8b610958565b90506108398184610c4a565b60005b8a8110156109215780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e8581811061088757634e487b7160e01b600052603260045260246000fd5b905060200201602081019061089c919061128e565b8d8d868181106108bc57634e487b7160e01b600052603260045260246000fd5b905060200201358c8c878181106108e357634e487b7160e01b600052603260045260246000fd5b90506020028101906108f59190611853565b8c8b604051610909969594939291906116b1565b60405180910390a361091a81611916565b905061083c565b505050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600088888888888888886040516020016109799897969594939291906116ee565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206119488339815191526109b681336104bd565b6109bf826106cb565b610a255760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016106b4565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610a7d81336104bd565b61062a8383610fa6565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610ab381600061092f565b610ac157610ac181336104bd565b878614610ae05760405162461bcd60e51b81526004016106b4906117c6565b878414610aff5760405162461bcd60e51b81526004016106b4906117c6565b6000610b118a8a8a8a8a8a8a8a610958565b9050610b1d8185610d39565b60005b89811015610bd057610bc082828d8d85818110610b4d57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b62919061128e565b8c8c86818110610b8257634e487b7160e01b600052603260045260246000fd5b905060200201358b8b87818110610ba957634e487b7160e01b600052603260045260246000fd5b9050602002810190610bbb9190611853565b610dd5565b610bc981611916565b9050610b20565b50610bda81610ee9565b50505050505050505050565b610bf0828261092f565b6106c757610c08816001600160a01b0316601461100b565b610c1383602061100b565b604051602001610c2492919061160a565b60408051601f198184030181529082905262461bcd60e51b82526106b491600401611793565b610c538261062f565b15610cb85760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016106b4565b600254811015610d195760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016106b4565b610d238142611898565b6000928352600160205260409092209190915550565b610d42826105de565b610d5e5760405162461bcd60e51b81526004016106b490611809565b801580610d7a5750600081815260016020819052604090912054145b6106c75760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016106b4565b6000846001600160a01b0316848484604051610df29291906115fa565b60006040518083038185875af1925050503d8060008114610e2f576040519150601f19603f3d011682016040523d82523d6000602084013e610e34565b606091505b5050905080610ea15760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016106b4565b85877fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5887878787604051610ed8949392919061167f565b60405180910390a350505050505050565b610ef2816105de565b610f0e5760405162461bcd60e51b81526004016106b490611809565b600090815260016020819052604090912055565b610f2c828261092f565b6106c7576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610f623390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610fb0828261092f565b156106c7576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060600061101a8360026118b0565b611025906002611898565b67ffffffffffffffff81111561104b57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611075576020820181803683370190505b509050600360fc1b8160008151811061109e57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106110db57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006110ff8460026118b0565b61110a906001611898565b90505b600181111561119e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061114c57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061117057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93611197816118ff565b905061110d565b5083156105fd5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106b4565b80356001600160a01b038116811461056157600080fd5b60008083601f840112611215578182fd5b50813567ffffffffffffffff81111561122c578182fd5b6020830191508360208260051b850101111561124757600080fd5b9250929050565b60008083601f84011261125f578182fd5b50813567ffffffffffffffff811115611276578182fd5b60208301915083602082850101111561124757600080fd5b60006020828403121561129f578081fd5b6105fd826111ed565b60008060008060008060a087890312156112c0578182fd5b6112c9876111ed565b955060208701359450604087013567ffffffffffffffff8111156112eb578283fd5b6112f789828a0161124e565b979a9699509760608101359660809091013595509350505050565b600080600080600080600060c0888a03121561132c578081fd5b611335886111ed565b965060208801359550604088013567ffffffffffffffff811115611357578182fd5b6113638a828b0161124e565b989b979a50986060810135976080820135975060a09091013595509350505050565b60008060008060008060008060a0898b0312156113a0578081fd5b883567ffffffffffffffff808211156113b7578283fd5b6113c38c838d01611204565b909a50985060208b01359150808211156113db578283fd5b6113e78c838d01611204565b909850965060408b01359150808211156113ff578283fd5b5061140c8b828c01611204565b999c989b509699959896976060870135966080013595509350505050565b600080600080600080600080600060c08a8c031215611447578081fd5b893567ffffffffffffffff8082111561145e578283fd5b61146a8d838e01611204565b909b50995060208c0135915080821115611482578283fd5b61148e8d838e01611204565b909950975060408c01359150808211156114a6578283fd5b506114b38c828d01611204565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b6000602082840312156114e9578081fd5b5035919050565b60008060408385031215611502578182fd5b82359150611512602084016111ed565b90509250929050565b60006020828403121561152c578081fd5b81356001600160e01b0319811681146105fd578182fd5b60008284526020808501808196508560051b8101915084845b878110156115c35782840389528135601e1988360301811261157c578687fd5b8701803567ffffffffffffffff811115611594578788fd5b8036038913156115a2578788fd5b6115af86828985016115d0565b9a87019a955050509084019060010161155c565b5091979650505050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000828483379101908152919050565b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516116428160178501602088016118cf565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516116738160288401602088016118cf565b01602801949350505050565b600060018060a01b0386168252846020830152606060408301526116a76060830184866115d0565b9695505050505050565b600060018060a01b038816825286602083015260a060408301526116d960a0830186886115d0565b60608301949094525060800152949350505050565b60a0808252810188905260008960c08301825b8b81101561172f576001600160a01b0361171a846111ed565b16825260209283019290910190600101611701565b5083810360208501528881526001600160fb1b0389111561174e578283fd5b8860051b9150818a6020830137016020818101838152848303909101604085015261177a81888a611543565b6060850196909652505050608001529695505050505050565b60006020825282518060208401526117b28160408501602087016118cf565b601f01601f19169190910160400192915050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b6000808335601e19843603018112611869578283fd5b83018035915067ffffffffffffffff821115611883578283fd5b60200191503681900382131561124757600080fd5b600082198211156118ab576118ab611931565b500190565b60008160001904831182151516156118ca576118ca611931565b500290565b60005b838110156118ea5781810151838201526020016118d2565b838111156118f9576000848401525b50505050565b60008161190e5761190e611931565b506000190190565b600060001982141561192a5761192a611931565b5060010190565b634e487b7160e01b600052601160045260246000fdfeb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1a2646970667358221220361a1d1e9106ffc77cb76ed529f6648bc4105a53ba3e6687320a78e96c57c24d64736f6c63430008030033", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620023a4380380620023a4833981016040819052620000349162000408565b6200004f60008051602062002324833981519152806200022d565b6200007960008051602062002344833981519152600080516020620023248339815191526200022d565b620000a360008051602062002364833981519152600080516020620023248339815191526200022d565b620000cd60008051602062002384833981519152600080516020620023248339815191526200022d565b620000e8600080516020620023248339815191523062000278565b6001600160a01b03811615620001135762000113600080516020620023248339815191528262000278565b60005b835181101562000199576200015d600080516020620023448339815191528583815181106200014957620001496200048f565b60200260200101516200027860201b60201c565b62000186600080516020620023848339815191528583815181106200014957620001496200048f565b6200019181620004a5565b905062000116565b5060005b8251811015620001e357620001d0600080516020620023648339815191528483815181106200014957620001496200048f565b620001db81620004a5565b90506200019d565b5060028490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a150505050620004cd565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b62000284828262000288565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000284576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002e43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200035657600080fd5b919050565b600082601f8301126200036d57600080fd5b815160206001600160401b03808311156200038c576200038c62000328565b8260051b604051601f19603f83011681018181108482111715620003b457620003b462000328565b604052938452858101830193838101925087851115620003d357600080fd5b83870191505b84821015620003fd57620003ed826200033e565b83529183019190830190620003d9565b979650505050505050565b600080600080608085870312156200041f57600080fd5b845160208601519094506001600160401b03808211156200043f57600080fd5b6200044d888389016200035b565b945060408701519150808211156200046457600080fd5b5062000473878288016200035b565b92505062000484606086016200033e565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b600060018201620004c657634e487b7160e01b600052601160045260246000fd5b5060010190565b611e4780620004dd6000396000f3fe6080604052600436106101bb5760003560e01c80638065657f116100ec578063bc197c811161008a578063d547741f11610064578063d547741f14610582578063e38335e5146105a2578063f23a6e61146105b5578063f27a0c92146105e157600080fd5b8063bc197c8114610509578063c4d252f514610535578063d45c44351461055557600080fd5b806391d14854116100c657806391d1485414610480578063a217fddf146104a0578063b08e51c0146104b5578063b1c5f427146104e957600080fd5b80638065657f1461040c5780638f2a0bb01461042c5780638f61f4f51461044c57600080fd5b8063248a9ca31161015957806331d507501161013357806331d507501461038c57806336568abe146103ac578063584b153e146103cc57806364d62353146103ec57600080fd5b8063248a9ca31461030b5780632ab0f5291461033b5780632f2ff15d1461036c57600080fd5b80630d3cf6fc116101955780630d3cf6fc14610260578063134008d31461029457806313bc9f20146102a7578063150b7a02146102c757600080fd5b806301d5062a146101c757806301ffc9a7146101e957806307bd02651461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e2366004611442565b6105f6565b005b3480156101f557600080fd5b506102096102043660046114b6565b6106cc565b60405190151581526020015b60405180910390f35b34801561022a57600080fd5b506102527fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610215565b34801561026c57600080fd5b506102527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101e76102a23660046114e0565b6106f7565b3480156102b357600080fd5b506102096102c236600461154b565b6107ac565b3480156102d357600080fd5b506102f26102e2366004611619565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610215565b34801561031757600080fd5b5061025261032636600461154b565b60009081526020819052604090206001015490565b34801561034757600080fd5b5061020961035636600461154b565b6000908152600160208190526040909120541490565b34801561037857600080fd5b506101e7610387366004611680565b6107d2565b34801561039857600080fd5b506102096103a736600461154b565b6107fc565b3480156103b857600080fd5b506101e76103c7366004611680565b610815565b3480156103d857600080fd5b506102096103e736600461154b565b610898565b3480156103f857600080fd5b506101e761040736600461154b565b6108ae565b34801561041857600080fd5b506102526104273660046114e0565b610952565b34801561043857600080fd5b506101e76104473660046116f0565b610991565b34801561045857600080fd5b506102527fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b34801561048c57600080fd5b5061020961049b366004611680565b610b24565b3480156104ac57600080fd5b50610252600081565b3480156104c157600080fd5b506102527ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b3480156104f557600080fd5b506102526105043660046117a1565b610b4d565b34801561051557600080fd5b506102f26105243660046118c8565b63bc197c8160e01b95945050505050565b34801561054157600080fd5b506101e761055036600461154b565b610b92565b34801561056157600080fd5b5061025261057036600461154b565b60009081526001602052604090205490565b34801561058e57600080fd5b506101e761059d366004611680565b610c67565b6101e76105b03660046117a1565b610c8c565b3480156105c157600080fd5b506102f26105d0366004611971565b63f23a6e6160e01b95945050505050565b3480156105ed57600080fd5b50600254610252565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161062081610e16565b6000610630898989898989610952565b905061063c8184610e23565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a604051610678969594939291906119fe565b60405180910390a383156106c157807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106b891815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806106f157506106f182610f12565b92915050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610723816000610b24565b610731576107318133610f47565b6000610741888888888888610952565b905061074d8185610fa0565b6107598888888861103c565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107919493929190611a3b565b60405180910390a36107a28161110f565b5050505050505050565b6000818152600160205260408120546001811180156107cb5750428111155b9392505050565b6000828152602081905260409020600101546107ed81610e16565b6107f78383611148565b505050565b60008181526001602052604081205481905b1192915050565b6001600160a01b038116331461088a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61089482826111cc565b5050565b600081815260016020819052604082205461080e565b3330146109115760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b6064820152608401610881565b60025460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600255565b600086868686868660405160200161096f969594939291906119fe565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16109bb81610e16565b8887146109da5760405162461bcd60e51b815260040161088190611a6d565b8885146109f95760405162461bcd60e51b815260040161088190611a6d565b6000610a0b8b8b8b8b8b8b8b8b610b4d565b9050610a178184610e23565b60005b8a811015610ad55780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610a5757610a57611ab0565b9050602002016020810190610a6c9190611ac6565b8d8d86818110610a7e57610a7e611ab0565b905060200201358c8c87818110610a9757610a97611ab0565b9050602002810190610aa99190611ae1565b8c8b604051610abd969594939291906119fe565b60405180910390a3610ace81611b3d565b9050610a1a565b508315610b1757807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610b0e91815260200190565b60405180910390a25b5050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610b6e989796959493929190611be6565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610bbc81610e16565b610bc582610898565b610c2b5760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b6064820152608401610881565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610c8281610e16565b6107f783836111cc565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610cb8816000610b24565b610cc657610cc68133610f47565b878614610ce55760405162461bcd60e51b815260040161088190611a6d565b878414610d045760405162461bcd60e51b815260040161088190611a6d565b6000610d168a8a8a8a8a8a8a8a610b4d565b9050610d228185610fa0565b60005b89811015610e005760008b8b83818110610d4157610d41611ab0565b9050602002016020810190610d569190611ac6565b905060008a8a84818110610d6c57610d6c611ab0565b9050602002013590503660008a8a86818110610d8a57610d8a611ab0565b9050602002810190610d9c9190611ae1565b91509150610dac8484848461103c565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610de39493929190611a3b565b60405180910390a35050505080610df990611b3d565b9050610d25565b50610e0a8161110f565b50505050505050505050565b610e208133610f47565b50565b610e2c826107fc565b15610e915760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b6064820152608401610881565b600254811015610ef25760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b6064820152608401610881565b610efc8142611c91565b6000928352600160205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b14806106f157506301ffc9a760e01b6001600160e01b03198316146106f1565b610f518282610b24565b61089457610f5e81611231565b610f69836020611243565b604051602001610f7a929190611cd9565b60408051601f198184030181529082905262461bcd60e51b825261088191600401611d4e565b610fa9826107ac565b610fc55760405162461bcd60e51b815260040161088190611d81565b801580610fe15750600081815260016020819052604090912054145b6108945760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b6064820152608401610881565b6000846001600160a01b0316848484604051611059929190611dcb565b60006040518083038185875af1925050503d8060008114611096576040519150601f19603f3d011682016040523d82523d6000602084013e61109b565b606091505b50509050806111085760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b6064820152608401610881565b5050505050565b611118816107ac565b6111345760405162461bcd60e51b815260040161088190611d81565b600090815260016020819052604090912055565b6111528282610b24565b610894576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556111883390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6111d68282610b24565b15610894576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606106f16001600160a01b03831660145b60606000611252836002611ddb565b61125d906002611c91565b6001600160401b0381111561127457611274611564565b6040519080825280601f01601f19166020018201604052801561129e576020820181803683370190505b509050600360fc1b816000815181106112b9576112b9611ab0565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106112e8576112e8611ab0565b60200101906001600160f81b031916908160001a905350600061130c846002611ddb565b611317906001611c91565b90505b600181111561138f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061134b5761134b611ab0565b1a60f81b82828151811061136157611361611ab0565b60200101906001600160f81b031916908160001a90535060049490941c9361138881611dfa565b905061131a565b5083156107cb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610881565b80356001600160a01b03811681146113f557600080fd5b919050565b60008083601f84011261140c57600080fd5b5081356001600160401b0381111561142357600080fd5b60208301915083602082850101111561143b57600080fd5b9250929050565b600080600080600080600060c0888a03121561145d57600080fd5b611466886113de565b96506020880135955060408801356001600160401b0381111561148857600080fd5b6114948a828b016113fa565b989b979a50986060810135976080820135975060a09091013595509350505050565b6000602082840312156114c857600080fd5b81356001600160e01b0319811681146107cb57600080fd5b60008060008060008060a087890312156114f957600080fd5b611502876113de565b95506020870135945060408701356001600160401b0381111561152457600080fd5b61153089828a016113fa565b979a9699509760608101359660809091013595509350505050565b60006020828403121561155d57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156115a2576115a2611564565b604052919050565b600082601f8301126115bb57600080fd5b81356001600160401b038111156115d4576115d4611564565b6115e7601f8201601f191660200161157a565b8181528460208386010111156115fc57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561162f57600080fd5b611638856113de565b9350611646602086016113de565b92506040850135915060608501356001600160401b0381111561166857600080fd5b611674878288016115aa565b91505092959194509250565b6000806040838503121561169357600080fd5b823591506116a3602084016113de565b90509250929050565b60008083601f8401126116be57600080fd5b5081356001600160401b038111156116d557600080fd5b6020830191508360208260051b850101111561143b57600080fd5b600080600080600080600080600060c08a8c03121561170e57600080fd5b89356001600160401b038082111561172557600080fd5b6117318d838e016116ac565b909b50995060208c013591508082111561174a57600080fd5b6117568d838e016116ac565b909950975060408c013591508082111561176f57600080fd5b5061177c8c828d016116ac565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b0312156117bd57600080fd5b88356001600160401b03808211156117d457600080fd5b6117e08c838d016116ac565b909a50985060208b01359150808211156117f957600080fd5b6118058c838d016116ac565b909850965060408b013591508082111561181e57600080fd5b5061182b8b828c016116ac565b999c989b509699959896976060870135966080013595509350505050565b600082601f83011261185a57600080fd5b813560206001600160401b0382111561187557611875611564565b8160051b61188482820161157a565b928352848101820192828101908785111561189e57600080fd5b83870192505b848310156118bd578235825291830191908301906118a4565b979650505050505050565b600080600080600060a086880312156118e057600080fd5b6118e9866113de565b94506118f7602087016113de565b935060408601356001600160401b038082111561191357600080fd5b61191f89838a01611849565b9450606088013591508082111561193557600080fd5b61194189838a01611849565b9350608088013591508082111561195757600080fd5b50611964888289016115aa565b9150509295509295909350565b600080600080600060a0868803121561198957600080fd5b611992866113de565b94506119a0602087016113de565b9350604086013592506060860135915060808601356001600160401b038111156119c957600080fd5b611964888289016115aa565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a060408201526000611a2660a0830186886119d5565b60608301949094525060800152949350505050565b60018060a01b0385168152836020820152606060408201526000611a636060830184866119d5565b9695505050505050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ad857600080fd5b6107cb826113de565b6000808335601e19843603018112611af857600080fd5b8301803591506001600160401b03821115611b1257600080fd5b60200191503681900382131561143b57600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b4f57611b4f611b27565b5060010190565b81835260006020808501808196508560051b810191508460005b87811015611bd95782840389528135601e19883603018112611b9157600080fd5b870180356001600160401b03811115611ba957600080fd5b803603891315611bb857600080fd5b611bc586828985016119d5565b9a87019a9550505090840190600101611b70565b5091979650505050505050565b60a0808252810188905260008960c08301825b8b811015611c27576001600160a01b03611c12846113de565b16825260209283019290910190600101611bf9565b5083810360208501528881526001600160fb1b03891115611c4757600080fd5b8860051b9150818a602083013781810191505060208101600081526020848303016040850152611c7881888a611b56565b6060850196909652505050608001529695505050505050565b60008219821115611ca457611ca4611b27565b500190565b60005b83811015611cc4578181015183820152602001611cac565b83811115611cd3576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611d11816017850160208801611ca9565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611d42816028840160208801611ca9565b01602801949350505050565b6020815260008251806020840152611d6d816040850160208701611ca9565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6000816000190483118215151615611df557611df5611b27565b500290565b600081611e0957611e09611b27565b50600019019056fea2646970667358221220be35042c03cd52cc4d975802efc7798f58a0d2d816f72b63513451f5ef6fbd9d64736f6c634300080d00335f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783", + "deployedBytecode": "0x6080604052600436106101bb5760003560e01c80638065657f116100ec578063bc197c811161008a578063d547741f11610064578063d547741f14610582578063e38335e5146105a2578063f23a6e61146105b5578063f27a0c92146105e157600080fd5b8063bc197c8114610509578063c4d252f514610535578063d45c44351461055557600080fd5b806391d14854116100c657806391d1485414610480578063a217fddf146104a0578063b08e51c0146104b5578063b1c5f427146104e957600080fd5b80638065657f1461040c5780638f2a0bb01461042c5780638f61f4f51461044c57600080fd5b8063248a9ca31161015957806331d507501161013357806331d507501461038c57806336568abe146103ac578063584b153e146103cc57806364d62353146103ec57600080fd5b8063248a9ca31461030b5780632ab0f5291461033b5780632f2ff15d1461036c57600080fd5b80630d3cf6fc116101955780630d3cf6fc14610260578063134008d31461029457806313bc9f20146102a7578063150b7a02146102c757600080fd5b806301d5062a146101c757806301ffc9a7146101e957806307bd02651461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e2366004611442565b6105f6565b005b3480156101f557600080fd5b506102096102043660046114b6565b6106cc565b60405190151581526020015b60405180910390f35b34801561022a57600080fd5b506102527fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610215565b34801561026c57600080fd5b506102527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101e76102a23660046114e0565b6106f7565b3480156102b357600080fd5b506102096102c236600461154b565b6107ac565b3480156102d357600080fd5b506102f26102e2366004611619565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610215565b34801561031757600080fd5b5061025261032636600461154b565b60009081526020819052604090206001015490565b34801561034757600080fd5b5061020961035636600461154b565b6000908152600160208190526040909120541490565b34801561037857600080fd5b506101e7610387366004611680565b6107d2565b34801561039857600080fd5b506102096103a736600461154b565b6107fc565b3480156103b857600080fd5b506101e76103c7366004611680565b610815565b3480156103d857600080fd5b506102096103e736600461154b565b610898565b3480156103f857600080fd5b506101e761040736600461154b565b6108ae565b34801561041857600080fd5b506102526104273660046114e0565b610952565b34801561043857600080fd5b506101e76104473660046116f0565b610991565b34801561045857600080fd5b506102527fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b34801561048c57600080fd5b5061020961049b366004611680565b610b24565b3480156104ac57600080fd5b50610252600081565b3480156104c157600080fd5b506102527ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b3480156104f557600080fd5b506102526105043660046117a1565b610b4d565b34801561051557600080fd5b506102f26105243660046118c8565b63bc197c8160e01b95945050505050565b34801561054157600080fd5b506101e761055036600461154b565b610b92565b34801561056157600080fd5b5061025261057036600461154b565b60009081526001602052604090205490565b34801561058e57600080fd5b506101e761059d366004611680565b610c67565b6101e76105b03660046117a1565b610c8c565b3480156105c157600080fd5b506102f26105d0366004611971565b63f23a6e6160e01b95945050505050565b3480156105ed57600080fd5b50600254610252565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161062081610e16565b6000610630898989898989610952565b905061063c8184610e23565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a604051610678969594939291906119fe565b60405180910390a383156106c157807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106b891815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806106f157506106f182610f12565b92915050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610723816000610b24565b610731576107318133610f47565b6000610741888888888888610952565b905061074d8185610fa0565b6107598888888861103c565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107919493929190611a3b565b60405180910390a36107a28161110f565b5050505050505050565b6000818152600160205260408120546001811180156107cb5750428111155b9392505050565b6000828152602081905260409020600101546107ed81610e16565b6107f78383611148565b505050565b60008181526001602052604081205481905b1192915050565b6001600160a01b038116331461088a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61089482826111cc565b5050565b600081815260016020819052604082205461080e565b3330146109115760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b6064820152608401610881565b60025460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600255565b600086868686868660405160200161096f969594939291906119fe565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16109bb81610e16565b8887146109da5760405162461bcd60e51b815260040161088190611a6d565b8885146109f95760405162461bcd60e51b815260040161088190611a6d565b6000610a0b8b8b8b8b8b8b8b8b610b4d565b9050610a178184610e23565b60005b8a811015610ad55780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610a5757610a57611ab0565b9050602002016020810190610a6c9190611ac6565b8d8d86818110610a7e57610a7e611ab0565b905060200201358c8c87818110610a9757610a97611ab0565b9050602002810190610aa99190611ae1565b8c8b604051610abd969594939291906119fe565b60405180910390a3610ace81611b3d565b9050610a1a565b508315610b1757807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610b0e91815260200190565b60405180910390a25b5050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610b6e989796959493929190611be6565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610bbc81610e16565b610bc582610898565b610c2b5760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b6064820152608401610881565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610c8281610e16565b6107f783836111cc565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610cb8816000610b24565b610cc657610cc68133610f47565b878614610ce55760405162461bcd60e51b815260040161088190611a6d565b878414610d045760405162461bcd60e51b815260040161088190611a6d565b6000610d168a8a8a8a8a8a8a8a610b4d565b9050610d228185610fa0565b60005b89811015610e005760008b8b83818110610d4157610d41611ab0565b9050602002016020810190610d569190611ac6565b905060008a8a84818110610d6c57610d6c611ab0565b9050602002013590503660008a8a86818110610d8a57610d8a611ab0565b9050602002810190610d9c9190611ae1565b91509150610dac8484848461103c565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610de39493929190611a3b565b60405180910390a35050505080610df990611b3d565b9050610d25565b50610e0a8161110f565b50505050505050505050565b610e208133610f47565b50565b610e2c826107fc565b15610e915760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b6064820152608401610881565b600254811015610ef25760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b6064820152608401610881565b610efc8142611c91565b6000928352600160205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b14806106f157506301ffc9a760e01b6001600160e01b03198316146106f1565b610f518282610b24565b61089457610f5e81611231565b610f69836020611243565b604051602001610f7a929190611cd9565b60408051601f198184030181529082905262461bcd60e51b825261088191600401611d4e565b610fa9826107ac565b610fc55760405162461bcd60e51b815260040161088190611d81565b801580610fe15750600081815260016020819052604090912054145b6108945760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b6064820152608401610881565b6000846001600160a01b0316848484604051611059929190611dcb565b60006040518083038185875af1925050503d8060008114611096576040519150601f19603f3d011682016040523d82523d6000602084013e61109b565b606091505b50509050806111085760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b6064820152608401610881565b5050505050565b611118816107ac565b6111345760405162461bcd60e51b815260040161088190611d81565b600090815260016020819052604090912055565b6111528282610b24565b610894576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556111883390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6111d68282610b24565b15610894576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606106f16001600160a01b03831660145b60606000611252836002611ddb565b61125d906002611c91565b6001600160401b0381111561127457611274611564565b6040519080825280601f01601f19166020018201604052801561129e576020820181803683370190505b509050600360fc1b816000815181106112b9576112b9611ab0565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106112e8576112e8611ab0565b60200101906001600160f81b031916908160001a905350600061130c846002611ddb565b611317906001611c91565b90505b600181111561138f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061134b5761134b611ab0565b1a60f81b82828151811061136157611361611ab0565b60200101906001600160f81b031916908160001a90535060049490941c9361138881611dfa565b905061131a565b5083156107cb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610881565b80356001600160a01b03811681146113f557600080fd5b919050565b60008083601f84011261140c57600080fd5b5081356001600160401b0381111561142357600080fd5b60208301915083602082850101111561143b57600080fd5b9250929050565b600080600080600080600060c0888a03121561145d57600080fd5b611466886113de565b96506020880135955060408801356001600160401b0381111561148857600080fd5b6114948a828b016113fa565b989b979a50986060810135976080820135975060a09091013595509350505050565b6000602082840312156114c857600080fd5b81356001600160e01b0319811681146107cb57600080fd5b60008060008060008060a087890312156114f957600080fd5b611502876113de565b95506020870135945060408701356001600160401b0381111561152457600080fd5b61153089828a016113fa565b979a9699509760608101359660809091013595509350505050565b60006020828403121561155d57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156115a2576115a2611564565b604052919050565b600082601f8301126115bb57600080fd5b81356001600160401b038111156115d4576115d4611564565b6115e7601f8201601f191660200161157a565b8181528460208386010111156115fc57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561162f57600080fd5b611638856113de565b9350611646602086016113de565b92506040850135915060608501356001600160401b0381111561166857600080fd5b611674878288016115aa565b91505092959194509250565b6000806040838503121561169357600080fd5b823591506116a3602084016113de565b90509250929050565b60008083601f8401126116be57600080fd5b5081356001600160401b038111156116d557600080fd5b6020830191508360208260051b850101111561143b57600080fd5b600080600080600080600080600060c08a8c03121561170e57600080fd5b89356001600160401b038082111561172557600080fd5b6117318d838e016116ac565b909b50995060208c013591508082111561174a57600080fd5b6117568d838e016116ac565b909950975060408c013591508082111561176f57600080fd5b5061177c8c828d016116ac565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b0312156117bd57600080fd5b88356001600160401b03808211156117d457600080fd5b6117e08c838d016116ac565b909a50985060208b01359150808211156117f957600080fd5b6118058c838d016116ac565b909850965060408b013591508082111561181e57600080fd5b5061182b8b828c016116ac565b999c989b509699959896976060870135966080013595509350505050565b600082601f83011261185a57600080fd5b813560206001600160401b0382111561187557611875611564565b8160051b61188482820161157a565b928352848101820192828101908785111561189e57600080fd5b83870192505b848310156118bd578235825291830191908301906118a4565b979650505050505050565b600080600080600060a086880312156118e057600080fd5b6118e9866113de565b94506118f7602087016113de565b935060408601356001600160401b038082111561191357600080fd5b61191f89838a01611849565b9450606088013591508082111561193557600080fd5b61194189838a01611849565b9350608088013591508082111561195757600080fd5b50611964888289016115aa565b9150509295509295909350565b600080600080600060a0868803121561198957600080fd5b611992866113de565b94506119a0602087016113de565b9350604086013592506060860135915060808601356001600160401b038111156119c957600080fd5b611964888289016115aa565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a060408201526000611a2660a0830186886119d5565b60608301949094525060800152949350505050565b60018060a01b0385168152836020820152606060408201526000611a636060830184866119d5565b9695505050505050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ad857600080fd5b6107cb826113de565b6000808335601e19843603018112611af857600080fd5b8301803591506001600160401b03821115611b1257600080fd5b60200191503681900382131561143b57600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b4f57611b4f611b27565b5060010190565b81835260006020808501808196508560051b810191508460005b87811015611bd95782840389528135601e19883603018112611b9157600080fd5b870180356001600160401b03811115611ba957600080fd5b803603891315611bb857600080fd5b611bc586828985016119d5565b9a87019a9550505090840190600101611b70565b5091979650505050505050565b60a0808252810188905260008960c08301825b8b811015611c27576001600160a01b03611c12846113de565b16825260209283019290910190600101611bf9565b5083810360208501528881526001600160fb1b03891115611c4757600080fd5b8860051b9150818a602083013781810191505060208101600081526020848303016040850152611c7881888a611b56565b6060850196909652505050608001529695505050505050565b60008219821115611ca457611ca4611b27565b500190565b60005b83811015611cc4578181015183820152602001611cac565b83811115611cd3576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611d11816017850160208801611ca9565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611d42816028840160208801611ca9565b01602801949350505050565b6020815260008251806020840152611d6d816040850160208701611ca9565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6000816000190483118215151615611df557611df5611b27565b500290565b600081611e0957611e09611b27565b50600019019056fea2646970667358221220be35042c03cd52cc4d975802efc7798f58a0d2d816f72b63513451f5ef6fbd9d64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/Timers.json b/node_modules/@openzeppelin/contracts/build/contracts/Timers.json index c155eb2..d233aeb 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/Timers.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/Timers.json @@ -3,8 +3,8 @@ "contractName": "Timers", "sourceName": "contracts/utils/Timers.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e000e9c29388d734bb108a06559e629b9126379339ad3f1f6486a94e58d7dcd264736f6c63430008030033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e000e9c29388d734bb108a06559e629b9126379339ad3f1f6486a94e58d7dcd264736f6c63430008030033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203361d5163d1831e2ebf32fbfc15e410a638426196f221a6a1b2affd3ea7d006a64736f6c634300080d0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203361d5163d1831e2ebf32fbfc15e410a638426196f221a6a1b2affd3ea7d006a64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/TokenTimelock.json b/node_modules/@openzeppelin/contracts/build/contracts/TokenTimelock.json index 4e022d5..ca4b689 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/TokenTimelock.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/TokenTimelock.json @@ -71,8 +71,8 @@ "type": "function" } ], - "bytecode": "0x60e060405234801561001057600080fd5b506040516107c63803806107c683398101604081905261002f916100c0565b42811161009d5760405162461bcd60e51b815260206004820152603260248201527f546f6b656e54696d656c6f636b3a2072656c656173652074696d65206973206260448201527165666f72652063757272656e742074696d6560701b606482015260840160405180910390fd5b6001600160601b0319606093841b81166080529190921b1660a05260c05261011a565b6000806000606084860312156100d4578283fd5b83516100df81610102565b60208501519093506100f081610102565b80925050604084015190509250925092565b6001600160a01b038116811461011757600080fd5b50565b60805160601c60a05160601c60c05161065f61016760003960008181609f015260f0015260008181605301526102a701526000818160ca015281816101820152610285015261065f6000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806338af3eed1461005157806386d1a69f14610090578063b91d40011461009a578063fc0c546a146100c8575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b6100986100ee565b005b6040517f00000000000000000000000000000000000000000000000000000000000000008152602001610087565b7f0000000000000000000000000000000000000000000000000000000000000000610073565b7f000000000000000000000000000000000000000000000000000000000000000042101561017e5760405162461bcd60e51b815260206004820152603260248201527f546f6b656e54696d656c6f636b3a2063757272656e742074696d65206973206260448201527165666f72652072656c656173652074696d6560701b60648201526084015b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b1580156101e257600080fd5b505afa1580156101f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021a9190610592565b9050600081116102785760405162461bcd60e51b815260206004820152602360248201527f546f6b656e54696d656c6f636b3a206e6f20746f6b656e7320746f2072656c6560448201526261736560e81b6064820152608401610175565b6102cc6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000836102cf565b50565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610321908490610326565b505050565b600061037b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166103f89092919063ffffffff16565b80519091501561032157808060200190518101906103999190610572565b6103215760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610175565b60606104078484600085610411565b90505b9392505050565b6060824710156104725760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610175565b843b6104c05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610175565b600080866001600160a01b031685876040516104dc91906105aa565b60006040518083038185875af1925050503d8060008114610519576040519150601f19603f3d011682016040523d82523d6000602084013e61051e565b606091505b509150915061052e828286610539565b979650505050505050565b6060831561054857508161040a565b8251156105585782518084602001fd5b8160405162461bcd60e51b815260040161017591906105c6565b600060208284031215610583578081fd5b8151801515811461040a578182fd5b6000602082840312156105a3578081fd5b5051919050565b600082516105bc8184602087016105f9565b9190910192915050565b60006020825282518060208401526105e58160408501602087016105f9565b601f01601f19169190910160400192915050565b60005b838110156106145781810151838201526020016105fc565b83811115610623576000848401525b5050505056fea2646970667358221220a696bd4fbc0c665d610e6795ee54246e0b323242a27ba1351ea2095433e92cba64736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806338af3eed1461005157806386d1a69f14610090578063b91d40011461009a578063fc0c546a146100c8575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b6100986100ee565b005b6040517f00000000000000000000000000000000000000000000000000000000000000008152602001610087565b7f0000000000000000000000000000000000000000000000000000000000000000610073565b7f000000000000000000000000000000000000000000000000000000000000000042101561017e5760405162461bcd60e51b815260206004820152603260248201527f546f6b656e54696d656c6f636b3a2063757272656e742074696d65206973206260448201527165666f72652072656c656173652074696d6560701b60648201526084015b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b1580156101e257600080fd5b505afa1580156101f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021a9190610592565b9050600081116102785760405162461bcd60e51b815260206004820152602360248201527f546f6b656e54696d656c6f636b3a206e6f20746f6b656e7320746f2072656c6560448201526261736560e81b6064820152608401610175565b6102cc6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000836102cf565b50565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610321908490610326565b505050565b600061037b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166103f89092919063ffffffff16565b80519091501561032157808060200190518101906103999190610572565b6103215760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610175565b60606104078484600085610411565b90505b9392505050565b6060824710156104725760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610175565b843b6104c05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610175565b600080866001600160a01b031685876040516104dc91906105aa565b60006040518083038185875af1925050503d8060008114610519576040519150601f19603f3d011682016040523d82523d6000602084013e61051e565b606091505b509150915061052e828286610539565b979650505050505050565b6060831561054857508161040a565b8251156105585782518084602001fd5b8160405162461bcd60e51b815260040161017591906105c6565b600060208284031215610583578081fd5b8151801515811461040a578182fd5b6000602082840312156105a3578081fd5b5051919050565b600082516105bc8184602087016105f9565b9190910192915050565b60006020825282518060208401526105e58160408501602087016105f9565b601f01601f19169190910160400192915050565b60005b838110156106145781810151838201526020016105fc565b83811115610623576000848401525b5050505056fea2646970667358221220a696bd4fbc0c665d610e6795ee54246e0b323242a27ba1351ea2095433e92cba64736f6c63430008030033", + "bytecode": "0x60e060405234801561001057600080fd5b506040516107cd3803806107cd83398101604081905261002f916100d0565b42811161009d5760405162461bcd60e51b815260206004820152603260248201527f546f6b656e54696d656c6f636b3a2072656c656173652074696d65206973206260448201527165666f72652063757272656e742074696d6560701b606482015260840160405180910390fd5b6001600160a01b03928316608052911660a05260c052610113565b6001600160a01b03811681146100cd57600080fd5b50565b6000806000606084860312156100e557600080fd5b83516100f0816100b8565b6020850151909350610101816100b8565b80925050604084015190509250925092565b60805160a05160c05161067361015a60003960008181609f015260f00152600081816053015261029801526000818160ca01528181610182015261027601526106736000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806338af3eed1461005157806386d1a69f14610090578063b91d40011461009a578063fc0c546a146100c8575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b6100986100ee565b005b6040517f00000000000000000000000000000000000000000000000000000000000000008152602001610087565b7f0000000000000000000000000000000000000000000000000000000000000000610073565b7f000000000000000000000000000000000000000000000000000000000000000042101561017e5760405162461bcd60e51b815260206004820152603260248201527f546f6b656e54696d656c6f636b3a2063757272656e742074696d65206973206260448201527165666f72652072656c656173652074696d6560701b60648201526084015b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156101e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020b919061057c565b9050600081116102695760405162461bcd60e51b815260206004820152602360248201527f546f6b656e54696d656c6f636b3a206e6f20746f6b656e7320746f2072656c6560448201526261736560e81b6064820152608401610175565b6102bd6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000836102c0565b50565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610312908490610317565b505050565b600061036c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166103ec9092919063ffffffff16565b905080516000148061038d57508080602001905181019061038d9190610595565b6103125760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610175565b60606103fb8484600085610403565b949350505050565b6060824710156104645760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610175565b600080866001600160a01b0316858760405161048091906105ee565b60006040518083038185875af1925050503d80600081146104bd576040519150601f19603f3d011682016040523d82523d6000602084013e6104c2565b606091505b50915091506104d3878383876104de565b979650505050505050565b6060831561054d578251600003610546576001600160a01b0385163b6105465760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610175565b50816103fb565b6103fb83838151156105625781518083602001fd5b8060405162461bcd60e51b8152600401610175919061060a565b60006020828403121561058e57600080fd5b5051919050565b6000602082840312156105a757600080fd5b815180151581146105b757600080fd5b9392505050565b60005b838110156105d95781810151838201526020016105c1565b838111156105e8576000848401525b50505050565b600082516106008184602087016105be565b9190910192915050565b60208152600082518060208401526106298160408501602087016105be565b601f01601f1916919091016040019291505056fea2646970667358221220717a8b2284b1b33e3d8da6eac760494ed3f74e654b74a5a7622c703e1cfd578a64736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806338af3eed1461005157806386d1a69f14610090578063b91d40011461009a578063fc0c546a146100c8575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b6100986100ee565b005b6040517f00000000000000000000000000000000000000000000000000000000000000008152602001610087565b7f0000000000000000000000000000000000000000000000000000000000000000610073565b7f000000000000000000000000000000000000000000000000000000000000000042101561017e5760405162461bcd60e51b815260206004820152603260248201527f546f6b656e54696d656c6f636b3a2063757272656e742074696d65206973206260448201527165666f72652072656c656173652074696d6560701b60648201526084015b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156101e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020b919061057c565b9050600081116102695760405162461bcd60e51b815260206004820152602360248201527f546f6b656e54696d656c6f636b3a206e6f20746f6b656e7320746f2072656c6560448201526261736560e81b6064820152608401610175565b6102bd6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000836102c0565b50565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610312908490610317565b505050565b600061036c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166103ec9092919063ffffffff16565b905080516000148061038d57508080602001905181019061038d9190610595565b6103125760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610175565b60606103fb8484600085610403565b949350505050565b6060824710156104645760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610175565b600080866001600160a01b0316858760405161048091906105ee565b60006040518083038185875af1925050503d80600081146104bd576040519150601f19603f3d011682016040523d82523d6000602084013e6104c2565b606091505b50915091506104d3878383876104de565b979650505050505050565b6060831561054d578251600003610546576001600160a01b0385163b6105465760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610175565b50816103fb565b6103fb83838151156105625781518083602001fd5b8060405162461bcd60e51b8152600401610175919061060a565b60006020828403121561058e57600080fd5b5051919050565b6000602082840312156105a757600080fd5b815180151581146105b757600080fd5b9392505050565b60005b838110156105d95781810151838201526020016105c1565b838111156105e8576000848401525b50505050565b600082516106008184602087016105be565b9190910192915050565b60208152600082518060208401526106298160408501602087016105be565b601f01601f1916919091016040019291505056fea2646970667358221220717a8b2284b1b33e3d8da6eac760494ed3f74e654b74a5a7622c703e1cfd578a64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/TransparentUpgradeableProxy.json b/node_modules/@openzeppelin/contracts/build/contracts/TransparentUpgradeableProxy.json index 93a04b5..9c5ceac 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/TransparentUpgradeableProxy.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/TransparentUpgradeableProxy.json @@ -73,83 +73,13 @@ "stateMutability": "payable", "type": "fallback" }, - { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "admin_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "changeAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "implementation_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeToAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, { "stateMutability": "payable", "type": "receive" } ], - "bytecode": "0x608060405260405162000f5a38038062000f5a8339810160408190526200002691620004e2565b82816200005560017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd62000611565b60008051602062000f13833981519152146200008157634e487b7160e01b600052600160045260246000fd5b6200008f82826000620000ff565b50620000bf905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610462000611565b60008051602062000ef383398151915214620000eb57634e487b7160e01b600052600160045260246000fd5b620000f6826200013c565b5050506200067a565b6200010a8362000197565b600082511180620001185750805b156200013757620001358383620001d960201b6200026c1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200016762000208565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001948162000241565b50565b620001a281620002f6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062000201838360405180606001604052806027815260200162000f336027913962000399565b9392505050565b60006200023260008051602062000ef383398151915260001b6200047f60201b620002141760201c565b546001600160a01b0316905090565b6001600160a01b038116620002ac5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80620002d560008051602062000ef383398151915260001b6200047f60201b620002141760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200030c816200048260201b620002981760201c565b620003705760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620002a3565b80620002d560008051602062000f1383398151915260001b6200047f60201b620002141760201c565b6060620003a68462000482565b620004035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620002a3565b600080856001600160a01b031685604051620004209190620005be565b600060405180830381855af49150503d80600081146200045d576040519150601f19603f3d011682016040523d82523d6000602084013e62000462565b606091505b509092509050620004758282866200048c565b9695505050505050565b90565b803b15155b919050565b606083156200049d57508162000201565b825115620004ae5782518084602001fd5b8160405162461bcd60e51b8152600401620002a39190620005dc565b80516001600160a01b03811681146200048757600080fd5b600080600060608486031215620004f7578283fd5b6200050284620004ca565b92506200051260208501620004ca565b60408501519092506001600160401b03808211156200052f578283fd5b818601915086601f83011262000543578283fd5b81518181111562000558576200055862000664565b604051601f8201601f19908116603f0116810190838211818310171562000583576200058362000664565b816040528281528960208487010111156200059c578586fd5b620005af83602083016020880162000635565b80955050505050509250925092565b60008251620005d281846020870162000635565b9190910192915050565b6000602082528251806020840152620005fd81604085016020870162000635565b601f01601f19169190910160400192915050565b6000828210156200063057634e487b7160e01b81526011600452602481fd5b500390565b60005b838110156200065257818101518382015260200162000638565b83811115620001355750506000910152565b634e487b7160e01b600052604160045260246000fd5b610869806200068a6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106f9565b610118565b61005b610093366004610713565b610164565b3480156100a457600080fd5b506100ad6101da565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106f9565b610217565b3480156100f557600080fd5b506100ad610241565b6101066102a2565b610116610111610346565b610355565b565b610120610379565b6001600160a01b0316336001600160a01b0316141561015957610154816040518060200160405280600081525060006103ac565b610161565b6101616100fe565b50565b61016c610379565b6001600160a01b0316336001600160a01b031614156101cd576101c88383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103ac915050565b6101d5565b6101d56100fe565b505050565b60006101e4610379565b6001600160a01b0316336001600160a01b0316141561020c57610205610346565b9050610214565b6102146100fe565b90565b61021f610379565b6001600160a01b0316336001600160a01b0316141561015957610154816103d7565b600061024b610379565b6001600160a01b0316336001600160a01b0316141561020c57610205610379565b6060610291838360405180606001604052806027815260200161080d6027913961042b565b9392505050565b803b15155b919050565b6102aa610379565b6001600160a01b0316336001600160a01b031614156103415760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b610116565b6000610350610506565b905090565b3660008037600080366000845af43d6000803e808015610374573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b6103b58361052e565b6000825111806103c25750805b156101d5576103d1838361026c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610400610379565b604080516001600160a01b03928316815291841660208301520160405180910390a16101618161056e565b606061043684610298565b6104915760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610338565b600080856001600160a01b0316856040516104ac9190610791565b600060405180830381855af49150503d80600081146104e7576040519150601f19603f3d011682016040523d82523d6000602084013e6104ec565b606091505b50915091506104fc828286610617565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61039d565b61053781610650565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105d35760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610338565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610626575081610291565b8251156106365782518084602001fd5b8160405162461bcd60e51b815260040161033891906107ad565b61065981610298565b6106bb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610338565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105f6565b80356001600160a01b038116811461029d57600080fd5b60006020828403121561070a578081fd5b610291826106e2565b600080600060408486031215610727578182fd5b610730846106e2565b9250602084013567ffffffffffffffff8082111561074c578384fd5b818601915086601f83011261075f578384fd5b81358181111561076d578485fd5b87602082850101111561077e578485fd5b6020830194508093505050509250925092565b600082516107a38184602087016107e0565b9190910192915050565b60006020825282518060208401526107cc8160408501602087016107e0565b601f01601f19169190910160400192915050565b60005b838110156107fb5781810151838201526020016107e3565b838111156103d1575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ddc0838f0b211b6b7e8eccfec1e8a5a9dd7934cff71defb09a0bae61e9135fe164736f6c63430008030033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "deployedBytecode": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106f9565b610118565b61005b610093366004610713565b610164565b3480156100a457600080fd5b506100ad6101da565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106f9565b610217565b3480156100f557600080fd5b506100ad610241565b6101066102a2565b610116610111610346565b610355565b565b610120610379565b6001600160a01b0316336001600160a01b0316141561015957610154816040518060200160405280600081525060006103ac565b610161565b6101616100fe565b50565b61016c610379565b6001600160a01b0316336001600160a01b031614156101cd576101c88383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103ac915050565b6101d5565b6101d56100fe565b505050565b60006101e4610379565b6001600160a01b0316336001600160a01b0316141561020c57610205610346565b9050610214565b6102146100fe565b90565b61021f610379565b6001600160a01b0316336001600160a01b0316141561015957610154816103d7565b600061024b610379565b6001600160a01b0316336001600160a01b0316141561020c57610205610379565b6060610291838360405180606001604052806027815260200161080d6027913961042b565b9392505050565b803b15155b919050565b6102aa610379565b6001600160a01b0316336001600160a01b031614156103415760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b610116565b6000610350610506565b905090565b3660008037600080366000845af43d6000803e808015610374573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b6103b58361052e565b6000825111806103c25750805b156101d5576103d1838361026c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610400610379565b604080516001600160a01b03928316815291841660208301520160405180910390a16101618161056e565b606061043684610298565b6104915760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610338565b600080856001600160a01b0316856040516104ac9190610791565b600060405180830381855af49150503d80600081146104e7576040519150601f19603f3d011682016040523d82523d6000602084013e6104ec565b606091505b50915091506104fc828286610617565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61039d565b61053781610650565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105d35760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610338565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610626575081610291565b8251156106365782518084602001fd5b8160405162461bcd60e51b815260040161033891906107ad565b61065981610298565b6106bb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610338565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105f6565b80356001600160a01b038116811461029d57600080fd5b60006020828403121561070a578081fd5b610291826106e2565b600080600060408486031215610727578182fd5b610730846106e2565b9250602084013567ffffffffffffffff8082111561074c578384fd5b818601915086601f83011261075f578384fd5b81358181111561076d578485fd5b87602082850101111561077e578485fd5b6020830194508093505050509250925092565b600082516107a38184602087016107e0565b9190910192915050565b60006020825282518060208401526107cc8160408501602087016107e0565b601f01601f19169190910160400192915050565b60005b838110156107fb5781810151838201526020016107e3565b838111156103d1575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ddc0838f0b211b6b7e8eccfec1e8a5a9dd7934cff71defb09a0bae61e9135fe164736f6c63430008030033", + "bytecode": "0x608060405260405162000ed038038062000ed08339810160408190526200002691620004a0565b828162000036828260006200004d565b50620000449050826200008a565b505050620005d3565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000ea960279139620002f8565b9392505050565b60006200018060008051602062000e8983398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8983398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000580565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f191906200059e565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b83811115620000835750506000910152565b600080600060608486031215620004b657600080fd5b620004c1846200043e565b9250620004d1602085016200043e565b60408501519092506001600160401b0380821115620004ef57600080fd5b818601915086601f8301126200050457600080fd5b8151818111156200051957620005196200045b565b604051601f8201601f19908116603f011681019083821181831017156200054457620005446200045b565b816040528281528960208487010111156200055e57600080fd5b6200057183602083016020880162000471565b80955050505050509250925092565b600082516200059481846020870162000471565b9190910192915050565b6020815260008251806020840152620005bf81604085016020870162000471565b601f01601f19169190910160400192915050565b6108a680620005e36000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e838360405180606001604052806027815260200161084a6027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107fa565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610816565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b838111156103b45750506000910152565b6000825161080c8184602087016107ce565b9190910192915050565b60208152600082518060208401526108358160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220eed753f2d706b2830a4f22c0a254d6bf8195eda4b6811061eb1a5a96d822738c64736f6c634300080d0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "deployedBytecode": "0x60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e838360405180606001604052806027815260200161084a6027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107fa565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610816565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b838111156103b45750506000910152565b6000825161080c8184602087016107ce565b9190910192915050565b60208152600082518060208401526108358160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220eed753f2d706b2830a4f22c0a254d6bf8195eda4b6811061eb1a5a96d822738c64736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/build/contracts/UUPSUpgradeable.json b/node_modules/@openzeppelin/contracts/build/contracts/UUPSUpgradeable.json index 7e4298f..4e877cb 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/UUPSUpgradeable.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/UUPSUpgradeable.json @@ -48,6 +48,19 @@ "name": "Upgraded", "type": "event" }, + { + "inputs": [], + "name": "proxiableUUID", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { diff --git a/node_modules/@openzeppelin/contracts/build/contracts/UpgradeableBeacon.json b/node_modules/@openzeppelin/contracts/build/contracts/UpgradeableBeacon.json index 22e6878..6b6c7e8 100644 --- a/node_modules/@openzeppelin/contracts/build/contracts/UpgradeableBeacon.json +++ b/node_modules/@openzeppelin/contracts/build/contracts/UpgradeableBeacon.json @@ -106,8 +106,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161050a38038061050a83398101604081905261002f91610148565b61003833610047565b61004181610097565b50610176565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100aa8161014260201b61020a1760201c565b6101205760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b3b151590565b600060208284031215610159578081fd5b81516001600160a01b038116811461016f578182fd5b9392505050565b610385806101856000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102ec565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f610139565b6000546001600160a01b031661007e565b61006f6100c13660046102ec565b61016f565b6000546001600160a01b031633146100f95760405162461bcd60e51b81526004016100f09061031a565b60405180910390fd5b61010281610210565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000546001600160a01b031633146101635760405162461bcd60e51b81526004016100f09061031a565b61016d600061029c565b565b6000546001600160a01b031633146101995760405162461bcd60e51b81526004016100f09061031a565b6001600160a01b0381166101fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016100f0565b6102078161029c565b50565b3b151590565b803b61027a5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b60648201526084016100f0565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102fd578081fd5b81356001600160a01b0381168114610313578182fd5b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea2646970667358221220f45bbe0d068c96fcc0c4e81cd5b0324b02af392f0e4eb101c8be8a0bc2b35bbf64736f6c63430008030033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102ec565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f610139565b6000546001600160a01b031661007e565b61006f6100c13660046102ec565b61016f565b6000546001600160a01b031633146100f95760405162461bcd60e51b81526004016100f09061031a565b60405180910390fd5b61010281610210565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000546001600160a01b031633146101635760405162461bcd60e51b81526004016100f09061031a565b61016d600061029c565b565b6000546001600160a01b031633146101995760405162461bcd60e51b81526004016100f09061031a565b6001600160a01b0381166101fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016100f0565b6102078161029c565b50565b3b151590565b803b61027a5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b60648201526084016100f0565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102fd578081fd5b81356001600160a01b0381168114610313578182fd5b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea2646970667358221220f45bbe0d068c96fcc0c4e81cd5b0324b02af392f0e4eb101c8be8a0bc2b35bbf64736f6c63430008030033", + "bytecode": "0x608060405234801561001057600080fd5b506040516104e43803806104e483398101604081905261002f91610151565b61003833610047565b61004181610097565b50610181565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100aa8161014260201b6101a01760201c565b6101205760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03163b151590565b60006020828403121561016357600080fd5b81516001600160a01b038116811461017a57600080fd5b9392505050565b610354806101906000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102ee565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102ee565b610122565b6100ce6101af565b6100d781610209565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101af565b610120600061029e565b565b61012a6101af565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161029e565b50565b6001600160a01b03163b151590565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61027c5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561030057600080fd5b81356001600160a01b038116811461031757600080fd5b939250505056fea2646970667358221220c868e6c943c1386edda57067da9e52276a92c1cb791ee80f3339462907d8ffa664736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102ee565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102ee565b610122565b6100ce6101af565b6100d781610209565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101af565b610120600061029e565b565b61012a6101af565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161029e565b50565b6001600160a01b03163b151590565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61027c5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561030057600080fd5b81356001600160a01b038116811461031757600080fd5b939250505056fea2646970667358221220c868e6c943c1386edda57067da9e52276a92c1cb791ee80f3339462907d8ffa664736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol b/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol index ffa79a3..daa9090 100644 --- a/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol +++ b/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol @@ -1,10 +1,11 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.8.0) (finance/PaymentSplitter.sol) pragma solidity ^0.8.0; +import "../token/ERC20/utils/SafeERC20.sol"; import "../utils/Address.sol"; import "../utils/Context.sol"; -import "../utils/math/SafeMath.sol"; /** * @title PaymentSplitter @@ -13,15 +14,21 @@ import "../utils/math/SafeMath.sol"; * * The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each * account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim - * an amount proportional to the percentage of total shares they were assigned. + * an amount proportional to the percentage of total shares they were assigned. The distribution of shares is set at the + * time of contract deployment and can't be updated thereafter. * * `PaymentSplitter` follows a _pull payment_ model. This means that payments are not automatically forwarded to the * accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release} * function. + * + * NOTE: This contract assumes that ERC20 tokens will behave similarly to native tokens (Ether). Rebasing tokens, and + * tokens that apply fees during transfers, are likely to not be supported as expected. If in doubt, we encourage you + * to run tests before sending real value to this contract. */ contract PaymentSplitter is Context { event PayeeAdded(address account, uint256 shares); event PaymentReleased(address to, uint256 amount); + event ERC20PaymentReleased(IERC20 indexed token, address to, uint256 amount); event PaymentReceived(address from, uint256 amount); uint256 private _totalShares; @@ -31,6 +38,9 @@ contract PaymentSplitter is Context { mapping(address => uint256) private _released; address[] private _payees; + mapping(IERC20 => uint256) private _erc20TotalReleased; + mapping(IERC20 => mapping(address => uint256)) private _erc20Released; + /** * @dev Creates an instance of `PaymentSplitter` where each account in `payees` is assigned the number of shares at * the matching position in the `shares` array. @@ -74,6 +84,14 @@ contract PaymentSplitter is Context { return _totalReleased; } + /** + * @dev Getter for the total amount of `token` already released. `token` should be the address of an IERC20 + * contract. + */ + function totalReleased(IERC20 token) public view returns (uint256) { + return _erc20TotalReleased[token]; + } + /** * @dev Getter for the amount of shares held by an account. */ @@ -88,6 +106,14 @@ contract PaymentSplitter is Context { return _released[account]; } + /** + * @dev Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an + * IERC20 contract. + */ + function released(IERC20 token, address account) public view returns (uint256) { + return _erc20Released[token][account]; + } + /** * @dev Getter for the address of the payee number `index`. */ @@ -95,6 +121,23 @@ contract PaymentSplitter is Context { return _payees[index]; } + /** + * @dev Getter for the amount of payee's releasable Ether. + */ + function releasable(address account) public view returns (uint256) { + uint256 totalReceived = address(this).balance + totalReleased(); + return _pendingPayment(account, totalReceived, released(account)); + } + + /** + * @dev Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an + * IERC20 contract. + */ + function releasable(IERC20 token, address account) public view returns (uint256) { + uint256 totalReceived = token.balanceOf(address(this)) + totalReleased(token); + return _pendingPayment(account, totalReceived, released(token, account)); + } + /** * @dev Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the * total shares and their previous withdrawals. @@ -102,18 +145,57 @@ contract PaymentSplitter is Context { function release(address payable account) public virtual { require(_shares[account] > 0, "PaymentSplitter: account has no shares"); - uint256 totalReceived = address(this).balance + _totalReleased; - uint256 payment = (totalReceived * _shares[account]) / _totalShares - _released[account]; + uint256 payment = releasable(account); require(payment != 0, "PaymentSplitter: account is not due payment"); - _released[account] = _released[account] + payment; - _totalReleased = _totalReleased + payment; + // _totalReleased is the sum of all values in _released. + // If "_totalReleased += payment" does not overflow, then "_released[account] += payment" cannot overflow. + _totalReleased += payment; + unchecked { + _released[account] += payment; + } Address.sendValue(account, payment); emit PaymentReleased(account, payment); } + /** + * @dev Triggers a transfer to `account` of the amount of `token` tokens they are owed, according to their + * percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20 + * contract. + */ + function release(IERC20 token, address account) public virtual { + require(_shares[account] > 0, "PaymentSplitter: account has no shares"); + + uint256 payment = releasable(token, account); + + require(payment != 0, "PaymentSplitter: account is not due payment"); + + // _erc20TotalReleased[token] is the sum of all values in _erc20Released[token]. + // If "_erc20TotalReleased[token] += payment" does not overflow, then "_erc20Released[token][account] += payment" + // cannot overflow. + _erc20TotalReleased[token] += payment; + unchecked { + _erc20Released[token][account] += payment; + } + + SafeERC20.safeTransfer(token, account, payment); + emit ERC20PaymentReleased(token, account, payment); + } + + /** + * @dev internal logic for computing the pending payment of an `account` given the token historical balances and + * already released amounts. + */ + function _pendingPayment( + address account, + uint256 totalReceived, + uint256 alreadyReleased + ) private view returns (uint256) { + return (totalReceived * _shares[account]) / _totalShares - alreadyReleased; + } + /** * @dev Add a new payee to the contract. * @param account The address of the payee to add. diff --git a/node_modules/@openzeppelin/contracts/governance/Governor.sol b/node_modules/@openzeppelin/contracts/governance/Governor.sol index 1dfd0da..390d2b9 100644 --- a/node_modules/@openzeppelin/contracts/governance/Governor.sol +++ b/node_modules/@openzeppelin/contracts/governance/Governor.sol @@ -1,50 +1,80 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (governance/Governor.sol) pragma solidity ^0.8.0; +import "../token/ERC721/IERC721Receiver.sol"; +import "../token/ERC1155/IERC1155Receiver.sol"; import "../utils/cryptography/ECDSA.sol"; -import "../utils/cryptography/draft-EIP712.sol"; +import "../utils/cryptography/EIP712.sol"; import "../utils/introspection/ERC165.sol"; import "../utils/math/SafeCast.sol"; +import "../utils/structs/DoubleEndedQueue.sol"; import "../utils/Address.sol"; import "../utils/Context.sol"; -import "../utils/Timers.sol"; import "./IGovernor.sol"; /** * @dev Core of the governance system, designed to be extended though various modules. * - * This contract is abstract and requires several function to be implemented in various modules: + * This contract is abstract and requires several functions to be implemented in various modules: * * - A counting module must implement {quorum}, {_quorumReached}, {_voteSucceeded} and {_countVote} - * - A voting module must implement {getVotes} - * - Additionanly, the {votingPeriod} must also be implemented + * - A voting module must implement {_getVotes} + * - Additionally, {votingPeriod} must also be implemented * * _Available since v4.3._ */ -abstract contract Governor is Context, ERC165, EIP712, IGovernor { - using SafeCast for uint256; - using Timers for Timers.BlockNumber; +abstract contract Governor is Context, ERC165, EIP712, IGovernor, IERC721Receiver, IERC1155Receiver { + using DoubleEndedQueue for DoubleEndedQueue.Bytes32Deque; bytes32 public constant BALLOT_TYPEHASH = keccak256("Ballot(uint256 proposalId,uint8 support)"); + bytes32 public constant EXTENDED_BALLOT_TYPEHASH = + keccak256("ExtendedBallot(uint256 proposalId,uint8 support,string reason,bytes params)"); + // solhint-disable var-name-mixedcase struct ProposalCore { - Timers.BlockNumber voteStart; - Timers.BlockNumber voteEnd; + // --- start retyped from Timers.BlockNumber at offset 0x00 --- + uint64 voteStart; + address proposer; + bytes4 __gap_unused0; + // --- start retyped from Timers.BlockNumber at offset 0x20 --- + uint64 voteEnd; + bytes24 __gap_unused1; + // --- Remaining fields starting at offset 0x40 --------------- bool executed; bool canceled; } + // solhint-enable var-name-mixedcase string private _name; + /// @custom:oz-retyped-from mapping(uint256 => Governor.ProposalCore) mapping(uint256 => ProposalCore) private _proposals; + // This queue keeps track of the governor operating on itself. Calls to functions protected by the + // {onlyGovernance} modifier needs to be whitelisted in this queue. Whitelisting is set in {_beforeExecute}, + // consumed by the {onlyGovernance} modifier and eventually reset in {_afterExecute}. This ensures that the + // execution of {onlyGovernance} protected calls can only be achieved through successful proposals. + DoubleEndedQueue.Bytes32Deque private _governanceCall; + /** - * @dev Restrict access to governor executing address. Some module might override the _executor function to make - * sure this modifier is consistant with the execution model. + * @dev Restricts a function so it can only be executed through governance proposals. For example, governance + * parameter setters in {GovernorSettings} are protected using this modifier. + * + * The governance executing address may be different from the Governor's own address, for example it could be a + * timelock. This can be customized by modules by overriding {_executor}. The executor is only able to invoke these + * functions during the execution of the governor's {execute} function, and not under any other circumstances. Thus, + * for example, additional timelock proposers are not able to change governance parameters without going through the + * governance protocol (since v4.6). */ modifier onlyGovernance() { require(_msgSender() == _executor(), "Governor: onlyGovernance"); + if (_executor() != address(this)) { + bytes32 msgDataHash = keccak256(_msgData()); + // loop until popping the expected operation - throw if deque is empty (operation not authorized) + while (_governanceCall.popFront() != msgDataHash) {} + } _; } @@ -55,11 +85,40 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { _name = name_; } + /** + * @dev Function to receive ETH that will be handled by the governor (disabled if executor is a third party contract) + */ + receive() external payable virtual { + require(_executor() == address(this), "Governor: must send to executor"); + } + /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) { - return interfaceId == type(IGovernor).interfaceId || super.supportsInterface(interfaceId); + bytes4 governorCancelId = this.cancel.selector ^ this.proposalProposer.selector; + + bytes4 governorParamsId = this.castVoteWithReasonAndParams.selector ^ + this.castVoteWithReasonAndParamsBySig.selector ^ + this.getVotesWithParams.selector; + + // The original interface id in v4.3. + bytes4 governor43Id = type(IGovernor).interfaceId ^ + type(IERC6372).interfaceId ^ + governorCancelId ^ + governorParamsId; + + // An updated interface id in v4.6, with params added. + bytes4 governor46Id = type(IGovernor).interfaceId ^ type(IERC6372).interfaceId ^ governorCancelId; + + // For the updated interface id in v4.9, we use governorCancelId directly. + + return + interfaceId == governor43Id || + interfaceId == governor46Id || + interfaceId == governorCancelId || + interfaceId == type(IERC1155Receiver).interfaceId || + super.supportsInterface(interfaceId); } /** @@ -79,14 +138,14 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { /** * @dev See {IGovernor-hashProposal}. * - * The proposal id is produced by hashing the RLC encoded `targets` array, the `values` array, the `calldatas` array + * The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array * and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id * can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in * advance, before the proposal is submitted. * * Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the * same proposal (with same operation and same description) will have the same id if submitted on multiple governors - * accross multiple networks. This also means that in order to execute the same operation twice (on the same + * across multiple networks. This also means that in order to execute the same operation twice (on the same * governor) the proposer will have to change the description in order to avoid proposal id conflicts. */ function hashProposal( @@ -102,38 +161,67 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { * @dev See {IGovernor-state}. */ function state(uint256 proposalId) public view virtual override returns (ProposalState) { - ProposalCore memory proposal = _proposals[proposalId]; + ProposalCore storage proposal = _proposals[proposalId]; if (proposal.executed) { return ProposalState.Executed; - } else if (proposal.canceled) { + } + + if (proposal.canceled) { return ProposalState.Canceled; - } else if (proposal.voteStart.isPending()) { + } + + uint256 snapshot = proposalSnapshot(proposalId); + + if (snapshot == 0) { + revert("Governor: unknown proposal id"); + } + + uint256 currentTimepoint = clock(); + + if (snapshot >= currentTimepoint) { return ProposalState.Pending; - } else if (proposal.voteEnd.isPending()) { + } + + uint256 deadline = proposalDeadline(proposalId); + + if (deadline >= currentTimepoint) { return ProposalState.Active; - } else if (proposal.voteEnd.isExpired()) { - return - _quorumReached(proposalId) && _voteSucceeded(proposalId) - ? ProposalState.Succeeded - : ProposalState.Defeated; + } + + if (_quorumReached(proposalId) && _voteSucceeded(proposalId)) { + return ProposalState.Succeeded; } else { - revert("Governor: unknown proposal id"); + return ProposalState.Defeated; } } + /** + * @dev Part of the Governor Bravo's interface: _"The number of votes required in order for a voter to become a proposer"_. + */ + function proposalThreshold() public view virtual returns (uint256) { + return 0; + } + /** * @dev See {IGovernor-proposalSnapshot}. */ function proposalSnapshot(uint256 proposalId) public view virtual override returns (uint256) { - return _proposals[proposalId].voteStart.getDeadline(); + return _proposals[proposalId].voteStart; } /** * @dev See {IGovernor-proposalDeadline}. */ function proposalDeadline(uint256 proposalId) public view virtual override returns (uint256) { - return _proposals[proposalId].voteEnd.getDeadline(); + return _proposals[proposalId].voteEnd; + } + + /** + * @dev Returns the account that created a given proposal. + */ + function proposalProposer(uint256 proposalId) public view virtual override returns (address) { + return _proposals[proposalId].proposer; } /** @@ -147,7 +235,12 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { function _voteSucceeded(uint256 proposalId) internal view virtual returns (bool); /** - * @dev Register a vote with a given support and voting weight. + * @dev Get the voting weight of `account` at a specific `timepoint`, for a vote as described by `params`. + */ + function _getVotes(address account, uint256 timepoint, bytes memory params) internal view virtual returns (uint256); + + /** + * @dev Register a vote for `proposalId` by `account` with a given `support`, voting `weight` and voting `params`. * * Note: Support is generic and can represent various things depending on the voting system used. */ @@ -155,9 +248,20 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { uint256 proposalId, address account, uint8 support, - uint256 weight + uint256 weight, + bytes memory params ) internal virtual; + /** + * @dev Default additional encoded parameters used by castVote methods that don't include them + * + * Note: Should be overridden by specific implementations to use an appropriate value, the + * meaning of the additional params, in the context of that implementation + */ + function _defaultParams() internal view virtual returns (bytes memory) { + return ""; + } + /** * @dev See {IGovernor-propose}. */ @@ -167,24 +271,37 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { bytes[] memory calldatas, string memory description ) public virtual override returns (uint256) { + address proposer = _msgSender(); + uint256 currentTimepoint = clock(); + + require( + getVotes(proposer, currentTimepoint - 1) >= proposalThreshold(), + "Governor: proposer votes below proposal threshold" + ); + uint256 proposalId = hashProposal(targets, values, calldatas, keccak256(bytes(description))); require(targets.length == values.length, "Governor: invalid proposal length"); require(targets.length == calldatas.length, "Governor: invalid proposal length"); require(targets.length > 0, "Governor: empty proposal"); + require(_proposals[proposalId].voteStart == 0, "Governor: proposal already exists"); - ProposalCore storage proposal = _proposals[proposalId]; - require(proposal.voteStart.isUnset(), "Governor: proposal already exists"); - - uint64 snapshot = block.number.toUint64() + votingDelay().toUint64(); - uint64 deadline = snapshot + votingPeriod().toUint64(); + uint256 snapshot = currentTimepoint + votingDelay(); + uint256 deadline = snapshot + votingPeriod(); - proposal.voteStart.setDeadline(snapshot); - proposal.voteEnd.setDeadline(deadline); + _proposals[proposalId] = ProposalCore({ + proposer: proposer, + voteStart: SafeCast.toUint64(snapshot), + voteEnd: SafeCast.toUint64(deadline), + executed: false, + canceled: false, + __gap_unused0: 0, + __gap_unused1: 0 + }); emit ProposalCreated( proposalId, - _msgSender(), + proposer, targets, values, new string[](targets.length), @@ -208,25 +325,42 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { ) public payable virtual override returns (uint256) { uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); - ProposalState status = state(proposalId); + ProposalState currentState = state(proposalId); require( - status == ProposalState.Succeeded || status == ProposalState.Queued, + currentState == ProposalState.Succeeded || currentState == ProposalState.Queued, "Governor: proposal not successful" ); _proposals[proposalId].executed = true; emit ProposalExecuted(proposalId); + _beforeExecute(proposalId, targets, values, calldatas, descriptionHash); _execute(proposalId, targets, values, calldatas, descriptionHash); + _afterExecute(proposalId, targets, values, calldatas, descriptionHash); return proposalId; } /** - * @dev Internal execution mechanism. Can be overriden to implement different execution mechanism + * @dev See {IGovernor-cancel}. + */ + function cancel( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) public virtual override returns (uint256) { + uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); + require(state(proposalId) == ProposalState.Pending, "Governor: too late to cancel"); + require(_msgSender() == _proposals[proposalId].proposer, "Governor: only proposer can cancel"); + return _cancel(targets, values, calldatas, descriptionHash); + } + + /** + * @dev Internal execution mechanism. Can be overridden to implement different execution mechanism */ function _execute( - uint256, /* proposalId */ + uint256 /* proposalId */, address[] memory targets, uint256[] memory values, bytes[] memory calldatas, @@ -239,6 +373,42 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { } } + /** + * @dev Hook before execution is triggered. + */ + function _beforeExecute( + uint256 /* proposalId */, + address[] memory targets, + uint256[] memory /* values */, + bytes[] memory calldatas, + bytes32 /*descriptionHash*/ + ) internal virtual { + if (_executor() != address(this)) { + for (uint256 i = 0; i < targets.length; ++i) { + if (targets[i] == address(this)) { + _governanceCall.pushBack(keccak256(calldatas[i])); + } + } + } + } + + /** + * @dev Hook after execution is triggered. + */ + function _afterExecute( + uint256 /* proposalId */, + address[] memory /* targets */, + uint256[] memory /* values */, + bytes[] memory /* calldatas */, + bytes32 /*descriptionHash*/ + ) internal virtual { + if (_executor() != address(this)) { + if (!_governanceCall.empty()) { + _governanceCall.clear(); + } + } + } + /** * @dev Internal cancel mechanism: locks up the proposal timer, preventing it from being re-submitted. Marks it as * canceled to allow distinguishing it from executed proposals. @@ -252,10 +422,13 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { bytes32 descriptionHash ) internal virtual returns (uint256) { uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); - ProposalState status = state(proposalId); + + ProposalState currentState = state(proposalId); require( - status != ProposalState.Canceled && status != ProposalState.Expired && status != ProposalState.Executed, + currentState != ProposalState.Canceled && + currentState != ProposalState.Expired && + currentState != ProposalState.Executed, "Governor: proposal not active" ); _proposals[proposalId].canceled = true; @@ -265,6 +438,24 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { return proposalId; } + /** + * @dev See {IGovernor-getVotes}. + */ + function getVotes(address account, uint256 timepoint) public view virtual override returns (uint256) { + return _getVotes(account, timepoint, _defaultParams()); + } + + /** + * @dev See {IGovernor-getVotesWithParams}. + */ + function getVotesWithParams( + address account, + uint256 timepoint, + bytes memory params + ) public view virtual override returns (uint256) { + return _getVotes(account, timepoint, params); + } + /** * @dev See {IGovernor-castVote}. */ @@ -285,6 +476,19 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { return _castVote(proposalId, voter, support, reason); } + /** + * @dev See {IGovernor-castVoteWithReasonAndParams}. + */ + function castVoteWithReasonAndParams( + uint256 proposalId, + uint8 support, + string calldata reason, + bytes memory params + ) public virtual override returns (uint256) { + address voter = _msgSender(); + return _castVote(proposalId, voter, support, reason, params); + } + /** * @dev See {IGovernor-castVoteBySig}. */ @@ -304,9 +508,41 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { return _castVote(proposalId, voter, support, ""); } + /** + * @dev See {IGovernor-castVoteWithReasonAndParamsBySig}. + */ + function castVoteWithReasonAndParamsBySig( + uint256 proposalId, + uint8 support, + string calldata reason, + bytes memory params, + uint8 v, + bytes32 r, + bytes32 s + ) public virtual override returns (uint256) { + address voter = ECDSA.recover( + _hashTypedDataV4( + keccak256( + abi.encode( + EXTENDED_BALLOT_TYPEHASH, + proposalId, + support, + keccak256(bytes(reason)), + keccak256(params) + ) + ) + ), + v, + r, + s + ); + + return _castVote(proposalId, voter, support, reason, params); + } + /** * @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve - * voting weight using {IGovernor-getVotes} and call the {_countVote} internal function. + * voting weight using {IGovernor-getVotes} and call the {_countVote} internal function. Uses the _defaultParams(). * * Emits a {IGovernor-VoteCast} event. */ @@ -315,18 +551,49 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { address account, uint8 support, string memory reason + ) internal virtual returns (uint256) { + return _castVote(proposalId, account, support, reason, _defaultParams()); + } + + /** + * @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve + * voting weight using {IGovernor-getVotes} and call the {_countVote} internal function. + * + * Emits a {IGovernor-VoteCast} event. + */ + function _castVote( + uint256 proposalId, + address account, + uint8 support, + string memory reason, + bytes memory params ) internal virtual returns (uint256) { ProposalCore storage proposal = _proposals[proposalId]; require(state(proposalId) == ProposalState.Active, "Governor: vote not currently active"); - uint256 weight = getVotes(account, proposal.voteStart.getDeadline()); - _countVote(proposalId, account, support, weight); + uint256 weight = _getVotes(account, proposal.voteStart, params); + _countVote(proposalId, account, support, weight, params); - emit VoteCast(account, proposalId, support, weight, reason); + if (params.length == 0) { + emit VoteCast(account, proposalId, support, weight, reason); + } else { + emit VoteCastWithParams(account, proposalId, support, weight, reason, params); + } return weight; } + /** + * @dev Relays a transaction or function call to an arbitrary target. In cases where the governance executor + * is some contract other than the governor itself, like when using a timelock, this function can be invoked + * in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. + * Note that if the executor is simply the governor itself, use of `relay` is redundant. + */ + function relay(address target, uint256 value, bytes calldata data) external payable virtual onlyGovernance { + (bool success, bytes memory returndata) = target.call{value: value}(data); + Address.verifyCallResult(success, returndata, "Governor: relay reverted without message"); + } + /** * @dev Address through which the governor executes action. Will be overloaded by module that execute actions * through another contract such as a timelock. @@ -334,4 +601,37 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { function _executor() internal view virtual returns (address) { return address(this); } + + /** + * @dev See {IERC721Receiver-onERC721Received}. + */ + function onERC721Received(address, address, uint256, bytes memory) public virtual override returns (bytes4) { + return this.onERC721Received.selector; + } + + /** + * @dev See {IERC1155Receiver-onERC1155Received}. + */ + function onERC1155Received( + address, + address, + uint256, + uint256, + bytes memory + ) public virtual override returns (bytes4) { + return this.onERC1155Received.selector; + } + + /** + * @dev See {IERC1155Receiver-onERC1155BatchReceived}. + */ + function onERC1155BatchReceived( + address, + address, + uint256[] memory, + uint256[] memory, + bytes memory + ) public virtual override returns (bytes4) { + return this.onERC1155BatchReceived.selector; + } } diff --git a/node_modules/@openzeppelin/contracts/governance/IGovernor.sol b/node_modules/@openzeppelin/contracts/governance/IGovernor.sol index ee5180d..492d95b 100644 --- a/node_modules/@openzeppelin/contracts/governance/IGovernor.sol +++ b/node_modules/@openzeppelin/contracts/governance/IGovernor.sol @@ -1,15 +1,17 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (governance/IGovernor.sol) pragma solidity ^0.8.0; -import "../utils/introspection/ERC165.sol"; +import "../interfaces/IERC165.sol"; +import "../interfaces/IERC6372.sol"; /** * @dev Interface of the {Governor} core. * * _Available since v4.3._ */ -abstract contract IGovernor is IERC165 { +abstract contract IGovernor is IERC165, IERC6372 { enum ProposalState { Pending, Active, @@ -31,8 +33,8 @@ abstract contract IGovernor is IERC165 { uint256[] values, string[] signatures, bytes[] calldatas, - uint256 startBlock, - uint256 endBlock, + uint256 voteStart, + uint256 voteEnd, string description ); @@ -47,12 +49,27 @@ abstract contract IGovernor is IERC165 { event ProposalExecuted(uint256 proposalId); /** - * @dev Emitted when a vote is cast. + * @dev Emitted when a vote is cast without params. * - * Note: `support` values should be seen as buckets. There interpretation depends on the voting module used. + * Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used. */ event VoteCast(address indexed voter, uint256 proposalId, uint8 support, uint256 weight, string reason); + /** + * @dev Emitted when a vote is cast with params. + * + * Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used. + * `params` are additional encoded parameters. Their interpepretation also depends on the voting module used. + */ + event VoteCastWithParams( + address indexed voter, + uint256 proposalId, + uint8 support, + uint256 weight, + string reason, + bytes params + ); + /** * @notice module:core * @dev Name of the governor instance (used in building the ERC712 domain separator). @@ -65,6 +82,19 @@ abstract contract IGovernor is IERC165 { */ function version() public view virtual returns (string memory); + /** + * @notice module:core + * @dev See {IERC6372} + */ + function clock() public view virtual override returns (uint48); + + /** + * @notice module:core + * @dev See EIP-6372. + */ + // solhint-disable-next-line func-name-mixedcase + function CLOCK_MODE() public view virtual override returns (string memory); + /** * @notice module:voting * @dev A description of the possible `support` values for {castVote} and the way these votes are counted, meant to @@ -73,25 +103,31 @@ abstract contract IGovernor is IERC165 { * * There are 2 standard keys: `support` and `quorum`. * - * - `support=bravo` refers to the vote options 0 = For, 1 = Against, 2 = Abstain, as in `GovernorBravo`. + * - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. * - `quorum=bravo` means that only For votes are counted towards quorum. * - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. * + * If a counting module makes use of encoded `params`, it should include this under a `params` key with a unique + * name that describes the behavior. For example: + * + * - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. + * - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. + * * NOTE: The string can be decoded by the standard * https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] * JavaScript class. */ // solhint-disable-next-line func-name-mixedcase - function COUNTING_MODE() public pure virtual returns (string memory); + function COUNTING_MODE() public view virtual returns (string memory); /** * @notice module:core * @dev Hashing function used to (re)build the proposal id from the proposal details.. */ function hashProposal( - address[] calldata targets, - uint256[] calldata values, - bytes[] calldata calldatas, + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, bytes32 descriptionHash ) public pure virtual returns (uint256); @@ -103,28 +139,41 @@ abstract contract IGovernor is IERC165 { /** * @notice module:core - * @dev block number used to retrieve user's votes and quorum. + * @dev Timepoint used to retrieve user's votes and quorum. If using block number (as per Compound's Comp), the + * snapshot is performed at the end of this block. Hence, voting for this proposal starts at the beginning of the + * following block. */ function proposalSnapshot(uint256 proposalId) public view virtual returns (uint256); /** * @notice module:core - * @dev timestamp at which votes close. + * @dev Timepoint at which votes close. If using block number, votes close at the end of this block, so it is + * possible to cast a vote during this block. */ function proposalDeadline(uint256 proposalId) public view virtual returns (uint256); + /** + * @notice module:core + * @dev The account that created a proposal. + */ + function proposalProposer(uint256 proposalId) public view virtual returns (address); + /** * @notice module:user-config - * @dev delay, in number of block, between the proposal is created and the vote starts. This can be increassed to - * leave time for users to buy voting power, of delegate it, before the voting of a proposal starts. + * @dev Delay, between the proposal is created and the vote starts. The unit this duration is expressed in depends + * on the clock (see EIP-6372) this contract uses. + * + * This can be increased to leave time for users to buy voting power, or delegate it, before the voting of a + * proposal starts. */ function votingDelay() public view virtual returns (uint256); /** * @notice module:user-config - * @dev delay, in number of blocks, between the vote start and vote ends. + * @dev Delay between the vote start and vote end. The unit this duration is expressed in depends on the clock + * (see EIP-6372) this contract uses. * - * Note: the {votingDelay} can delay the start of the vote. This must be considered when setting the voting + * NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting * duration compared to the voting delay. */ function votingPeriod() public view virtual returns (uint256); @@ -133,29 +182,39 @@ abstract contract IGovernor is IERC165 { * @notice module:user-config * @dev Minimum number of cast voted required for a proposal to be successful. * - * Note: The `blockNumber` parameter corresponds to the snaphot used for counting vote. This allows to scale the - * quroum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}). + * NOTE: The `timepoint` parameter corresponds to the snapshot used for counting vote. This allows to scale the + * quorum depending on values such as the totalSupply of a token at this timepoint (see {ERC20Votes}). */ - function quorum(uint256 blockNumber) public view virtual returns (uint256); + function quorum(uint256 timepoint) public view virtual returns (uint256); /** * @notice module:reputation - * @dev Voting power of an `account` at a specific `blockNumber`. + * @dev Voting power of an `account` at a specific `timepoint`. * * Note: this can be implemented in a number of ways, for example by reading the delegated balance from one (or * multiple), {ERC20Votes} tokens. */ - function getVotes(address account, uint256 blockNumber) public view virtual returns (uint256); + function getVotes(address account, uint256 timepoint) public view virtual returns (uint256); + + /** + * @notice module:reputation + * @dev Voting power of an `account` at a specific `timepoint` given additional encoded parameters. + */ + function getVotesWithParams( + address account, + uint256 timepoint, + bytes memory params + ) public view virtual returns (uint256); /** * @notice module:voting - * @dev Returns weither `account` has cast a vote on `proposalId`. + * @dev Returns whether `account` has cast a vote on `proposalId`. */ function hasVoted(uint256 proposalId, address account) public view virtual returns (bool); /** - * @dev Create a new proposal. Vote start {IGovernor-votingDelay} blocks after the proposal is created and ends - * {IGovernor-votingPeriod} blocks after the voting starts. + * @dev Create a new proposal. Vote start after a delay specified by {IGovernor-votingDelay} and lasts for a + * duration specified by {IGovernor-votingPeriod}. * * Emits a {ProposalCreated} event. */ @@ -181,6 +240,19 @@ abstract contract IGovernor is IERC165 { bytes32 descriptionHash ) public payable virtual returns (uint256 proposalId); + /** + * @dev Cancel a proposal. A proposal is cancellable by the proposer, but only while it is Pending state, i.e. + * before the vote starts. + * + * Emits a {ProposalCanceled} event. + */ + function cancel( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) public virtual returns (uint256 proposalId); + /** * @dev Cast a vote * @@ -189,7 +261,7 @@ abstract contract IGovernor is IERC165 { function castVote(uint256 proposalId, uint8 support) public virtual returns (uint256 balance); /** - * @dev Cast a with a reason + * @dev Cast a vote with a reason * * Emits a {VoteCast} event. */ @@ -200,7 +272,19 @@ abstract contract IGovernor is IERC165 { ) public virtual returns (uint256 balance); /** - * @dev Cast a vote using the user cryptographic signature. + * @dev Cast a vote with a reason and additional encoded parameters + * + * Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params. + */ + function castVoteWithReasonAndParams( + uint256 proposalId, + uint8 support, + string calldata reason, + bytes memory params + ) public virtual returns (uint256 balance); + + /** + * @dev Cast a vote using the user's cryptographic signature. * * Emits a {VoteCast} event. */ @@ -211,4 +295,19 @@ abstract contract IGovernor is IERC165 { bytes32 r, bytes32 s ) public virtual returns (uint256 balance); + + /** + * @dev Cast a vote with a reason and additional encoded parameters using the user's cryptographic signature. + * + * Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params. + */ + function castVoteWithReasonAndParamsBySig( + uint256 proposalId, + uint8 support, + string calldata reason, + bytes memory params, + uint8 v, + bytes32 r, + bytes32 s + ) public virtual returns (uint256 balance); } diff --git a/node_modules/@openzeppelin/contracts/governance/TimelockController.sol b/node_modules/@openzeppelin/contracts/governance/TimelockController.sol index e52cb0d..f70a7d1 100644 --- a/node_modules/@openzeppelin/contracts/governance/TimelockController.sol +++ b/node_modules/@openzeppelin/contracts/governance/TimelockController.sol @@ -1,8 +1,11 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (governance/TimelockController.sol) pragma solidity ^0.8.0; import "../access/AccessControl.sol"; +import "../token/ERC721/IERC721Receiver.sol"; +import "../token/ERC1155/IERC1155Receiver.sol"; /** * @dev Contract module which acts as a timelocked controller. When set as the @@ -19,10 +22,11 @@ import "../access/AccessControl.sol"; * * _Available since v3.3._ */ -contract TimelockController is AccessControl { +contract TimelockController is AccessControl, IERC721Receiver, IERC1155Receiver { bytes32 public constant TIMELOCK_ADMIN_ROLE = keccak256("TIMELOCK_ADMIN_ROLE"); bytes32 public constant PROPOSER_ROLE = keccak256("PROPOSER_ROLE"); bytes32 public constant EXECUTOR_ROLE = keccak256("EXECUTOR_ROLE"); + bytes32 public constant CANCELLER_ROLE = keccak256("CANCELLER_ROLE"); uint256 internal constant _DONE_TIMESTAMP = uint256(1); mapping(bytes32 => uint256) private _timestamps; @@ -46,6 +50,11 @@ contract TimelockController is AccessControl { */ event CallExecuted(bytes32 indexed id, uint256 indexed index, address target, uint256 value, bytes data); + /** + * @dev Emitted when new proposal is scheduled with non-zero salt. + */ + event CallSalt(bytes32 indexed id, bytes32 salt); + /** * @dev Emitted when operation `id` is cancelled. */ @@ -57,24 +66,36 @@ contract TimelockController is AccessControl { event MinDelayChange(uint256 oldDuration, uint256 newDuration); /** - * @dev Initializes the contract with a given `minDelay`. + * @dev Initializes the contract with the following parameters: + * + * - `minDelay`: initial minimum delay for operations + * - `proposers`: accounts to be granted proposer and canceller roles + * - `executors`: accounts to be granted executor role + * - `admin`: optional account to be granted admin role; disable with zero address + * + * IMPORTANT: The optional admin can aid with initial configuration of roles after deployment + * without being subject to delay, but this role should be subsequently renounced in favor of + * administration through timelocked proposals. Previous versions of this contract would assign + * this admin to the deployer automatically and should be renounced as well. */ - constructor( - uint256 minDelay, - address[] memory proposers, - address[] memory executors - ) { + constructor(uint256 minDelay, address[] memory proposers, address[] memory executors, address admin) { _setRoleAdmin(TIMELOCK_ADMIN_ROLE, TIMELOCK_ADMIN_ROLE); _setRoleAdmin(PROPOSER_ROLE, TIMELOCK_ADMIN_ROLE); _setRoleAdmin(EXECUTOR_ROLE, TIMELOCK_ADMIN_ROLE); + _setRoleAdmin(CANCELLER_ROLE, TIMELOCK_ADMIN_ROLE); - // deployer + self administration - _setupRole(TIMELOCK_ADMIN_ROLE, _msgSender()); + // self administration _setupRole(TIMELOCK_ADMIN_ROLE, address(this)); - // register proposers + // optional admin + if (admin != address(0)) { + _setupRole(TIMELOCK_ADMIN_ROLE, admin); + } + + // register proposers and cancellers for (uint256 i = 0; i < proposers.length; ++i) { _setupRole(PROPOSER_ROLE, proposers[i]); + _setupRole(CANCELLER_ROLE, proposers[i]); } // register executors @@ -104,25 +125,32 @@ contract TimelockController is AccessControl { */ receive() external payable {} + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, AccessControl) returns (bool) { + return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId); + } + /** * @dev Returns whether an id correspond to a registered operation. This * includes both Pending, Ready and Done operations. */ - function isOperation(bytes32 id) public view virtual returns (bool pending) { + function isOperation(bytes32 id) public view virtual returns (bool) { return getTimestamp(id) > 0; } /** - * @dev Returns whether an operation is pending or not. + * @dev Returns whether an operation is pending or not. Note that a "pending" operation may also be "ready". */ - function isOperationPending(bytes32 id) public view virtual returns (bool pending) { + function isOperationPending(bytes32 id) public view virtual returns (bool) { return getTimestamp(id) > _DONE_TIMESTAMP; } /** - * @dev Returns whether an operation is ready or not. + * @dev Returns whether an operation is ready for execution. Note that a "ready" operation is also "pending". */ - function isOperationReady(bytes32 id) public view virtual returns (bool ready) { + function isOperationReady(bytes32 id) public view virtual returns (bool) { uint256 timestamp = getTimestamp(id); return timestamp > _DONE_TIMESTAMP && timestamp <= block.timestamp; } @@ -130,15 +158,15 @@ contract TimelockController is AccessControl { /** * @dev Returns whether an operation is done or not. */ - function isOperationDone(bytes32 id) public view virtual returns (bool done) { + function isOperationDone(bytes32 id) public view virtual returns (bool) { return getTimestamp(id) == _DONE_TIMESTAMP; } /** - * @dev Returns the timestamp at with an operation becomes ready (0 for + * @dev Returns the timestamp at which an operation becomes ready (0 for * unset operations, 1 for done operations). */ - function getTimestamp(bytes32 id) public view virtual returns (uint256 timestamp) { + function getTimestamp(bytes32 id) public view virtual returns (uint256) { return _timestamps[id]; } @@ -147,7 +175,7 @@ contract TimelockController is AccessControl { * * This value can be changed by executing an operation that calls `updateDelay`. */ - function getMinDelay() public view virtual returns (uint256 duration) { + function getMinDelay() public view virtual returns (uint256) { return _minDelay; } @@ -161,7 +189,7 @@ contract TimelockController is AccessControl { bytes calldata data, bytes32 predecessor, bytes32 salt - ) public pure virtual returns (bytes32 hash) { + ) public pure virtual returns (bytes32) { return keccak256(abi.encode(target, value, data, predecessor, salt)); } @@ -172,17 +200,17 @@ contract TimelockController is AccessControl { function hashOperationBatch( address[] calldata targets, uint256[] calldata values, - bytes[] calldata datas, + bytes[] calldata payloads, bytes32 predecessor, bytes32 salt - ) public pure virtual returns (bytes32 hash) { - return keccak256(abi.encode(targets, values, datas, predecessor, salt)); + ) public pure virtual returns (bytes32) { + return keccak256(abi.encode(targets, values, payloads, predecessor, salt)); } /** * @dev Schedule an operation containing a single transaction. * - * Emits a {CallScheduled} event. + * Emits {CallSalt} if salt is nonzero, and {CallScheduled}. * * Requirements: * @@ -199,12 +227,15 @@ contract TimelockController is AccessControl { bytes32 id = hashOperation(target, value, data, predecessor, salt); _schedule(id, delay); emit CallScheduled(id, 0, target, value, data, predecessor, delay); + if (salt != bytes32(0)) { + emit CallSalt(id, salt); + } } /** * @dev Schedule an operation containing a batch of transactions. * - * Emits one {CallScheduled} event per transaction in the batch. + * Emits {CallSalt} if salt is nonzero, and one {CallScheduled} event per transaction in the batch. * * Requirements: * @@ -213,23 +244,26 @@ contract TimelockController is AccessControl { function scheduleBatch( address[] calldata targets, uint256[] calldata values, - bytes[] calldata datas, + bytes[] calldata payloads, bytes32 predecessor, bytes32 salt, uint256 delay ) public virtual onlyRole(PROPOSER_ROLE) { require(targets.length == values.length, "TimelockController: length mismatch"); - require(targets.length == datas.length, "TimelockController: length mismatch"); + require(targets.length == payloads.length, "TimelockController: length mismatch"); - bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt); + bytes32 id = hashOperationBatch(targets, values, payloads, predecessor, salt); _schedule(id, delay); for (uint256 i = 0; i < targets.length; ++i) { - emit CallScheduled(id, i, targets[i], values[i], datas[i], predecessor, delay); + emit CallScheduled(id, i, targets[i], values[i], payloads[i], predecessor, delay); + } + if (salt != bytes32(0)) { + emit CallSalt(id, salt); } } /** - * @dev Schedule an operation that is to becomes valid after a given delay. + * @dev Schedule an operation that is to become valid after a given delay. */ function _schedule(bytes32 id, uint256 delay) private { require(!isOperation(id), "TimelockController: operation already scheduled"); @@ -242,9 +276,9 @@ contract TimelockController is AccessControl { * * Requirements: * - * - the caller must have the 'proposer' role. + * - the caller must have the 'canceller' role. */ - function cancel(bytes32 id) public virtual onlyRole(PROPOSER_ROLE) { + function cancel(bytes32 id) public virtual onlyRole(CANCELLER_ROLE) { require(isOperationPending(id), "TimelockController: operation cannot be cancelled"); delete _timestamps[id]; @@ -260,16 +294,21 @@ contract TimelockController is AccessControl { * * - the caller must have the 'executor' role. */ + // This function can reenter, but it doesn't pose a risk because _afterCall checks that the proposal is pending, + // thus any modifications to the operation during reentrancy should be caught. + // slither-disable-next-line reentrancy-eth function execute( address target, uint256 value, - bytes calldata data, + bytes calldata payload, bytes32 predecessor, bytes32 salt ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) { - bytes32 id = hashOperation(target, value, data, predecessor, salt); + bytes32 id = hashOperation(target, value, payload, predecessor, salt); + _beforeCall(id, predecessor); - _call(id, 0, target, value, data); + _execute(target, value, payload); + emit CallExecuted(id, 0, target, value, payload); _afterCall(id); } @@ -282,24 +321,40 @@ contract TimelockController is AccessControl { * * - the caller must have the 'executor' role. */ + // This function can reenter, but it doesn't pose a risk because _afterCall checks that the proposal is pending, + // thus any modifications to the operation during reentrancy should be caught. + // slither-disable-next-line reentrancy-eth function executeBatch( address[] calldata targets, uint256[] calldata values, - bytes[] calldata datas, + bytes[] calldata payloads, bytes32 predecessor, bytes32 salt ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) { require(targets.length == values.length, "TimelockController: length mismatch"); - require(targets.length == datas.length, "TimelockController: length mismatch"); + require(targets.length == payloads.length, "TimelockController: length mismatch"); + + bytes32 id = hashOperationBatch(targets, values, payloads, predecessor, salt); - bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt); _beforeCall(id, predecessor); for (uint256 i = 0; i < targets.length; ++i) { - _call(id, i, targets[i], values[i], datas[i]); + address target = targets[i]; + uint256 value = values[i]; + bytes calldata payload = payloads[i]; + _execute(target, value, payload); + emit CallExecuted(id, i, target, value, payload); } _afterCall(id); } + /** + * @dev Execute an operation's call. + */ + function _execute(address target, uint256 value, bytes calldata data) internal virtual { + (bool success, ) = target.call{value: value}(data); + require(success, "TimelockController: underlying transaction reverted"); + } + /** * @dev Checks before execution of an operation's calls. */ @@ -316,24 +371,6 @@ contract TimelockController is AccessControl { _timestamps[id] = _DONE_TIMESTAMP; } - /** - * @dev Execute an operation's call. - * - * Emits a {CallExecuted} event. - */ - function _call( - bytes32 id, - uint256 index, - address target, - uint256 value, - bytes calldata data - ) private { - (bool success, ) = target.call{value: value}(data); - require(success, "TimelockController: underlying transaction reverted"); - - emit CallExecuted(id, index, target, value, data); - } - /** * @dev Changes the minimum timelock duration for future operations. * @@ -349,4 +386,37 @@ contract TimelockController is AccessControl { emit MinDelayChange(_minDelay, newDelay); _minDelay = newDelay; } + + /** + * @dev See {IERC721Receiver-onERC721Received}. + */ + function onERC721Received(address, address, uint256, bytes memory) public virtual override returns (bytes4) { + return this.onERC721Received.selector; + } + + /** + * @dev See {IERC1155Receiver-onERC1155Received}. + */ + function onERC1155Received( + address, + address, + uint256, + uint256, + bytes memory + ) public virtual override returns (bytes4) { + return this.onERC1155Received.selector; + } + + /** + * @dev See {IERC1155Receiver-onERC1155BatchReceived}. + */ + function onERC1155BatchReceived( + address, + address, + uint256[] memory, + uint256[] memory, + bytes memory + ) public virtual override returns (bytes4) { + return this.onERC1155BatchReceived.selector; + } } diff --git a/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol b/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol index 2ece48c..ecc94fb 100644 --- a/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol +++ b/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol @@ -1,31 +1,24 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (governance/compatibility/GovernorCompatibilityBravo.sol) pragma solidity ^0.8.0; -import "../../utils/Counters.sol"; import "../../utils/math/SafeCast.sol"; import "../extensions/IGovernorTimelock.sol"; -import "../extensions/GovernorProposalThreshold.sol"; import "../Governor.sol"; import "./IGovernorCompatibilityBravo.sol"; /** - * @dev Compatibility layer that implements GovernorBravo compatibility on to of {Governor}. + * @dev Compatibility layer that implements GovernorBravo compatibility on top of {Governor}. * * This compatibility layer includes a voting system and requires a {IGovernorTimelock} compatible module to be added - * through inheritance. It does not include token bindings, not does it include any variable upgrade patterns. + * through inheritance. It does not include token bindings, nor does it include any variable upgrade patterns. + * + * NOTE: When using this module, you may need to enable the Solidity optimizer to avoid hitting the contract size limit. * * _Available since v4.3._ */ -abstract contract GovernorCompatibilityBravo is - IGovernorTimelock, - IGovernorCompatibilityBravo, - Governor, - GovernorProposalThreshold -{ - using Counters for Counters.Counter; - using Timers for Timers.BlockNumber; - +abstract contract GovernorCompatibilityBravo is IGovernorTimelock, IGovernorCompatibilityBravo, Governor { enum VoteType { Against, For, @@ -61,7 +54,8 @@ abstract contract GovernorCompatibilityBravo is uint256[] memory values, bytes[] memory calldatas, string memory description - ) public virtual override(IGovernor, Governor, GovernorProposalThreshold) returns (uint256) { + ) public virtual override(IGovernor, Governor) returns (uint256) { + // Stores the proposal details (if not already present) and executes the propose logic from the core. _storeProposal(_msgSender(), targets, values, new string[](calldatas.length), calldatas, description); return super.propose(targets, values, calldatas, description); } @@ -76,6 +70,11 @@ abstract contract GovernorCompatibilityBravo is bytes[] memory calldatas, string memory description ) public virtual override returns (uint256) { + require(signatures.length == calldatas.length, "GovernorBravo: invalid signatures length"); + // Stores the full proposal and fallback to the public (possibly overridden) propose. The fallback is done + // after the full proposal is stored, so the store operation included in the fallback will be skipped. Here we + // call `propose` and not `super.propose` to make sure if a child contract override `propose`, whatever code + // is added there is also executed when calling this alternative interface. _storeProposal(_msgSender(), targets, values, signatures, calldatas, description); return propose(targets, values, _encodeCalldata(signatures, calldatas), description); } @@ -84,65 +83,103 @@ abstract contract GovernorCompatibilityBravo is * @dev See {IGovernorCompatibilityBravo-queue}. */ function queue(uint256 proposalId) public virtual override { - ProposalDetails storage details = _proposalDetails[proposalId]; - queue( - details.targets, - details.values, - _encodeCalldata(details.signatures, details.calldatas), - details.descriptionHash - ); + ( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) = _getProposalParameters(proposalId); + + queue(targets, values, calldatas, descriptionHash); } /** * @dev See {IGovernorCompatibilityBravo-execute}. */ function execute(uint256 proposalId) public payable virtual override { - ProposalDetails storage details = _proposalDetails[proposalId]; - execute( - details.targets, - details.values, - _encodeCalldata(details.signatures, details.calldatas), - details.descriptionHash - ); + ( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) = _getProposalParameters(proposalId); + + execute(targets, values, calldatas, descriptionHash); } + /** + * @dev Cancel a proposal with GovernorBravo logic. + */ function cancel(uint256 proposalId) public virtual override { - ProposalDetails storage details = _proposalDetails[proposalId]; + ( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) = _getProposalParameters(proposalId); + + cancel(targets, values, calldatas, descriptionHash); + } + + /** + * @dev Cancel a proposal with GovernorBravo logic. At any moment a proposal can be cancelled, either by the + * proposer, or by third parties if the proposer's voting power has dropped below the proposal threshold. + */ + function cancel( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) public virtual override(IGovernor, Governor) returns (uint256) { + uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); + address proposer = _proposalDetails[proposalId].proposer; require( - _msgSender() == details.proposer || getVotes(details.proposer, block.number - 1) < proposalThreshold(), + _msgSender() == proposer || getVotes(proposer, clock() - 1) < proposalThreshold(), "GovernorBravo: proposer above threshold" ); - _cancel( - details.targets, - details.values, - _encodeCalldata(details.signatures, details.calldatas), - details.descriptionHash - ); + return _cancel(targets, values, calldatas, descriptionHash); } /** * @dev Encodes calldatas with optional function signature. */ - function _encodeCalldata(string[] memory signatures, bytes[] memory calldatas) - private - pure - returns (bytes[] memory) - { + function _encodeCalldata( + string[] memory signatures, + bytes[] memory calldatas + ) private pure returns (bytes[] memory) { bytes[] memory fullcalldatas = new bytes[](calldatas.length); - - for (uint256 i = 0; i < signatures.length; ++i) { + for (uint256 i = 0; i < fullcalldatas.length; ++i) { fullcalldatas[i] = bytes(signatures[i]).length == 0 ? calldatas[i] - : abi.encodeWithSignature(signatures[i], calldatas[i]); + : abi.encodePacked(bytes4(keccak256(bytes(signatures[i]))), calldatas[i]); } return fullcalldatas; } /** - * @dev Store proposal metadata for later lookup + * @dev Retrieve proposal parameters by id, with fully encoded calldatas. + */ + function _getProposalParameters( + uint256 proposalId + ) + private + view + returns (address[] memory targets, uint256[] memory values, bytes[] memory calldatas, bytes32 descriptionHash) + { + ProposalDetails storage details = _proposalDetails[proposalId]; + return ( + details.targets, + details.values, + _encodeCalldata(details.signatures, details.calldatas), + details.descriptionHash + ); + } + + /** + * @dev Store proposal metadata (if not already present) for later lookup. */ function _storeProposal( address proposer, @@ -167,20 +204,12 @@ abstract contract GovernorCompatibilityBravo is } // ==================================================== Views ===================================================== - /** - * @dev Part of the Governor Bravo's interface: _"The number of votes required in order for a voter to become a proposer"_. - */ - function proposalThreshold() - public - view - virtual - override(IGovernorCompatibilityBravo, GovernorProposalThreshold) - returns (uint256); - /** * @dev See {IGovernorCompatibilityBravo-proposals}. */ - function proposals(uint256 proposalId) + function proposals( + uint256 proposalId + ) public view virtual @@ -209,15 +238,17 @@ abstract contract GovernorCompatibilityBravo is againstVotes = details.againstVotes; abstainVotes = details.abstainVotes; - ProposalState status = state(proposalId); - canceled = status == ProposalState.Canceled; - executed = status == ProposalState.Executed; + ProposalState currentState = state(proposalId); + canceled = currentState == ProposalState.Canceled; + executed = currentState == ProposalState.Executed; } /** * @dev See {IGovernorCompatibilityBravo-getActions}. */ - function getActions(uint256 proposalId) + function getActions( + uint256 proposalId + ) public view virtual @@ -244,7 +275,7 @@ abstract contract GovernorCompatibilityBravo is * @dev See {IGovernorCompatibilityBravo-quorumVotes}. */ function quorumVotes() public view virtual override returns (uint256) { - return quorum(block.number - 1); + return quorum(clock() - 1); } // ==================================================== Voting ==================================================== @@ -260,11 +291,11 @@ abstract contract GovernorCompatibilityBravo is */ function _quorumReached(uint256 proposalId) internal view virtual override returns (bool) { ProposalDetails storage details = _proposalDetails[proposalId]; - return quorum(proposalSnapshot(proposalId)) < details.forVotes; + return quorum(proposalSnapshot(proposalId)) <= details.forVotes; } /** - * @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be scritly over the againstVotes. + * @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be strictly over the againstVotes. */ function _voteSucceeded(uint256 proposalId) internal view virtual override returns (bool) { ProposalDetails storage details = _proposalDetails[proposalId]; @@ -278,7 +309,8 @@ abstract contract GovernorCompatibilityBravo is uint256 proposalId, address account, uint8 support, - uint256 weight + uint256 weight, + bytes memory // params ) internal virtual override { ProposalDetails storage details = _proposalDetails[proposalId]; Receipt storage receipt = details.receipts[account]; diff --git a/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol b/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol index 4f4229d..e64a66a 100644 --- a/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol +++ b/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (governance/compatibility/IGovernorCompatibilityBravo.sol) pragma solidity ^0.8.0; @@ -49,7 +50,9 @@ abstract contract IGovernorCompatibilityBravo is IGovernor { /** * @dev Part of the Governor Bravo's interface: _"The official record of all proposals ever proposed"_. */ - function proposals(uint256) + function proposals( + uint256 + ) public view virtual @@ -88,14 +91,16 @@ abstract contract IGovernorCompatibilityBravo is IGovernor { function execute(uint256 proposalId) public payable virtual; /** - * @dev Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold. + * @dev Cancels a proposal only if the sender is the proposer or the proposer delegates' voting power dropped below the proposal threshold. */ function cancel(uint256 proposalId) public virtual; /** * @dev Part of the Governor Bravo's interface: _"Gets actions of a proposal"_. */ - function getActions(uint256 proposalId) + function getActions( + uint256 proposalId + ) public view virtual @@ -110,9 +115,4 @@ abstract contract IGovernorCompatibilityBravo is IGovernor { * @dev Part of the Governor Bravo's interface: _"Gets the receipt for a voter on a given proposal"_. */ function getReceipt(uint256 proposalId, address voter) public view virtual returns (Receipt memory); - - /** - * @dev Part of the Governor Bravo's interface: _"The number of votes required in order for a voter to become a proposer"_. - */ - function proposalThreshold() public view virtual returns (uint256); } diff --git a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol index f1cffb5..b951744 100644 --- a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol +++ b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorCountingSimple.sol) pragma solidity ^0.8.0; @@ -46,36 +47,29 @@ abstract contract GovernorCountingSimple is Governor { /** * @dev Accessor to the internal vote counts. */ - function proposalVotes(uint256 proposalId) - public - view - virtual - returns ( - uint256 againstVotes, - uint256 forVotes, - uint256 abstainVotes - ) - { - ProposalVote storage proposalvote = _proposalVotes[proposalId]; - return (proposalvote.againstVotes, proposalvote.forVotes, proposalvote.abstainVotes); + function proposalVotes( + uint256 proposalId + ) public view virtual returns (uint256 againstVotes, uint256 forVotes, uint256 abstainVotes) { + ProposalVote storage proposalVote = _proposalVotes[proposalId]; + return (proposalVote.againstVotes, proposalVote.forVotes, proposalVote.abstainVotes); } /** * @dev See {Governor-_quorumReached}. */ function _quorumReached(uint256 proposalId) internal view virtual override returns (bool) { - ProposalVote storage proposalvote = _proposalVotes[proposalId]; + ProposalVote storage proposalVote = _proposalVotes[proposalId]; - return quorum(proposalSnapshot(proposalId)) <= proposalvote.forVotes + proposalvote.abstainVotes; + return quorum(proposalSnapshot(proposalId)) <= proposalVote.forVotes + proposalVote.abstainVotes; } /** - * @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be scritly over the againstVotes. + * @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be strictly over the againstVotes. */ function _voteSucceeded(uint256 proposalId) internal view virtual override returns (bool) { - ProposalVote storage proposalvote = _proposalVotes[proposalId]; + ProposalVote storage proposalVote = _proposalVotes[proposalId]; - return proposalvote.forVotes > proposalvote.againstVotes; + return proposalVote.forVotes > proposalVote.againstVotes; } /** @@ -85,19 +79,20 @@ abstract contract GovernorCountingSimple is Governor { uint256 proposalId, address account, uint8 support, - uint256 weight + uint256 weight, + bytes memory // params ) internal virtual override { - ProposalVote storage proposalvote = _proposalVotes[proposalId]; + ProposalVote storage proposalVote = _proposalVotes[proposalId]; - require(!proposalvote.hasVoted[account], "GovernorVotingSimple: vote already cast"); - proposalvote.hasVoted[account] = true; + require(!proposalVote.hasVoted[account], "GovernorVotingSimple: vote already cast"); + proposalVote.hasVoted[account] = true; if (support == uint8(VoteType.Against)) { - proposalvote.againstVotes += weight; + proposalVote.againstVotes += weight; } else if (support == uint8(VoteType.For)) { - proposalvote.forVotes += weight; + proposalVote.forVotes += weight; } else if (support == uint8(VoteType.Abstain)) { - proposalvote.abstainVotes += weight; + proposalVote.abstainVotes += weight; } else { revert("GovernorVotingSimple: invalid value for enum VoteType"); } diff --git a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol index 6bf4adf..3feebac 100644 --- a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol +++ b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (governance/extensions/GovernorProposalThreshold.sol) pragma solidity ^0.8.0; @@ -8,27 +9,15 @@ import "../Governor.sol"; * @dev Extension of {Governor} for proposal restriction to token holders with a minimum balance. * * _Available since v4.3._ + * _Deprecated since v4.4._ */ abstract contract GovernorProposalThreshold is Governor { - /** - * @dev See {IGovernor-propose}. - */ function propose( address[] memory targets, uint256[] memory values, bytes[] memory calldatas, string memory description ) public virtual override returns (uint256) { - require( - getVotes(msg.sender, block.number - 1) >= proposalThreshold(), - "GovernorCompatibilityBravo: proposer votes below proposal threshold" - ); - return super.propose(targets, values, calldatas, description); } - - /** - * @dev Part of the Governor Bravo's interface: _"The number of votes required in order for a voter to become a proposer"_. - */ - function proposalThreshold() public view virtual returns (uint256); } diff --git a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol index 84fc272..a706da6 100644 --- a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol +++ b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol @@ -1,64 +1,12 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorTimelockCompound.sol) pragma solidity ^0.8.0; import "./IGovernorTimelock.sol"; import "../Governor.sol"; import "../../utils/math/SafeCast.sol"; - -/** - * https://github.com/compound-finance/compound-protocol/blob/master/contracts/Timelock.sol[Compound's timelock] interface - */ -interface ICompoundTimelock { - receive() external payable; - - // solhint-disable-next-line func-name-mixedcase - function GRACE_PERIOD() external view returns (uint256); - - // solhint-disable-next-line func-name-mixedcase - function MINIMUM_DELAY() external view returns (uint256); - - // solhint-disable-next-line func-name-mixedcase - function MAXIMUM_DELAY() external view returns (uint256); - - function admin() external view returns (address); - - function pendingAdmin() external view returns (address); - - function delay() external view returns (uint256); - - function queuedTransactions(bytes32) external view returns (bool); - - function setDelay(uint256) external; - - function acceptAdmin() external; - - function setPendingAdmin(address) external; - - function queueTransaction( - address target, - uint256 value, - string memory signature, - bytes memory data, - uint256 eta - ) external returns (bytes32); - - function cancelTransaction( - address target, - uint256 value, - string memory signature, - bytes memory data, - uint256 eta - ) external; - - function executeTransaction( - address target, - uint256 value, - string memory signature, - bytes memory data, - uint256 eta - ) external payable returns (bytes memory); -} +import "../../vendor/compound/ICompoundTimelock.sol"; /** * @dev Extension of {Governor} that binds the execution process to a Compound Timelock. This adds a delay, enforced by @@ -73,16 +21,10 @@ interface ICompoundTimelock { * _Available since v4.3._ */ abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor { - using SafeCast for uint256; - using Timers for Timers.Timestamp; - - struct ProposalTimelock { - Timers.Timestamp timer; - } - ICompoundTimelock private _timelock; - mapping(uint256 => ProposalTimelock) private _proposalTimelocks; + /// @custom:oz-retyped-from mapping(uint256 => GovernorTimelockCompound.ProposalTimelock) + mapping(uint256 => uint64) private _proposalTimelocks; /** * @dev Emitted when the timelock controller used for proposal execution is modified. @@ -104,18 +46,18 @@ abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor { } /** - * @dev Overriden version of the {Governor-state} function with added support for the `Queued` and `Expired` status. + * @dev Overridden version of the {Governor-state} function with added support for the `Queued` and `Expired` state. */ function state(uint256 proposalId) public view virtual override(IGovernor, Governor) returns (ProposalState) { - ProposalState status = super.state(proposalId); + ProposalState currentState = super.state(proposalId); - if (status != ProposalState.Succeeded) { - return status; + if (currentState != ProposalState.Succeeded) { + return currentState; } uint256 eta = proposalEta(proposalId); if (eta == 0) { - return status; + return currentState; } else if (block.timestamp >= eta + _timelock.GRACE_PERIOD()) { return ProposalState.Expired; } else { @@ -134,7 +76,7 @@ abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor { * @dev Public accessor to check the eta of a queued proposal */ function proposalEta(uint256 proposalId) public view virtual override returns (uint256) { - return _proposalTimelocks[proposalId].timer.getDeadline(); + return _proposalTimelocks[proposalId]; } /** @@ -151,7 +93,8 @@ abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor { require(state(proposalId) == ProposalState.Succeeded, "Governor: proposal not successful"); uint256 eta = block.timestamp + _timelock.delay(); - _proposalTimelocks[proposalId].timer.setDeadline(eta.toUint64()); + _proposalTimelocks[proposalId] = SafeCast.toUint64(eta); + for (uint256 i = 0; i < targets.length; ++i) { require( !_timelock.queuedTransactions(keccak256(abi.encode(targets[i], values[i], "", calldatas[i], eta))), @@ -166,7 +109,7 @@ abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor { } /** - * @dev Overriden execute function that run the already queued proposal through the timelock. + * @dev Overridden execute function that run the already queued proposal through the timelock. */ function _execute( uint256 proposalId, @@ -177,13 +120,14 @@ abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor { ) internal virtual override { uint256 eta = proposalEta(proposalId); require(eta > 0, "GovernorTimelockCompound: proposal not yet queued"); + Address.sendValue(payable(_timelock), msg.value); for (uint256 i = 0; i < targets.length; ++i) { - _timelock.executeTransaction{value: values[i]}(targets[i], values[i], "", calldatas[i], eta); + _timelock.executeTransaction(targets[i], values[i], "", calldatas[i], eta); } } /** - * @dev Overriden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already + * @dev Overridden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already * been queued. */ function _cancel( @@ -196,10 +140,12 @@ abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor { uint256 eta = proposalEta(proposalId); if (eta > 0) { + // update state first + delete _proposalTimelocks[proposalId]; + // do external call later for (uint256 i = 0; i < targets.length; ++i) { _timelock.cancelTransaction(targets[i], values[i], "", calldatas[i], eta); } - _proposalTimelocks[proposalId].timer.reset(); } return proposalId; @@ -222,14 +168,16 @@ abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor { /** * @dev Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates - * must be proposed, scheduled and executed using the {Governor} workflow. + * must be proposed, scheduled, and executed through governance proposals. * - * For security reason, the timelock must be handed over to another admin before setting up a new one. The two + * For security reasons, the timelock must be handed over to another admin before setting up a new one. The two * operations (hand over the timelock) and do the update can be batched in a single proposal. * * Note that if the timelock admin has been handed over in a previous operation, we refuse updates made through the * timelock if admin of the timelock has already been accepted and the operation is executed outside the scope of * governance. + + * CAUTION: It is not recommended to change the timelock while there are other queued governance proposals. */ function updateTimelock(ICompoundTimelock newTimelock) external virtual onlyGovernance { _updateTimelock(newTimelock); diff --git a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol index 9472672..7cb60ba 100644 --- a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol +++ b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorTimelockControl.sol) pragma solidity ^0.8.0; @@ -9,12 +10,17 @@ import "../TimelockController.sol"; /** * @dev Extension of {Governor} that binds the execution process to an instance of {TimelockController}. This adds a * delay, enforced by the {TimelockController} to all successful proposal (in addition to the voting duration). The - * {Governor} needs the proposer (an ideally the executor) roles for the {Governor} to work properly. + * {Governor} needs the proposer (and ideally the executor) roles for the {Governor} to work properly. * * Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus, * the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be * inaccessible. * + * WARNING: Setting up the TimelockController to have additional proposers besides the governor is very risky, as it + * grants them powers that they must be trusted or known not to use: 1) {onlyGovernance} functions like {relay} are + * available to them through the timelock, and 2) approved governance proposals can be blocked by them, effectively + * executing a Denial of Service attack. This risk will be mitigated in a future release. + * * _Available since v4.3._ */ abstract contract GovernorTimelockControl is IGovernorTimelock, Governor { @@ -41,23 +47,25 @@ abstract contract GovernorTimelockControl is IGovernorTimelock, Governor { } /** - * @dev Overriden version of the {Governor-state} function with added support for the `Queued` status. + * @dev Overridden version of the {Governor-state} function with added support for the `Queued` state. */ function state(uint256 proposalId) public view virtual override(IGovernor, Governor) returns (ProposalState) { - ProposalState status = super.state(proposalId); + ProposalState currentState = super.state(proposalId); - if (status != ProposalState.Succeeded) { - return status; + if (currentState != ProposalState.Succeeded) { + return currentState; } // core tracks execution, so we just have to check if successful proposal have been queued. bytes32 queueid = _timelockIds[proposalId]; if (queueid == bytes32(0)) { - return status; + return currentState; } else if (_timelock.isOperationDone(queueid)) { return ProposalState.Executed; - } else { + } else if (_timelock.isOperationPending(queueid)) { return ProposalState.Queued; + } else { + return ProposalState.Canceled; } } @@ -99,10 +107,10 @@ abstract contract GovernorTimelockControl is IGovernorTimelock, Governor { } /** - * @dev Overriden execute function that run the already queued proposal through the timelock. + * @dev Overridden execute function that run the already queued proposal through the timelock. */ function _execute( - uint256, /* proposalId */ + uint256 /* proposalId */, address[] memory targets, uint256[] memory values, bytes[] memory calldatas, @@ -112,9 +120,12 @@ abstract contract GovernorTimelockControl is IGovernorTimelock, Governor { } /** - * @dev Overriden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already + * @dev Overridden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already * been queued. */ + // This function can reenter through the external call to the timelock, but we assume the timelock is trusted and + // well behaved (according to TimelockController) and this will not happen. + // slither-disable-next-line reentrancy-no-eth function _cancel( address[] memory targets, uint256[] memory values, @@ -140,7 +151,9 @@ abstract contract GovernorTimelockControl is IGovernorTimelock, Governor { /** * @dev Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates - * must be proposed, scheduled and executed using the {Governor} workflow. + * must be proposed, scheduled, and executed through governance proposals. + * + * CAUTION: It is not recommended to change the timelock while there are other queued governance proposals. */ function updateTimelock(TimelockController newTimelock) external virtual onlyGovernance { _updateTimelock(newTimelock); diff --git a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol index aa9884c..c2e65cb 100644 --- a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol +++ b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol @@ -1,27 +1,55 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorVotes.sol) pragma solidity ^0.8.0; import "../Governor.sol"; -import "../../token/ERC20/extensions/ERC20Votes.sol"; -import "../../utils/math/Math.sol"; +import "../../interfaces/IERC5805.sol"; /** - * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token. + * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token, or since v4.5 an {ERC721Votes} token. * * _Available since v4.3._ */ abstract contract GovernorVotes is Governor { - ERC20Votes public immutable token; + IERC5805 public immutable token; - constructor(ERC20Votes tokenAddress) { - token = tokenAddress; + constructor(IVotes tokenAddress) { + token = IERC5805(address(tokenAddress)); } /** - * Read the voting weight from the token's built in snapshot mechanism (see {IGovernor-getVotes}). + * @dev Clock (as specified in EIP-6372) is set to match the token's clock. Fallback to block numbers if the token + * does not implement EIP-6372. */ - function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) { - return token.getPastVotes(account, blockNumber); + function clock() public view virtual override returns (uint48) { + try token.clock() returns (uint48 timepoint) { + return timepoint; + } catch { + return SafeCast.toUint48(block.number); + } + } + + /** + * @dev Machine-readable description of the clock as specified in EIP-6372. + */ + // solhint-disable-next-line func-name-mixedcase + function CLOCK_MODE() public view virtual override returns (string memory) { + try token.CLOCK_MODE() returns (string memory clockmode) { + return clockmode; + } catch { + return "mode=blocknumber&from=default"; + } + } + + /** + * Read the voting weight from the token's built in snapshot mechanism (see {Governor-_getVotes}). + */ + function _getVotes( + address account, + uint256 timepoint, + bytes memory /*params*/ + ) internal view virtual override returns (uint256) { + return token.getPastVotes(account, timepoint); } } diff --git a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol index 3fc42dd..e7d7c2c 100644 --- a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol +++ b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorVotesComp.sol) pragma solidity ^0.8.0; @@ -18,9 +19,37 @@ abstract contract GovernorVotesComp is Governor { } /** - * Read the voting weight from the token's built in snapshot mechanism (see {IGovernor-getVotes}). + * @dev Clock (as specified in EIP-6372) is set to match the token's clock. Fallback to block numbers if the token + * does not implement EIP-6372. */ - function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) { - return token.getPriorVotes(account, blockNumber); + function clock() public view virtual override returns (uint48) { + try token.clock() returns (uint48 timepoint) { + return timepoint; + } catch { + return SafeCast.toUint48(block.number); + } + } + + /** + * @dev Machine-readable description of the clock as specified in EIP-6372. + */ + // solhint-disable-next-line func-name-mixedcase + function CLOCK_MODE() public view virtual override returns (string memory) { + try token.CLOCK_MODE() returns (string memory clockmode) { + return clockmode; + } catch { + return "mode=blocknumber&from=default"; + } + } + + /** + * Read the voting weight from the token's built-in snapshot mechanism (see {Governor-_getVotes}). + */ + function _getVotes( + address account, + uint256 timepoint, + bytes memory /*params*/ + ) internal view virtual override returns (uint256) { + return token.getPriorVotes(account, timepoint); } } diff --git a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol index 8001150..097a796 100644 --- a/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +++ b/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol @@ -1,8 +1,11 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorVotesQuorumFraction.sol) pragma solidity ^0.8.0; import "./GovernorVotes.sol"; +import "../../utils/Checkpoints.sol"; +import "../../utils/math/SafeCast.sol"; /** * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token and a quorum expressed as a @@ -11,38 +14,107 @@ import "./GovernorVotes.sol"; * _Available since v4.3._ */ abstract contract GovernorVotesQuorumFraction is GovernorVotes { - uint256 private _quorumNumerator; + using Checkpoints for Checkpoints.Trace224; + + uint256 private _quorumNumerator; // DEPRECATED in favor of _quorumNumeratorHistory + + /// @custom:oz-retyped-from Checkpoints.History + Checkpoints.Trace224 private _quorumNumeratorHistory; event QuorumNumeratorUpdated(uint256 oldQuorumNumerator, uint256 newQuorumNumerator); + /** + * @dev Initialize quorum as a fraction of the token's total supply. + * + * The fraction is specified as `numerator / denominator`. By default the denominator is 100, so quorum is + * specified as a percent: a numerator of 10 corresponds to quorum being 10% of total supply. The denominator can be + * customized by overriding {quorumDenominator}. + */ constructor(uint256 quorumNumeratorValue) { _updateQuorumNumerator(quorumNumeratorValue); } + /** + * @dev Returns the current quorum numerator. See {quorumDenominator}. + */ function quorumNumerator() public view virtual returns (uint256) { - return _quorumNumerator; + return _quorumNumeratorHistory._checkpoints.length == 0 ? _quorumNumerator : _quorumNumeratorHistory.latest(); + } + + /** + * @dev Returns the quorum numerator at a specific timepoint. See {quorumDenominator}. + */ + function quorumNumerator(uint256 timepoint) public view virtual returns (uint256) { + // If history is empty, fallback to old storage + uint256 length = _quorumNumeratorHistory._checkpoints.length; + if (length == 0) { + return _quorumNumerator; + } + + // Optimistic search, check the latest checkpoint + Checkpoints.Checkpoint224 memory latest = _quorumNumeratorHistory._checkpoints[length - 1]; + if (latest._key <= timepoint) { + return latest._value; + } + + // Otherwise, do the binary search + return _quorumNumeratorHistory.upperLookupRecent(SafeCast.toUint32(timepoint)); } + /** + * @dev Returns the quorum denominator. Defaults to 100, but may be overridden. + */ function quorumDenominator() public view virtual returns (uint256) { return 100; } - function quorum(uint256 blockNumber) public view virtual override returns (uint256) { - return (token.getPastTotalSupply(blockNumber) * quorumNumerator()) / quorumDenominator(); + /** + * @dev Returns the quorum for a timepoint, in terms of number of votes: `supply * numerator / denominator`. + */ + function quorum(uint256 timepoint) public view virtual override returns (uint256) { + return (token.getPastTotalSupply(timepoint) * quorumNumerator(timepoint)) / quorumDenominator(); } + /** + * @dev Changes the quorum numerator. + * + * Emits a {QuorumNumeratorUpdated} event. + * + * Requirements: + * + * - Must be called through a governance proposal. + * - New numerator must be smaller or equal to the denominator. + */ function updateQuorumNumerator(uint256 newQuorumNumerator) external virtual onlyGovernance { _updateQuorumNumerator(newQuorumNumerator); } + /** + * @dev Changes the quorum numerator. + * + * Emits a {QuorumNumeratorUpdated} event. + * + * Requirements: + * + * - New numerator must be smaller or equal to the denominator. + */ function _updateQuorumNumerator(uint256 newQuorumNumerator) internal virtual { require( newQuorumNumerator <= quorumDenominator(), "GovernorVotesQuorumFraction: quorumNumerator over quorumDenominator" ); - uint256 oldQuorumNumerator = _quorumNumerator; - _quorumNumerator = newQuorumNumerator; + uint256 oldQuorumNumerator = quorumNumerator(); + + // Make sure we keep track of the original numerator in contracts upgraded from a version without checkpoints. + if (oldQuorumNumerator != 0 && _quorumNumeratorHistory._checkpoints.length == 0) { + _quorumNumeratorHistory._checkpoints.push( + Checkpoints.Checkpoint224({_key: 0, _value: SafeCast.toUint224(oldQuorumNumerator)}) + ); + } + + // Set new quorum for future proposals + _quorumNumeratorHistory.push(SafeCast.toUint32(clock()), SafeCast.toUint224(newQuorumNumerator)); emit QuorumNumeratorUpdated(oldQuorumNumerator, newQuorumNumerator); } diff --git a/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol b/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol index 2387ae4..40402f6 100644 --- a/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol +++ b/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (governance/extensions/IGovernorTimelock.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol index 9522849..f891132 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol index 2e10d3b..2aa885f 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155MetadataURI.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol index 79941cf..a6d4ead 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155Receiver.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol index 0e02b47..5ec44c7 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1271.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol index d610ca8..817f3da 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol @@ -1,23 +1,26 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1363.sol) pragma solidity ^0.8.0; import "./IERC20.sol"; import "./IERC165.sol"; +/** + * @dev Interface of an ERC1363 compliant contract, as defined in the + * https://eips.ethereum.org/EIPS/eip-1363[EIP]. + * + * Defines a interface for ERC20 tokens that supports executing recipient + * code after `transfer` or `transferFrom`, or spender code after `approve`. + */ interface IERC1363 is IERC165, IERC20 { /* - * Note: the ERC-165 identifier for this interface is 0x4bbee2df. - * 0x4bbee2df === + * Note: the ERC-165 identifier for this interface is 0xb0202a11. + * 0xb0202a11 === * bytes4(keccak256('transferAndCall(address,uint256)')) ^ * bytes4(keccak256('transferAndCall(address,uint256,bytes)')) ^ * bytes4(keccak256('transferFromAndCall(address,address,uint256)')) ^ - * bytes4(keccak256('transferFromAndCall(address,address,uint256,bytes)')) - */ - - /* - * Note: the ERC-165 identifier for this interface is 0xfb9ec8ce. - * 0xfb9ec8ce === + * bytes4(keccak256('transferFromAndCall(address,address,uint256,bytes)')) ^ * bytes4(keccak256('approveAndCall(address,uint256)')) ^ * bytes4(keccak256('approveAndCall(address,uint256,bytes)')) */ @@ -25,70 +28,53 @@ interface IERC1363 is IERC165, IERC20 { /** * @dev Transfer tokens from `msg.sender` to another address and then call `onTransferReceived` on receiver * @param to address The address which you want to transfer to - * @param value uint256 The amount of tokens to be transferred + * @param amount uint256 The amount of tokens to be transferred * @return true unless throwing */ - function transferAndCall(address to, uint256 value) external returns (bool); + function transferAndCall(address to, uint256 amount) external returns (bool); /** * @dev Transfer tokens from `msg.sender` to another address and then call `onTransferReceived` on receiver * @param to address The address which you want to transfer to - * @param value uint256 The amount of tokens to be transferred + * @param amount uint256 The amount of tokens to be transferred * @param data bytes Additional data with no specified format, sent in call to `to` * @return true unless throwing */ - function transferAndCall( - address to, - uint256 value, - bytes memory data - ) external returns (bool); + function transferAndCall(address to, uint256 amount, bytes memory data) external returns (bool); /** * @dev Transfer tokens from one address to another and then call `onTransferReceived` on receiver * @param from address The address which you want to send tokens from * @param to address The address which you want to transfer to - * @param value uint256 The amount of tokens to be transferred + * @param amount uint256 The amount of tokens to be transferred * @return true unless throwing */ - function transferFromAndCall( - address from, - address to, - uint256 value - ) external returns (bool); + function transferFromAndCall(address from, address to, uint256 amount) external returns (bool); /** * @dev Transfer tokens from one address to another and then call `onTransferReceived` on receiver * @param from address The address which you want to send tokens from * @param to address The address which you want to transfer to - * @param value uint256 The amount of tokens to be transferred + * @param amount uint256 The amount of tokens to be transferred * @param data bytes Additional data with no specified format, sent in call to `to` * @return true unless throwing */ - function transferFromAndCall( - address from, - address to, - uint256 value, - bytes memory data - ) external returns (bool); + function transferFromAndCall(address from, address to, uint256 amount, bytes memory data) external returns (bool); /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender * and then call `onApprovalReceived` on spender. * @param spender address The address which will spend the funds - * @param value uint256 The amount of tokens to be spent + * @param amount uint256 The amount of tokens to be spent */ - function approveAndCall(address spender, uint256 value) external returns (bool); + function approveAndCall(address spender, uint256 amount) external returns (bool); /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender * and then call `onApprovalReceived` on spender. * @param spender address The address which will spend the funds - * @param value uint256 The amount of tokens to be spent + * @param amount uint256 The amount of tokens to be spent * @param data bytes Additional data with no specified format, sent in call to `spender` */ - function approveAndCall( - address spender, - uint256 value, - bytes memory data - ) external returns (bool); + function approveAndCall(address spender, uint256 amount, bytes memory data) external returns (bool); } diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol index 1e9b3d4..382d7f1 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol @@ -1,7 +1,12 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1363Receiver.sol) pragma solidity ^0.8.0; +/** + * @dev Interface for any contract that wants to support {IERC1363-transferAndCall} + * or {IERC1363-transferFromAndCall} from {ERC1363} token contracts. + */ interface IERC1363Receiver { /* * Note: the ERC-165 identifier for this interface is 0x88a7ca5c. @@ -17,15 +22,14 @@ interface IERC1363Receiver { * Note: the token contract address is always the message sender. * @param operator address The address which called `transferAndCall` or `transferFromAndCall` function * @param from address The address which are token transferred from - * @param value uint256 The amount of tokens transferred + * @param amount uint256 The amount of tokens transferred * @param data bytes Additional data with no specified format - * @return `bytes4(keccak256("onTransferReceived(address,address,uint256,bytes)"))` - * unless throwing + * @return `bytes4(keccak256("onTransferReceived(address,address,uint256,bytes)"))` unless throwing */ function onTransferReceived( address operator, address from, - uint256 value, + uint256 amount, bytes memory data ) external returns (bytes4); } diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol index fb58ffc..09a7bd2 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol @@ -1,7 +1,12 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1363Spender.sol) pragma solidity ^0.8.0; +/** + * @dev Interface for any contract that wants to support {IERC1363-approveAndCall} + * from {ERC1363} token contracts. + */ interface IERC1363Spender { /* * Note: the ERC-165 identifier for this interface is 0x7b04a2d0. @@ -16,14 +21,9 @@ interface IERC1363Spender { * transaction being reverted. * Note: the token contract address is always the message sender. * @param owner address The address which called `approveAndCall` function - * @param value uint256 The amount of tokens to be spent + * @param amount uint256 The amount of tokens to be spent * @param data bytes Additional data with no specified format - * @return `bytes4(keccak256("onApprovalReceived(address,uint256,bytes)"))` - * unless throwing + * @return `bytes4(keccak256("onApprovalReceived(address,uint256,bytes)"))`unless throwing */ - function onApprovalReceived( - address owner, - uint256 value, - bytes memory data - ) external returns (bytes4); + function onApprovalReceived(address owner, uint256 amount, bytes memory data) external returns (bytes4); } diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol index e9f6b05..b97c4da 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC165.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol index ead5624..a83a7a3 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1820Implementer.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol index 7734129..1b1ba9f 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1820Registry.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol index 0072add..a819316 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol index 8b72362..aa5c639 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20Metadata.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol index 064d027..465b872 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol @@ -1,22 +1,25 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC2981.sol) pragma solidity ^0.8.0; -import "./IERC165.sol"; +import "../utils/introspection/IERC165.sol"; /** - * @dev Interface for the NFT Royalty Standard + * @dev Interface for the NFT Royalty Standard. + * + * A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal + * support for royalty payments across all NFT marketplaces and ecosystem participants. + * + * _Available since v4.5._ */ interface IERC2981 is IERC165 { /** - * @dev Called with the sale price to determine how much royalty is owed and to whom. - * @param tokenId - the NFT asset queried for royalty information - * @param salePrice - the sale price of the NFT asset specified by `tokenId` - * @return receiver - address of who should be sent the royalty payment - * @return royaltyAmount - the royalty payment amount for `salePrice` + * @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of + * exchange. The royalty amount is denominated and should be paid in that same unit of exchange. */ - function royaltyInfo(uint256 tokenId, uint256 salePrice) - external - view - returns (address receiver, uint256 royaltyAmount); + function royaltyInfo( + uint256 tokenId, + uint256 salePrice + ) external view returns (address receiver, uint256 royaltyAmount); } diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol index 36d64d5..1238190 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC3156.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol index fb24746..84bd721 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC3156FlashBorrower.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol index 8041ddb..3101283 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC3156FlashLender.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol index 8e763e6..822b311 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol index db01d87..e39a5a0 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Enumerable.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol index 7265be0..afe2707 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Metadata.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol index e23d986..c9c153a 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Receiver.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol index 88f7792..b97ba7b 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC777.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol index 23d7e7b..0ce2704 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC777Recipient.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol b/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol index ffd3fec..f1f17a2 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC777Sender.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol b/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol index 83a80ac..024b753 100644 --- a/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol +++ b/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol @@ -1,7 +1,8 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/draft-IERC2612.sol) pragma solidity ^0.8.0; -import "../token/ERC20/extensions/draft-IERC20Permit.sol"; +// EIP-2612 is Final as of 2022-11-01. This file is deprecated. -interface IERC2612 is IERC20Permit {} +import "./IERC2612.sol"; diff --git a/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol b/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol index d6b50a2..8cc14b9 100644 --- a/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol +++ b/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol @@ -1,6 +1,7 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.7.0) (metatx/ERC2771Context.sol) -pragma solidity ^0.8.0; +pragma solidity ^0.8.9; import "../utils/Context.sol"; @@ -8,8 +9,10 @@ import "../utils/Context.sol"; * @dev Context variant with ERC2771 support. */ abstract contract ERC2771Context is Context { - address private _trustedForwarder; + /// @custom:oz-upgrades-unsafe-allow state-variable-immutable + address private immutable _trustedForwarder; + /// @custom:oz-upgrades-unsafe-allow constructor constructor(address trustedForwarder) { _trustedForwarder = trustedForwarder; } @@ -21,6 +24,7 @@ abstract contract ERC2771Context is Context { function _msgSender() internal view virtual override returns (address sender) { if (isTrustedForwarder(msg.sender)) { // The assembly code is more direct than the Solidity version using `abi.decode`. + /// @solidity memory-safe-assembly assembly { sender := shr(96, calldataload(sub(calldatasize(), 20))) } diff --git a/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol b/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol index 816ba67..de26462 100644 --- a/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol +++ b/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol @@ -1,12 +1,18 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (metatx/MinimalForwarder.sol) pragma solidity ^0.8.0; import "../utils/cryptography/ECDSA.sol"; -import "../utils/cryptography/draft-EIP712.sol"; +import "../utils/cryptography/EIP712.sol"; /** * @dev Simple minimal forwarder to be used together with an ERC2771 compatible contract. See {ERC2771Context}. + * + * MinimalForwarder is mainly meant for testing, as it is missing features to be a good production-ready forwarder. This + * contract does not intend to have all the properties that are needed for a sound forwarding system. A fully + * functioning forwarding system with good properties requires more complexity. We suggest you look at other projects + * such as the GSN which do have the goal of building a system like that. */ contract MinimalForwarder is EIP712 { using ECDSA for bytes32; @@ -38,20 +44,28 @@ contract MinimalForwarder is EIP712 { return _nonces[req.from] == req.nonce && signer == req.from; } - function execute(ForwardRequest calldata req, bytes calldata signature) - public - payable - returns (bool, bytes memory) - { + function execute( + ForwardRequest calldata req, + bytes calldata signature + ) public payable returns (bool, bytes memory) { require(verify(req, signature), "MinimalForwarder: signature does not match request"); _nonces[req.from] = req.nonce + 1; (bool success, bytes memory returndata) = req.to.call{gas: req.gas, value: req.value}( abi.encodePacked(req.data, req.from) ); + // Validate that the relayer has sent enough gas for the call. - // See https://ronan.eth.link/blog/ethereum-gas-dangers/ - assert(gasleft() > req.gas / 63); + // See https://ronan.eth.limo/blog/ethereum-gas-dangers/ + if (gasleft() <= req.gas / 63) { + // We explicitly trigger invalid opcode to consume all gas and bubble-up the effects, since + // neither revert or assert consume all gas since Solidity 0.8.0 + // https://docs.soliditylang.org/en/v0.8.0/control-structures.html#panic-via-assert-and-error-via-require + /// @solidity memory-safe-assembly + assembly { + invalid() + } + } return (success, returndata); } diff --git a/node_modules/@openzeppelin/contracts/package.json b/node_modules/@openzeppelin/contracts/package.json index 5b95638..4d0f576 100644 --- a/node_modules/@openzeppelin/contracts/package.json +++ b/node_modules/@openzeppelin/contracts/package.json @@ -1,7 +1,7 @@ { "name": "@openzeppelin/contracts", "description": "Secure Smart Contract library for Solidity", - "version": "4.3.3", + "version": "4.9.0", "files": [ "**/*.sol", "/build/contracts/*.json", diff --git a/node_modules/@openzeppelin/contracts/proxy/Clones.sol b/node_modules/@openzeppelin/contracts/proxy/Clones.sol index 498fc91..583e022 100644 --- a/node_modules/@openzeppelin/contracts/proxy/Clones.sol +++ b/node_modules/@openzeppelin/contracts/proxy/Clones.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (proxy/Clones.sol) pragma solidity ^0.8.0; @@ -22,12 +23,14 @@ library Clones { * This function uses the create opcode, which should never revert. */ function clone(address implementation) internal returns (address instance) { + /// @solidity memory-safe-assembly assembly { - let ptr := mload(0x40) - mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) - mstore(add(ptr, 0x14), shl(0x60, implementation)) - mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) - instance := create(0, ptr, 0x37) + // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes + // of the `implementation` address with the bytecode before the address. + mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000)) + // Packs the remaining 17 bytes of `implementation` with the bytecode after the address. + mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3)) + instance := create(0, 0x09, 0x37) } require(instance != address(0), "ERC1167: create failed"); } @@ -40,12 +43,14 @@ library Clones { * the clones cannot be deployed twice at the same address. */ function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) { + /// @solidity memory-safe-assembly assembly { - let ptr := mload(0x40) - mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) - mstore(add(ptr, 0x14), shl(0x60, implementation)) - mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) - instance := create2(0, ptr, 0x37, salt) + // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes + // of the `implementation` address with the bytecode before the address. + mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000)) + // Packs the remaining 17 bytes of `implementation` with the bytecode after the address. + mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3)) + instance := create2(0, 0x09, 0x37, salt) } require(instance != address(0), "ERC1167: create2 failed"); } @@ -58,26 +63,26 @@ library Clones { bytes32 salt, address deployer ) internal pure returns (address predicted) { + /// @solidity memory-safe-assembly assembly { let ptr := mload(0x40) - mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) - mstore(add(ptr, 0x14), shl(0x60, implementation)) - mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf3ff00000000000000000000000000000000) - mstore(add(ptr, 0x38), shl(0x60, deployer)) - mstore(add(ptr, 0x4c), salt) - mstore(add(ptr, 0x6c), keccak256(ptr, 0x37)) - predicted := keccak256(add(ptr, 0x37), 0x55) + mstore(add(ptr, 0x38), deployer) + mstore(add(ptr, 0x24), 0x5af43d82803e903d91602b57fd5bf3ff) + mstore(add(ptr, 0x14), implementation) + mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73) + mstore(add(ptr, 0x58), salt) + mstore(add(ptr, 0x78), keccak256(add(ptr, 0x0c), 0x37)) + predicted := keccak256(add(ptr, 0x43), 0x55) } } /** * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}. */ - function predictDeterministicAddress(address implementation, bytes32 salt) - internal - view - returns (address predicted) - { + function predictDeterministicAddress( + address implementation, + bytes32 salt + ) internal view returns (address predicted) { return predictDeterministicAddress(implementation, salt, address(this)); } } diff --git a/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol b/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol index 4d893c1..a04d701 100644 --- a/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol +++ b/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol) pragma solidity ^0.8.0; @@ -16,10 +17,9 @@ contract ERC1967Proxy is Proxy, ERC1967Upgrade { * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`. * * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded - * function call, and allows initializating the storage of the proxy like a Solidity constructor. + * function call, and allows initializing the storage of the proxy like a Solidity constructor. */ constructor(address _logic, bytes memory _data) payable { - assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1)); _upgradeToAndCall(_logic, _data, false); } diff --git a/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol b/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol index bab2073..cc9e569 100644 --- a/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol +++ b/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol @@ -1,8 +1,11 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (proxy/ERC1967/ERC1967Upgrade.sol) pragma solidity ^0.8.2; import "../beacon/IBeacon.sol"; +import "../../interfaces/IERC1967.sol"; +import "../../interfaces/draft-IERC1822.sol"; import "../../utils/Address.sol"; import "../../utils/StorageSlot.sol"; @@ -11,10 +14,8 @@ import "../../utils/StorageSlot.sol"; * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. * * _Available since v4.1._ - * - * @custom:oz-upgrades-unsafe-allow delegatecall */ -abstract contract ERC1967Upgrade { +abstract contract ERC1967Upgrade is IERC1967 { // This is the keccak-256 hash of "eip1967.proxy.rollback" subtracted by 1 bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143; @@ -25,11 +26,6 @@ abstract contract ERC1967Upgrade { */ bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; - /** - * @dev Emitted when the implementation is upgraded. - */ - event Upgraded(address indexed implementation); - /** * @dev Returns the current implementation address. */ @@ -60,11 +56,7 @@ abstract contract ERC1967Upgrade { * * Emits an {Upgraded} event. */ - function _upgradeToAndCall( - address newImplementation, - bytes memory data, - bool forceCall - ) internal { + function _upgradeToAndCall(address newImplementation, bytes memory data, bool forceCall) internal { _upgradeTo(newImplementation); if (data.length > 0 || forceCall) { Address.functionDelegateCall(newImplementation, data); @@ -76,33 +68,19 @@ abstract contract ERC1967Upgrade { * * Emits an {Upgraded} event. */ - function _upgradeToAndCallSecure( - address newImplementation, - bytes memory data, - bool forceCall - ) internal { - address oldImplementation = _getImplementation(); - - // Initial upgrade and setup call - _setImplementation(newImplementation); - if (data.length > 0 || forceCall) { - Address.functionDelegateCall(newImplementation, data); - } - - // Perform rollback test if not already in progress - StorageSlot.BooleanSlot storage rollbackTesting = StorageSlot.getBooleanSlot(_ROLLBACK_SLOT); - if (!rollbackTesting.value) { - // Trigger rollback using upgradeTo from the new implementation - rollbackTesting.value = true; - Address.functionDelegateCall( - newImplementation, - abi.encodeWithSignature("upgradeTo(address)", oldImplementation) - ); - rollbackTesting.value = false; - // Check rollback was effective - require(oldImplementation == _getImplementation(), "ERC1967Upgrade: upgrade breaks further upgrades"); - // Finally reset to the new implementation and log the upgrade - _upgradeTo(newImplementation); + function _upgradeToAndCallUUPS(address newImplementation, bytes memory data, bool forceCall) internal { + // Upgrades from old implementations will perform a rollback test. This test requires the new + // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing + // this special case will break upgrade paths from old UUPS implementation to new ones. + if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) { + _setImplementation(newImplementation); + } else { + try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) { + require(slot == _IMPLEMENTATION_SLOT, "ERC1967Upgrade: unsupported proxiableUUID"); + } catch { + revert("ERC1967Upgrade: new implementation is not UUPS"); + } + _upgradeToAndCall(newImplementation, data, forceCall); } } @@ -113,11 +91,6 @@ abstract contract ERC1967Upgrade { */ bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; - /** - * @dev Emitted when the admin account has changed. - */ - event AdminChanged(address previousAdmin, address newAdmin); - /** * @dev Returns the current admin. */ @@ -149,11 +122,6 @@ abstract contract ERC1967Upgrade { */ bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; - /** - * @dev Emitted when the beacon is upgraded. - */ - event BeaconUpgraded(address indexed beacon); - /** * @dev Returns the current beacon. */ @@ -179,11 +147,7 @@ abstract contract ERC1967Upgrade { * * Emits a {BeaconUpgraded} event. */ - function _upgradeBeaconToAndCall( - address newBeacon, - bytes memory data, - bool forceCall - ) internal { + function _upgradeBeaconToAndCall(address newBeacon, bytes memory data, bool forceCall) internal { _setBeacon(newBeacon); emit BeaconUpgraded(newBeacon); if (data.length > 0 || forceCall) { diff --git a/node_modules/@openzeppelin/contracts/proxy/Proxy.sol b/node_modules/@openzeppelin/contracts/proxy/Proxy.sol index e2d6bc9..988cf72 100644 --- a/node_modules/@openzeppelin/contracts/proxy/Proxy.sol +++ b/node_modules/@openzeppelin/contracts/proxy/Proxy.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol) pragma solidity ^0.8.0; @@ -16,7 +17,7 @@ abstract contract Proxy { /** * @dev Delegates the current call to `implementation`. * - * This function does not return to its internall call site, it will return directly to the external caller. + * This function does not return to its internal call site, it will return directly to the external caller. */ function _delegate(address implementation) internal virtual { assembly { @@ -44,7 +45,7 @@ abstract contract Proxy { } /** - * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function + * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function * and {_fallback} should delegate. */ function _implementation() internal view virtual returns (address); @@ -52,7 +53,7 @@ abstract contract Proxy { /** * @dev Delegates the current call to the address returned by `_implementation()`. * - * This function does not return to its internall call site, it will return directly to the external caller. + * This function does not return to its internal call site, it will return directly to the external caller. */ function _fallback() internal virtual { _beforeFallback(); @@ -79,7 +80,7 @@ abstract contract Proxy { * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` * call, or as part of the Solidity `fallback` or `receive` functions. * - * If overriden should call `super._beforeFallback()`. + * If overridden should call `super._beforeFallback()`. */ function _beforeFallback() internal virtual {} } diff --git a/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol b/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol index c30eb0f..d217b15 100644 --- a/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol +++ b/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.7.0) (proxy/beacon/BeaconProxy.sol) pragma solidity ^0.8.0; @@ -7,7 +8,7 @@ import "../Proxy.sol"; import "../ERC1967/ERC1967Upgrade.sol"; /** - * @dev This contract implements a proxy that gets the implementation address for each call from a {UpgradeableBeacon}. + * @dev This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}. * * The beacon address is stored in storage slot `uint256(keccak256('eip1967.proxy.beacon')) - 1`, so that it doesn't * conflict with the storage layout of the implementation behind the proxy. @@ -19,7 +20,7 @@ contract BeaconProxy is Proxy, ERC1967Upgrade { * @dev Initializes the proxy with `beacon`. * * If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This - * will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity + * will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity * constructor. * * Requirements: @@ -27,7 +28,6 @@ contract BeaconProxy is Proxy, ERC1967Upgrade { * - `beacon` must be a contract with the interface {IBeacon}. */ constructor(address beacon, bytes memory data) payable { - assert(_BEACON_SLOT == bytes32(uint256(keccak256("eip1967.proxy.beacon")) - 1)); _upgradeBeaconToAndCall(beacon, data, false); } diff --git a/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol b/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol index ebba392..fba3ee2 100644 --- a/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol +++ b/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol b/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol index aac40d0..5d83ceb 100644 --- a/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol +++ b/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (proxy/beacon/UpgradeableBeacon.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol b/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol index a98a831..5715305 100644 --- a/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol +++ b/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.8.3) (proxy/transparent/ProxyAdmin.sol) pragma solidity ^0.8.0; @@ -17,7 +18,7 @@ contract ProxyAdmin is Ownable { * * - This contract must be the admin of `proxy`. */ - function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) { + function getProxyImplementation(ITransparentUpgradeableProxy proxy) public view virtual returns (address) { // We need to manually run the static call since the getter cannot be flagged as view // bytes4(keccak256("implementation()")) == 0x5c60da1b (bool success, bytes memory returndata) = address(proxy).staticcall(hex"5c60da1b"); @@ -32,7 +33,7 @@ contract ProxyAdmin is Ownable { * * - This contract must be the admin of `proxy`. */ - function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) { + function getProxyAdmin(ITransparentUpgradeableProxy proxy) public view virtual returns (address) { // We need to manually run the static call since the getter cannot be flagged as view // bytes4(keccak256("admin()")) == 0xf851a440 (bool success, bytes memory returndata) = address(proxy).staticcall(hex"f851a440"); @@ -47,7 +48,7 @@ contract ProxyAdmin is Ownable { * * - This contract must be the current admin of `proxy`. */ - function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner { + function changeProxyAdmin(ITransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner { proxy.changeAdmin(newAdmin); } @@ -58,7 +59,7 @@ contract ProxyAdmin is Ownable { * * - This contract must be the admin of `proxy`. */ - function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner { + function upgrade(ITransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner { proxy.upgradeTo(implementation); } @@ -71,7 +72,7 @@ contract ProxyAdmin is Ownable { * - This contract must be the admin of `proxy`. */ function upgradeAndCall( - TransparentUpgradeableProxy proxy, + ITransparentUpgradeableProxy proxy, address implementation, bytes memory data ) public payable virtual onlyOwner { diff --git a/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol b/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol index c8a61ee..6f18b49 100644 --- a/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +++ b/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol @@ -1,9 +1,28 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (proxy/transparent/TransparentUpgradeableProxy.sol) pragma solidity ^0.8.0; import "../ERC1967/ERC1967Proxy.sol"; +/** + * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy} + * does not implement this interface directly, and some of its functions are implemented by an internal dispatch + * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not + * include them in the ABI so this interface must be used to interact with it. + */ +interface ITransparentUpgradeableProxy is IERC1967 { + function admin() external view returns (address); + + function implementation() external view returns (address); + + function changeAdmin(address) external; + + function upgradeTo(address) external; + + function upgradeToAndCall(address, bytes memory) external payable; +} + /** * @dev This contract implements a proxy that is upgradeable by an admin. * @@ -24,23 +43,32 @@ import "../ERC1967/ERC1967Proxy.sol"; * * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy. + * + * NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not + * inherit from that interface, and instead the admin functions are implicitly implemented using a custom dispatch + * mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to + * fully implement transparency without decoding reverts caused by selector clashes between the proxy and the + * implementation. + * + * WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler + * will not check that there are no selector conflicts, due to the note above. A selector clash between any new function + * and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could + * render the admin operations inaccessible, which could prevent upgradeability. Transparency may also be compromised. */ contract TransparentUpgradeableProxy is ERC1967Proxy { /** * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}. */ - constructor( - address _logic, - address admin_, - bytes memory _data - ) payable ERC1967Proxy(_logic, _data) { - assert(_ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1)); + constructor(address _logic, address admin_, bytes memory _data) payable ERC1967Proxy(_logic, _data) { _changeAdmin(admin_); } /** * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin. + * + * CAUTION: This modifier is deprecated, as it could cause issues if the modified function has arguments, and the + * implementation provides a function with the same selector. */ modifier ifAdmin() { if (msg.sender == _getAdmin()) { @@ -50,75 +78,114 @@ contract TransparentUpgradeableProxy is ERC1967Proxy { } } + /** + * @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior + */ + function _fallback() internal virtual override { + if (msg.sender == _getAdmin()) { + bytes memory ret; + bytes4 selector = msg.sig; + if (selector == ITransparentUpgradeableProxy.upgradeTo.selector) { + ret = _dispatchUpgradeTo(); + } else if (selector == ITransparentUpgradeableProxy.upgradeToAndCall.selector) { + ret = _dispatchUpgradeToAndCall(); + } else if (selector == ITransparentUpgradeableProxy.changeAdmin.selector) { + ret = _dispatchChangeAdmin(); + } else if (selector == ITransparentUpgradeableProxy.admin.selector) { + ret = _dispatchAdmin(); + } else if (selector == ITransparentUpgradeableProxy.implementation.selector) { + ret = _dispatchImplementation(); + } else { + revert("TransparentUpgradeableProxy: admin cannot fallback to proxy target"); + } + assembly { + return(add(ret, 0x20), mload(ret)) + } + } else { + super._fallback(); + } + } + /** * @dev Returns the current admin. * - * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. - * * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103` */ - function admin() external ifAdmin returns (address admin_) { - admin_ = _getAdmin(); + function _dispatchAdmin() private returns (bytes memory) { + _requireZeroValue(); + + address admin = _getAdmin(); + return abi.encode(admin); } /** * @dev Returns the current implementation. * - * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. - * * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc` */ - function implementation() external ifAdmin returns (address implementation_) { - implementation_ = _implementation(); + function _dispatchImplementation() private returns (bytes memory) { + _requireZeroValue(); + + address implementation = _implementation(); + return abi.encode(implementation); } /** * @dev Changes the admin of the proxy. * * Emits an {AdminChanged} event. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}. */ - function changeAdmin(address newAdmin) external virtual ifAdmin { + function _dispatchChangeAdmin() private returns (bytes memory) { + _requireZeroValue(); + + address newAdmin = abi.decode(msg.data[4:], (address)); _changeAdmin(newAdmin); + + return ""; } /** * @dev Upgrade the implementation of the proxy. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}. */ - function upgradeTo(address newImplementation) external ifAdmin { + function _dispatchUpgradeTo() private returns (bytes memory) { + _requireZeroValue(); + + address newImplementation = abi.decode(msg.data[4:], (address)); _upgradeToAndCall(newImplementation, bytes(""), false); + + return ""; } /** * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the * proxied contract. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}. */ - function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin { + function _dispatchUpgradeToAndCall() private returns (bytes memory) { + (address newImplementation, bytes memory data) = abi.decode(msg.data[4:], (address, bytes)); _upgradeToAndCall(newImplementation, data, true); + + return ""; } /** * @dev Returns the current admin. + * + * CAUTION: This function is deprecated. Use {ERC1967Upgrade-_getAdmin} instead. */ function _admin() internal view virtual returns (address) { return _getAdmin(); } /** - * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}. + * @dev To keep this contract fully transparent, all `ifAdmin` functions must be payable. This helper is here to + * emulate some proxy functions being non-payable while still allowing value to pass through. */ - function _beforeFallback() internal virtual override { - require(msg.sender != _getAdmin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target"); - super._beforeFallback(); + function _requireZeroValue() private { + require(msg.value == 0); } } diff --git a/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol b/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol index 7bd696b..33ec227 100644 --- a/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol +++ b/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol @@ -1,24 +1,66 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol) -pragma solidity ^0.8.0; +pragma solidity ^0.8.2; + +import "../../utils/Address.sol"; /** * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed - * behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an + * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. * + * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be + * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in + * case an upgrade adds a module that needs to be initialized. + * + * For example: + * + * [.hljs-theme-light.nopadding] + * ```solidity + * contract MyToken is ERC20Upgradeable { + * function initialize() initializer public { + * __ERC20_init("MyToken", "MTK"); + * } + * } + * + * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { + * function initializeV2() reinitializer(2) public { + * __ERC20Permit_init("MyToken"); + * } + * } + * ``` + * * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. * * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. + * + * [CAUTION] + * ==== + * Avoid leaving a contract uninitialized. + * + * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation + * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke + * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: + * + * [.hljs-theme-light.nopadding] + * ``` + * /// @custom:oz-upgrades-unsafe-allow constructor + * constructor() { + * _disableInitializers(); + * } + * ``` + * ==== */ abstract contract Initializable { /** * @dev Indicates that the contract has been initialized. + * @custom:oz-retyped-from bool */ - bool private _initialized; + uint8 private _initialized; /** * @dev Indicates that the contract is in the process of being initialized. @@ -26,21 +68,99 @@ abstract contract Initializable { bool private _initializing; /** - * @dev Modifier to protect an initializer function from being invoked twice. + * @dev Triggered when the contract has been initialized or reinitialized. */ - modifier initializer() { - require(_initializing || !_initialized, "Initializable: contract is already initialized"); + event Initialized(uint8 version); + /** + * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope, + * `onlyInitializing` functions can be used to initialize parent contracts. + * + * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a + * constructor. + * + * Emits an {Initialized} event. + */ + modifier initializer() { bool isTopLevelCall = !_initializing; + require( + (isTopLevelCall && _initialized < 1) || (!Address.isContract(address(this)) && _initialized == 1), + "Initializable: contract is already initialized" + ); + _initialized = 1; if (isTopLevelCall) { _initializing = true; - _initialized = true; } - _; - if (isTopLevelCall) { _initializing = false; + emit Initialized(1); } } + + /** + * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the + * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be + * used to initialize parent contracts. + * + * A reinitializer may be used after the original initialization step. This is essential to configure modules that + * are added through upgrades and that require initialization. + * + * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer` + * cannot be nested. If one is invoked in the context of another, execution will revert. + * + * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in + * a contract, executing them in the right order is up to the developer or operator. + * + * WARNING: setting the version to 255 will prevent any future reinitialization. + * + * Emits an {Initialized} event. + */ + modifier reinitializer(uint8 version) { + require(!_initializing && _initialized < version, "Initializable: contract is already initialized"); + _initialized = version; + _initializing = true; + _; + _initializing = false; + emit Initialized(version); + } + + /** + * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the + * {initializer} and {reinitializer} modifiers, directly or indirectly. + */ + modifier onlyInitializing() { + require(_initializing, "Initializable: contract is not initializing"); + _; + } + + /** + * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call. + * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized + * to any version. It is recommended to use this to lock implementation contracts that are designed to be called + * through proxies. + * + * Emits an {Initialized} event the first time it is successfully executed. + */ + function _disableInitializers() internal virtual { + require(!_initializing, "Initializable: contract is initializing"); + if (_initialized != type(uint8).max) { + _initialized = type(uint8).max; + emit Initialized(type(uint8).max); + } + } + + /** + * @dev Returns the highest version that has been initialized. See {reinitializer}. + */ + function _getInitializedVersion() internal view returns (uint8) { + return _initialized; + } + + /** + * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}. + */ + function _isInitializing() internal view returns (bool) { + return _initializing; + } } diff --git a/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol b/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol index a88b2c2..86684cf 100644 --- a/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol +++ b/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol @@ -1,7 +1,9 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/UUPSUpgradeable.sol) pragma solidity ^0.8.0; +import "../../interfaces/draft-IERC1822.sol"; import "../ERC1967/ERC1967Upgrade.sol"; /** @@ -16,7 +18,7 @@ import "../ERC1967/ERC1967Upgrade.sol"; * * _Available since v4.1._ */ -abstract contract UUPSUpgradeable is ERC1967Upgrade { +abstract contract UUPSUpgradeable is IERC1822Proxiable, ERC1967Upgrade { /// @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment address private immutable __self = address(this); @@ -33,16 +35,39 @@ abstract contract UUPSUpgradeable is ERC1967Upgrade { _; } + /** + * @dev Check that the execution is not being performed through a delegate call. This allows a function to be + * callable on the implementing contract but not through proxies. + */ + modifier notDelegated() { + require(address(this) == __self, "UUPSUpgradeable: must not be called through delegatecall"); + _; + } + + /** + * @dev Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the + * implementation. It is used to validate the implementation's compatibility when performing an upgrade. + * + * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks + * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this + * function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier. + */ + function proxiableUUID() external view virtual override notDelegated returns (bytes32) { + return _IMPLEMENTATION_SLOT; + } + /** * @dev Upgrade the implementation of the proxy to `newImplementation`. * * Calls {_authorizeUpgrade}. * * Emits an {Upgraded} event. + * + * @custom:oz-upgrades-unsafe-allow-reachable delegatecall */ - function upgradeTo(address newImplementation) external virtual onlyProxy { + function upgradeTo(address newImplementation) public virtual onlyProxy { _authorizeUpgrade(newImplementation); - _upgradeToAndCallSecure(newImplementation, new bytes(0), false); + _upgradeToAndCallUUPS(newImplementation, new bytes(0), false); } /** @@ -52,10 +77,12 @@ abstract contract UUPSUpgradeable is ERC1967Upgrade { * Calls {_authorizeUpgrade}. * * Emits an {Upgraded} event. + * + * @custom:oz-upgrades-unsafe-allow-reachable delegatecall */ - function upgradeToAndCall(address newImplementation, bytes memory data) external payable virtual onlyProxy { + function upgradeToAndCall(address newImplementation, bytes memory data) public payable virtual onlyProxy { _authorizeUpgrade(newImplementation); - _upgradeToAndCallSecure(newImplementation, data, true); + _upgradeToAndCallUUPS(newImplementation, data, true); } /** diff --git a/node_modules/@openzeppelin/contracts/security/Pausable.sol b/node_modules/@openzeppelin/contracts/security/Pausable.sol index 3c943ce..bdd1184 100644 --- a/node_modules/@openzeppelin/contracts/security/Pausable.sol +++ b/node_modules/@openzeppelin/contracts/security/Pausable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol) pragma solidity ^0.8.0; @@ -33,13 +34,6 @@ abstract contract Pausable is Context { _paused = false; } - /** - * @dev Returns true if the contract is paused, and false otherwise. - */ - function paused() public view virtual returns (bool) { - return _paused; - } - /** * @dev Modifier to make a function callable only when the contract is not paused. * @@ -48,7 +42,7 @@ abstract contract Pausable is Context { * - The contract must not be paused. */ modifier whenNotPaused() { - require(!paused(), "Pausable: paused"); + _requireNotPaused(); _; } @@ -60,10 +54,31 @@ abstract contract Pausable is Context { * - The contract must be paused. */ modifier whenPaused() { - require(paused(), "Pausable: not paused"); + _requirePaused(); _; } + /** + * @dev Returns true if the contract is paused, and false otherwise. + */ + function paused() public view virtual returns (bool) { + return _paused; + } + + /** + * @dev Throws if the contract is paused. + */ + function _requireNotPaused() internal view virtual { + require(!paused(), "Pausable: paused"); + } + + /** + * @dev Throws if the contract is not paused. + */ + function _requirePaused() internal view virtual { + require(paused(), "Pausable: not paused"); + } + /** * @dev Triggers stopped state. * diff --git a/node_modules/@openzeppelin/contracts/security/PullPayment.sol b/node_modules/@openzeppelin/contracts/security/PullPayment.sol index dad32f0..65b4980 100644 --- a/node_modules/@openzeppelin/contracts/security/PullPayment.sol +++ b/node_modules/@openzeppelin/contracts/security/PullPayment.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.8.0) (security/PullPayment.sol) pragma solidity ^0.8.0; @@ -6,7 +7,7 @@ import "../utils/escrow/Escrow.sol"; /** * @dev Simple implementation of a - * https://consensys.github.io/smart-contract-best-practices/recommendations/#favor-pull-over-push-for-external-calls[pull-payment] + * https://consensys.github.io/smart-contract-best-practices/development-recommendations/general/external-calls/#favor-pull-over-push-for-external-calls[pull-payment] * strategy, where the paying contract doesn't interact directly with the * receiver account, which must withdraw its payments itself. * @@ -42,6 +43,8 @@ abstract contract PullPayment { * checks-effects-interactions pattern or using {ReentrancyGuard}. * * @param payee Whose payments will be withdrawn. + * + * Causes the `escrow` to emit a {Withdrawn} event. */ function withdrawPayments(address payable payee) public virtual { _escrow.withdraw(payee); @@ -62,6 +65,8 @@ abstract contract PullPayment { * * @param dest The destination address of the funds. * @param amount The amount to transfer. + * + * Causes the `escrow` to emit a {Deposited} event. */ function _asyncTransfer(address dest, uint256 amount) internal virtual { _escrow.deposit{value: amount}(dest); diff --git a/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol b/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol index 067a2c9..dac508b 100644 --- a/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol +++ b/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; @@ -43,20 +44,34 @@ abstract contract ReentrancyGuard { * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening - * by making the `nonReentrant` function external, and make it call a + * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { - // On the first call to nonReentrant, _notEntered will be true + _nonReentrantBefore(); + _; + _nonReentrantAfter(); + } + + function _nonReentrantBefore() private { + // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; + } - _; - + function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } + + /** + * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a + * `nonReentrant` function in the call stack. + */ + function _reentrancyGuardEntered() internal view returns (bool) { + return _status == _ENTERED; + } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol b/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol index 634f389..6260e4c 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/ERC1155.sol) pragma solidity ^0.8.0; @@ -67,7 +68,7 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) public view virtual override returns (uint256) { - require(account != address(0), "ERC1155: balance query for the zero address"); + require(account != address(0), "ERC1155: address zero is not a valid owner"); return _balances[id][account]; } @@ -78,13 +79,10 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { * * - `accounts` and `ids` must have the same length. */ - function balanceOfBatch(address[] memory accounts, uint256[] memory ids) - public - view - virtual - override - returns (uint256[] memory) - { + function balanceOfBatch( + address[] memory accounts, + uint256[] memory ids + ) public view virtual override returns (uint256[] memory) { require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch"); uint256[] memory batchBalances = new uint256[](accounts.length); @@ -100,10 +98,7 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { * @dev See {IERC1155-setApprovalForAll}. */ function setApprovalForAll(address operator, bool approved) public virtual override { - require(_msgSender() != operator, "ERC1155: setting approval status for self"); - - _operatorApprovals[_msgSender()][operator] = approved; - emit ApprovalForAll(_msgSender(), operator, approved); + _setApprovalForAll(_msgSender(), operator, approved); } /** @@ -125,7 +120,7 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { ) public virtual override { require( from == _msgSender() || isApprovedForAll(from, _msgSender()), - "ERC1155: caller is not owner nor approved" + "ERC1155: caller is not token owner or approved" ); _safeTransferFrom(from, to, id, amount, data); } @@ -142,7 +137,7 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { ) public virtual override { require( from == _msgSender() || isApprovedForAll(from, _msgSender()), - "ERC1155: transfer caller is not owner nor approved" + "ERC1155: caller is not token owner or approved" ); _safeBatchTransferFrom(from, to, ids, amounts, data); } @@ -169,8 +164,10 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { require(to != address(0), "ERC1155: transfer to the zero address"); address operator = _msgSender(); + uint256[] memory ids = _asSingletonArray(id); + uint256[] memory amounts = _asSingletonArray(amount); - _beforeTokenTransfer(operator, from, to, _asSingletonArray(id), _asSingletonArray(amount), data); + _beforeTokenTransfer(operator, from, to, ids, amounts, data); uint256 fromBalance = _balances[id][from]; require(fromBalance >= amount, "ERC1155: insufficient balance for transfer"); @@ -181,6 +178,8 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { emit TransferSingle(operator, from, to, id, amount); + _afterTokenTransfer(operator, from, to, ids, amounts, data); + _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data); } @@ -222,6 +221,8 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { emit TransferBatch(operator, from, to, ids, amounts); + _afterTokenTransfer(operator, from, to, ids, amounts, data); + _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data); } @@ -249,37 +250,38 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { } /** - * @dev Creates `amount` tokens of token type `id`, and assigns them to `account`. + * @dev Creates `amount` tokens of token type `id`, and assigns them to `to`. * * Emits a {TransferSingle} event. * * Requirements: * - * - `account` cannot be the zero address. - * - If `account` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the + * - `to` cannot be the zero address. + * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ - function _mint( - address account, - uint256 id, - uint256 amount, - bytes memory data - ) internal virtual { - require(account != address(0), "ERC1155: mint to the zero address"); + function _mint(address to, uint256 id, uint256 amount, bytes memory data) internal virtual { + require(to != address(0), "ERC1155: mint to the zero address"); address operator = _msgSender(); + uint256[] memory ids = _asSingletonArray(id); + uint256[] memory amounts = _asSingletonArray(amount); + + _beforeTokenTransfer(operator, address(0), to, ids, amounts, data); - _beforeTokenTransfer(operator, address(0), account, _asSingletonArray(id), _asSingletonArray(amount), data); + _balances[id][to] += amount; + emit TransferSingle(operator, address(0), to, id, amount); - _balances[id][account] += amount; - emit TransferSingle(operator, address(0), account, id, amount); + _afterTokenTransfer(operator, address(0), to, ids, amounts, data); - _doSafeTransferAcceptanceCheck(operator, address(0), account, id, amount, data); + _doSafeTransferAcceptanceCheck(operator, address(0), to, id, amount, data); } /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}. * + * Emits a {TransferBatch} event. + * * Requirements: * * - `ids` and `amounts` must have the same length. @@ -305,68 +307,83 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { emit TransferBatch(operator, address(0), to, ids, amounts); + _afterTokenTransfer(operator, address(0), to, ids, amounts, data); + _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data); } /** - * @dev Destroys `amount` tokens of token type `id` from `account` + * @dev Destroys `amount` tokens of token type `id` from `from` + * + * Emits a {TransferSingle} event. * * Requirements: * - * - `account` cannot be the zero address. - * - `account` must have at least `amount` tokens of token type `id`. + * - `from` cannot be the zero address. + * - `from` must have at least `amount` tokens of token type `id`. */ - function _burn( - address account, - uint256 id, - uint256 amount - ) internal virtual { - require(account != address(0), "ERC1155: burn from the zero address"); + function _burn(address from, uint256 id, uint256 amount) internal virtual { + require(from != address(0), "ERC1155: burn from the zero address"); address operator = _msgSender(); + uint256[] memory ids = _asSingletonArray(id); + uint256[] memory amounts = _asSingletonArray(amount); - _beforeTokenTransfer(operator, account, address(0), _asSingletonArray(id), _asSingletonArray(amount), ""); + _beforeTokenTransfer(operator, from, address(0), ids, amounts, ""); - uint256 accountBalance = _balances[id][account]; - require(accountBalance >= amount, "ERC1155: burn amount exceeds balance"); + uint256 fromBalance = _balances[id][from]; + require(fromBalance >= amount, "ERC1155: burn amount exceeds balance"); unchecked { - _balances[id][account] = accountBalance - amount; + _balances[id][from] = fromBalance - amount; } - emit TransferSingle(operator, account, address(0), id, amount); + emit TransferSingle(operator, from, address(0), id, amount); + + _afterTokenTransfer(operator, from, address(0), ids, amounts, ""); } /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}. * + * Emits a {TransferBatch} event. + * * Requirements: * * - `ids` and `amounts` must have the same length. */ - function _burnBatch( - address account, - uint256[] memory ids, - uint256[] memory amounts - ) internal virtual { - require(account != address(0), "ERC1155: burn from the zero address"); + function _burnBatch(address from, uint256[] memory ids, uint256[] memory amounts) internal virtual { + require(from != address(0), "ERC1155: burn from the zero address"); require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); address operator = _msgSender(); - _beforeTokenTransfer(operator, account, address(0), ids, amounts, ""); + _beforeTokenTransfer(operator, from, address(0), ids, amounts, ""); for (uint256 i = 0; i < ids.length; i++) { uint256 id = ids[i]; uint256 amount = amounts[i]; - uint256 accountBalance = _balances[id][account]; - require(accountBalance >= amount, "ERC1155: burn amount exceeds balance"); + uint256 fromBalance = _balances[id][from]; + require(fromBalance >= amount, "ERC1155: burn amount exceeds balance"); unchecked { - _balances[id][account] = accountBalance - amount; + _balances[id][from] = fromBalance - amount; } } - emit TransferBatch(operator, account, address(0), ids, amounts); + emit TransferBatch(operator, from, address(0), ids, amounts); + + _afterTokenTransfer(operator, from, address(0), ids, amounts, ""); + } + + /** + * @dev Approve `operator` to operate on all of `owner` tokens + * + * Emits an {ApprovalForAll} event. + */ + function _setApprovalForAll(address owner, address operator, bool approved) internal virtual { + require(owner != operator, "ERC1155: setting approval status for self"); + _operatorApprovals[owner][operator] = approved; + emit ApprovalForAll(owner, operator, approved); } /** @@ -374,7 +391,7 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { * and burning, as well as batched variants. * * The same hook is called on both single and batched variants. For single - * transfers, the length of the `id` and `amount` arrays will be 1. + * transfers, the length of the `ids` and `amounts` arrays will be 1. * * Calling conditions (for each `id` and `amount` pair): * @@ -398,6 +415,35 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { bytes memory data ) internal virtual {} + /** + * @dev Hook that is called after any token transfer. This includes minting + * and burning, as well as batched variants. + * + * The same hook is called on both single and batched variants. For single + * transfers, the length of the `id` and `amount` arrays will be 1. + * + * Calling conditions (for each `id` and `amount` pair): + * + * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens + * of token type `id` will be transferred to `to`. + * - When `from` is zero, `amount` tokens of token type `id` will be minted + * for `to`. + * - when `to` is zero, `amount` of ``from``'s tokens of token type `id` + * will be burned. + * - `from` and `to` are never both zero. + * - `ids` and `amounts` have the same, non-zero length. + * + * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + */ + function _afterTokenTransfer( + address operator, + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) internal virtual {} + function _doSafeTransferAcceptanceCheck( address operator, address from, @@ -414,7 +460,7 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { } catch Error(string memory reason) { revert(reason); } catch { - revert("ERC1155: transfer to non ERC1155Receiver implementer"); + revert("ERC1155: transfer to non-ERC1155Receiver implementer"); } } } @@ -437,7 +483,7 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { } catch Error(string memory reason) { revert(reason); } catch { - revert("ERC1155: transfer to non ERC1155Receiver implementer"); + revert("ERC1155: transfer to non-ERC1155Receiver implementer"); } } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol b/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol index 39abed8..3446e60 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/IERC1155.sol) pragma solidity ^0.8.0; @@ -59,10 +60,10 @@ interface IERC1155 is IERC165 { * * - `accounts` and `ids` must have the same length. */ - function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) - external - view - returns (uint256[] memory); + function balanceOfBatch( + address[] calldata accounts, + uint256[] calldata ids + ) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, @@ -90,18 +91,12 @@ interface IERC1155 is IERC165 { * Requirements: * * - `to` cannot be the zero address. - * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. + * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `amount`. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ - function safeTransferFrom( - address from, - address to, - uint256 id, - uint256 amount, - bytes calldata data - ) external; + function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. diff --git a/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol b/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol index fe2a059..0dd271d 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol) pragma solidity ^0.8.0; @@ -9,18 +10,20 @@ import "../../utils/introspection/IERC165.sol"; */ interface IERC1155Receiver is IERC165 { /** - @dev Handles the receipt of a single ERC1155 token type. This function is - called at the end of a `safeTransferFrom` after the balance has been updated. - To accept the transfer, this must return - `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` - (i.e. 0xf23a6e61, or its own function selector). - @param operator The address which initiated the transfer (i.e. msg.sender) - @param from The address which previously owned the token - @param id The ID of the token being transferred - @param value The amount of tokens being transferred - @param data Additional data with no specified format - @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed - */ + * @dev Handles the receipt of a single ERC1155 token type. This function is + * called at the end of a `safeTransferFrom` after the balance has been updated. + * + * NOTE: To accept the transfer, this must return + * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` + * (i.e. 0xf23a6e61, or its own function selector). + * + * @param operator The address which initiated the transfer (i.e. msg.sender) + * @param from The address which previously owned the token + * @param id The ID of the token being transferred + * @param value The amount of tokens being transferred + * @param data Additional data with no specified format + * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed + */ function onERC1155Received( address operator, address from, @@ -30,18 +33,21 @@ interface IERC1155Receiver is IERC165 { ) external returns (bytes4); /** - @dev Handles the receipt of a multiple ERC1155 token types. This function - is called at the end of a `safeBatchTransferFrom` after the balances have - been updated. To accept the transfer(s), this must return - `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` - (i.e. 0xbc197c81, or its own function selector). - @param operator The address which initiated the batch transfer (i.e. msg.sender) - @param from The address which previously owned the token - @param ids An array containing ids of each token being transferred (order and length must match values array) - @param values An array containing amounts of each token being transferred (order and length must match ids array) - @param data Additional data with no specified format - @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed - */ + * @dev Handles the receipt of a multiple ERC1155 token types. This function + * is called at the end of a `safeBatchTransferFrom` after the balances have + * been updated. + * + * NOTE: To accept the transfer(s), this must return + * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` + * (i.e. 0xbc197c81, or its own function selector). + * + * @param operator The address which initiated the batch transfer (i.e. msg.sender) + * @param from The address which previously owned the token + * @param ids An array containing ids of each token being transferred (order and length must match values array) + * @param values An array containing amounts of each token being transferred (order and length must match ids array) + * @param data Additional data with no specified format + * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed + */ function onERC1155BatchReceived( address operator, address from, diff --git a/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol b/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol index f69d66e..9ee3719 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/extensions/ERC1155Burnable.sol) pragma solidity ^0.8.0; @@ -11,27 +12,19 @@ import "../ERC1155.sol"; * _Available since v3.1._ */ abstract contract ERC1155Burnable is ERC1155 { - function burn( - address account, - uint256 id, - uint256 value - ) public virtual { + function burn(address account, uint256 id, uint256 value) public virtual { require( account == _msgSender() || isApprovedForAll(account, _msgSender()), - "ERC1155: caller is not owner nor approved" + "ERC1155: caller is not token owner or approved" ); _burn(account, id, value); } - function burnBatch( - address account, - uint256[] memory ids, - uint256[] memory values - ) public virtual { + function burnBatch(address account, uint256[] memory ids, uint256[] memory values) public virtual { require( account == _msgSender() || isApprovedForAll(account, _msgSender()), - "ERC1155: caller is not owner nor approved" + "ERC1155: caller is not token owner or approved" ); _burnBatch(account, ids, values); diff --git a/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol b/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol index 5612351..07bb390 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.8.2) (token/ERC1155/extensions/ERC1155Pausable.sol) pragma solidity ^0.8.0; @@ -12,6 +13,12 @@ import "../../../security/Pausable.sol"; * period, or having an emergency switch for freezing all token transfers in the * event of a large bug. * + * IMPORTANT: This contract does not include public pause and unpause functions. In + * addition to inheriting this contract, you must define both functions, invoking the + * {Pausable-_pause} and {Pausable-_unpause} internal functions, with appropriate + * access control, e.g. using {AccessControl} or {Ownable}. Not doing so will + * make the contract unpausable. + * * _Available since v3.1._ */ abstract contract ERC1155Pausable is ERC1155, Pausable { diff --git a/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol b/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol index 26a7661..ec24389 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC1155/extensions/ERC1155Supply.sol) pragma solidity ^0.8.0; @@ -23,7 +24,7 @@ abstract contract ERC1155Supply is ERC1155 { } /** - * @dev Indicates weither any token exist with a given id, or not. + * @dev Indicates whether any token exist with a given id, or not. */ function exists(uint256 id) public view virtual returns (bool) { return ERC1155Supply.totalSupply(id) > 0; @@ -50,7 +51,13 @@ abstract contract ERC1155Supply is ERC1155 { if (to == address(0)) { for (uint256 i = 0; i < ids.length; ++i) { - _totalSupply[ids[i]] -= amounts[i]; + uint256 id = ids[i]; + uint256 amount = amounts[i]; + uint256 supply = _totalSupply[id]; + require(supply >= amount, "ERC1155: burn amount exceeds totalSupply"); + unchecked { + _totalSupply[id] = supply - amount; + } } } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol b/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol index df55d97..520a297 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/IERC1155MetadataURI.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol b/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol index 9238e6a..2f68dca 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/presets/ERC1155PresetMinterPauser.sol) pragma solidity ^0.8.0; @@ -21,6 +22,8 @@ import "../../../utils/Context.sol"; * The account that deploys the contract will be granted the minter and pauser * roles, as well as the default admin role, which will let it grant both minter * and pauser roles to other accounts. + * + * _Deprecated in favor of https://wizard.openzeppelin.com/[Contracts Wizard]._ */ contract ERC1155PresetMinterPauser is Context, AccessControlEnumerable, ERC1155Burnable, ERC1155Pausable { bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); @@ -46,12 +49,7 @@ contract ERC1155PresetMinterPauser is Context, AccessControlEnumerable, ERC1155B * * - the caller must have the `MINTER_ROLE`. */ - function mint( - address to, - uint256 id, - uint256 amount, - bytes memory data - ) public virtual { + function mint(address to, uint256 id, uint256 amount, bytes memory data) public virtual { require(hasRole(MINTER_ROLE, _msgSender()), "ERC1155PresetMinterPauser: must have minter role to mint"); _mint(to, id, amount, data); @@ -60,12 +58,7 @@ contract ERC1155PresetMinterPauser is Context, AccessControlEnumerable, ERC1155B /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] variant of {mint}. */ - function mintBatch( - address to, - uint256[] memory ids, - uint256[] memory amounts, - bytes memory data - ) public virtual { + function mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) public virtual { require(hasRole(MINTER_ROLE, _msgSender()), "ERC1155PresetMinterPauser: must have minter role to mint"); _mintBatch(to, ids, amounts, data); @@ -102,13 +95,9 @@ contract ERC1155PresetMinterPauser is Context, AccessControlEnumerable, ERC1155B /** * @dev See {IERC165-supportsInterface}. */ - function supportsInterface(bytes4 interfaceId) - public - view - virtual - override(AccessControlEnumerable, ERC1155) - returns (bool) - { + function supportsInterface( + bytes4 interfaceId + ) public view virtual override(AccessControlEnumerable, ERC1155) returns (bool) { return super.supportsInterface(interfaceId); } diff --git a/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol b/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol index ccd9e37..7249de8 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol @@ -1,10 +1,16 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/utils/ERC1155Holder.sol) pragma solidity ^0.8.0; import "./ERC1155Receiver.sol"; /** + * Simple implementation of `ERC1155Receiver` that will allow a contract to hold ERC1155 tokens. + * + * IMPORTANT: When inheriting this contract, you must include a way to use the received tokens, otherwise they will be + * stuck. + * * @dev _Available since v3.1._ */ contract ERC1155Holder is ERC1155Receiver { diff --git a/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol b/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol index 22b9e75..2e6804a 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (token/ERC1155/utils/ERC1155Receiver.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol b/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol index 46122eb..91b7f98 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; @@ -14,9 +15,12 @@ import "../../utils/Context.sol"; * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide - * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How + * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * + * The default value of {decimals} is 18. To change this, you should override + * this function so it returns a different value. + * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 @@ -44,9 +48,6 @@ contract ERC20 is Context, IERC20, IERC20Metadata { /** * @dev Sets the values for {name} and {symbol}. * - * The default value of {decimals} is 18. To select a different value for - * {decimals} you should overload it. - * * All two of these values are immutable: they can only be set once during * construction. */ @@ -76,8 +77,8 @@ contract ERC20 is Context, IERC20, IERC20Metadata { * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between - * Ether and Wei. This is the value {ERC20} uses, unless this function is - * overridden; + * Ether and Wei. This is the default value returned by this function, unless + * it's overridden. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including @@ -106,11 +107,12 @@ contract ERC20 is Context, IERC20, IERC20Metadata { * * Requirements: * - * - `recipient` cannot be the zero address. + * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ - function transfer(address recipient, uint256 amount) public virtual override returns (bool) { - _transfer(_msgSender(), recipient, amount); + function transfer(address to, uint256 amount) public virtual override returns (bool) { + address owner = _msgSender(); + _transfer(owner, to, amount); return true; } @@ -124,12 +126,16 @@ contract ERC20 is Context, IERC20, IERC20Metadata { /** * @dev See {IERC20-approve}. * + * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on + * `transferFrom`. This is semantically equivalent to an infinite approval. + * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { - _approve(_msgSender(), spender, amount); + address owner = _msgSender(); + _approve(owner, spender, amount); return true; } @@ -139,26 +145,20 @@ contract ERC20 is Context, IERC20, IERC20Metadata { * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * + * NOTE: Does not update the allowance if the current allowance + * is the maximum `uint256`. + * * Requirements: * - * - `sender` and `recipient` cannot be the zero address. - * - `sender` must have a balance of at least `amount`. - * - the caller must have allowance for ``sender``'s tokens of at least + * - `from` and `to` cannot be the zero address. + * - `from` must have a balance of at least `amount`. + * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ - function transferFrom( - address sender, - address recipient, - uint256 amount - ) public virtual override returns (bool) { - _transfer(sender, recipient, amount); - - uint256 currentAllowance = _allowances[sender][_msgSender()]; - require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); - unchecked { - _approve(sender, _msgSender(), currentAllowance - amount); - } - + function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { + address spender = _msgSender(); + _spendAllowance(from, spender, amount); + _transfer(from, to, amount); return true; } @@ -175,7 +175,8 @@ contract ERC20 is Context, IERC20, IERC20Metadata { * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { - _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); + address owner = _msgSender(); + _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } @@ -194,17 +195,18 @@ contract ERC20 is Context, IERC20, IERC20Metadata { * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { - uint256 currentAllowance = _allowances[_msgSender()][spender]; + address owner = _msgSender(); + uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { - _approve(_msgSender(), spender, currentAllowance - subtractedValue); + _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** - * @dev Moves `amount` of tokens from `sender` to `recipient`. + * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. @@ -213,30 +215,28 @@ contract ERC20 is Context, IERC20, IERC20Metadata { * * Requirements: * - * - `sender` cannot be the zero address. - * - `recipient` cannot be the zero address. - * - `sender` must have a balance of at least `amount`. + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `from` must have a balance of at least `amount`. */ - function _transfer( - address sender, - address recipient, - uint256 amount - ) internal virtual { - require(sender != address(0), "ERC20: transfer from the zero address"); - require(recipient != address(0), "ERC20: transfer to the zero address"); - - _beforeTokenTransfer(sender, recipient, amount); - - uint256 senderBalance = _balances[sender]; - require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); + function _transfer(address from, address to, uint256 amount) internal virtual { + require(from != address(0), "ERC20: transfer from the zero address"); + require(to != address(0), "ERC20: transfer to the zero address"); + + _beforeTokenTransfer(from, to, amount); + + uint256 fromBalance = _balances[from]; + require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { - _balances[sender] = senderBalance - amount; + _balances[from] = fromBalance - amount; + // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by + // decrementing then incrementing. + _balances[to] += amount; } - _balances[recipient] += amount; - emit Transfer(sender, recipient, amount); + emit Transfer(from, to, amount); - _afterTokenTransfer(sender, recipient, amount); + _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing @@ -254,7 +254,10 @@ contract ERC20 is Context, IERC20, IERC20Metadata { _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; - _balances[account] += amount; + unchecked { + // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. + _balances[account] += amount; + } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); @@ -280,8 +283,9 @@ contract ERC20 is Context, IERC20, IERC20Metadata { require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; + // Overflow not possible: amount <= accountBalance <= totalSupply. + _totalSupply -= amount; } - _totalSupply -= amount; emit Transfer(account, address(0), amount); @@ -301,11 +305,7 @@ contract ERC20 is Context, IERC20, IERC20Metadata { * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ - function _approve( - address owner, - address spender, - uint256 amount - ) internal virtual { + function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); @@ -313,6 +313,24 @@ contract ERC20 is Context, IERC20, IERC20Metadata { emit Approval(owner, spender, amount); } + /** + * @dev Updates `owner` s allowance for `spender` based on spent `amount`. + * + * Does not update the allowance amount in case of infinite allowance. + * Revert if not enough allowance is available. + * + * Might emit an {Approval} event. + */ + function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { + uint256 currentAllowance = allowance(owner, spender); + if (currentAllowance != type(uint256).max) { + require(currentAllowance >= amount, "ERC20: insufficient allowance"); + unchecked { + _approve(owner, spender, currentAllowance - amount); + } + } + } + /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. @@ -327,11 +345,7 @@ contract ERC20 is Context, IERC20, IERC20Metadata { * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ - function _beforeTokenTransfer( - address from, - address to, - uint256 amount - ) internal virtual {} + function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes @@ -347,9 +361,5 @@ contract ERC20 is Context, IERC20, IERC20Metadata { * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ - function _afterTokenTransfer( - address from, - address to, - uint256 amount - ) internal virtual {} + function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol b/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol index 08a04ad..6d5b4e9 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; @@ -6,6 +7,20 @@ pragma solidity ^0.8.0; * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { + /** + * @dev Emitted when `value` tokens are moved from one account (`from`) to + * another (`to`). + * + * Note that `value` may be zero. + */ + event Transfer(address indexed from, address indexed to, uint256 value); + + /** + * @dev Emitted when the allowance of a `spender` for an `owner` is set by + * a call to {approve}. `value` is the new allowance. + */ + event Approval(address indexed owner, address indexed spender, uint256 value); + /** * @dev Returns the amount of tokens in existence. */ @@ -17,13 +32,13 @@ interface IERC20 { function balanceOf(address account) external view returns (uint256); /** - * @dev Moves `amount` tokens from the caller's account to `recipient`. + * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ - function transfer(address recipient, uint256 amount) external returns (bool); + function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be @@ -51,7 +66,7 @@ interface IERC20 { function approve(address spender, uint256 amount) external returns (bool); /** - * @dev Moves `amount` tokens from `sender` to `recipient` using the + * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * @@ -59,23 +74,5 @@ interface IERC20 { * * Emits a {Transfer} event. */ - function transferFrom( - address sender, - address recipient, - uint256 amount - ) external returns (bool); - - /** - * @dev Emitted when `value` tokens are moved from one account (`from`) to - * another (`to`). - * - * Note that `value` may be zero. - */ - event Transfer(address indexed from, address indexed to, uint256 value); - - /** - * @dev Emitted when the allowance of a `spender` for an `owner` is set by - * a call to {approve}. `value` is the new allowance. - */ - event Approval(address indexed owner, address indexed spender, uint256 value); + function transferFrom(address from, address to, uint256 amount) external returns (bool); } diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol index bd48ed3..1cd08ee 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol) pragma solidity ^0.8.0; @@ -32,11 +33,7 @@ abstract contract ERC20Burnable is Context, ERC20 { * `amount`. */ function burnFrom(address account, uint256 amount) public virtual { - uint256 currentAllowance = allowance(account, _msgSender()); - require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance"); - unchecked { - _approve(account, _msgSender(), currentAllowance - amount); - } + _spendAllowance(account, _msgSender(), amount); _burn(account, amount); } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol index c8d8b7f..16f830d 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/ERC20Capped.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol index e67a1f3..063fe99 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol @@ -1,8 +1,10 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/extensions/ERC20FlashMint.sol) pragma solidity ^0.8.0; -import "../../../interfaces/IERC3156.sol"; +import "../../../interfaces/IERC3156FlashBorrower.sol"; +import "../../../interfaces/IERC3156FlashLender.sol"; import "../ERC20.sol"; /** @@ -20,12 +22,25 @@ abstract contract ERC20FlashMint is ERC20, IERC3156FlashLender { /** * @dev Returns the maximum amount of tokens available for loan. * @param token The address of the token that is requested. - * @return The amont of token that can be loaned. + * @return The amount of token that can be loaned. */ - function maxFlashLoan(address token) public view override returns (uint256) { + function maxFlashLoan(address token) public view virtual override returns (uint256) { return token == address(this) ? type(uint256).max - ERC20.totalSupply() : 0; } + /** + * @dev Returns the fee applied when doing flash loans. This function calls + * the {_flashFee} function which returns the fee applied when doing flash + * loans. + * @param token The token to be flash loaned. + * @param amount The amount of tokens to be loaned. + * @return The fees applied to the corresponding flash loan. + */ + function flashFee(address token, uint256 amount) public view virtual override returns (uint256) { + require(token == address(this), "ERC20FlashMint: wrong token"); + return _flashFee(token, amount); + } + /** * @dev Returns the fee applied when doing flash loans. By default this * implementation has 0 fees. This function can be overloaded to make @@ -34,13 +49,23 @@ abstract contract ERC20FlashMint is ERC20, IERC3156FlashLender { * @param amount The amount of tokens to be loaned. * @return The fees applied to the corresponding flash loan. */ - function flashFee(address token, uint256 amount) public view virtual override returns (uint256) { - require(token == address(this), "ERC20FlashMint: wrong token"); + function _flashFee(address token, uint256 amount) internal view virtual returns (uint256) { // silence warning about unused variable without the addition of bytecode. + token; amount; return 0; } + /** + * @dev Returns the receiver address of the flash fee. By default this + * implementation returns the address(0) which means the fee amount will be burnt. + * This function can be overloaded to change the fee receiver. + * @return The address for which the flash fee will be sent to. + */ + function _flashFeeReceiver() internal view virtual returns (address) { + return address(0); + } + /** * @dev Performs a flash loan. New tokens are minted and sent to the * `receiver`, who is required to implement the {IERC3156FlashBorrower} @@ -48,29 +73,37 @@ abstract contract ERC20FlashMint is ERC20, IERC3156FlashLender { * amount + fee tokens and have them approved back to the token contract itself so * they can be burned. * @param receiver The receiver of the flash loan. Should implement the - * {IERC3156FlashBorrower.onFlashLoan} interface. + * {IERC3156FlashBorrower-onFlashLoan} interface. * @param token The token to be flash loaned. Only `address(this)` is * supported. * @param amount The amount of tokens to be loaned. * @param data An arbitrary datafield that is passed to the receiver. - * @return `true` is the flash loan was successful. + * @return `true` if the flash loan was successful. */ + // This function can reenter, but it doesn't pose a risk because it always preserves the property that the amount + // minted at the beginning is always recovered and burned at the end, or else the entire function will revert. + // slither-disable-next-line reentrancy-no-eth function flashLoan( IERC3156FlashBorrower receiver, address token, uint256 amount, bytes calldata data ) public virtual override returns (bool) { + require(amount <= maxFlashLoan(token), "ERC20FlashMint: amount exceeds maxFlashLoan"); uint256 fee = flashFee(token, amount); _mint(address(receiver), amount); require( receiver.onFlashLoan(msg.sender, token, amount, fee, data) == _RETURN_VALUE, "ERC20FlashMint: invalid return value" ); - uint256 currentAllowance = allowance(address(receiver), address(this)); - require(currentAllowance >= amount + fee, "ERC20FlashMint: allowance does not allow refund"); - _approve(address(receiver), address(this), currentAllowance - amount - fee); - _burn(address(receiver), amount + fee); + address flashFeeReceiver = _flashFeeReceiver(); + _spendAllowance(address(receiver), address(this), amount + fee); + if (fee == 0 || flashFeeReceiver == address(0)) { + _burn(address(receiver), amount + fee); + } else { + _burn(address(receiver), amount); + _transfer(address(receiver), flashFeeReceiver, fee); + } return true; } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol index cba16ed..3b2b632 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Pausable.sol) pragma solidity ^0.8.0; @@ -11,6 +12,12 @@ import "../../../security/Pausable.sol"; * Useful for scenarios such as preventing trades until the end of an evaluation * period, or having an emergency switch for freezing all token transfers in the * event of a large bug. + * + * IMPORTANT: This contract does not include public pause and unpause functions. In + * addition to inheriting this contract, you must define both functions, invoking the + * {Pausable-_pause} and {Pausable-_unpause} internal functions, with appropriate + * access control, e.g. using {AccessControl} or {Ownable}. Not doing so will + * make the contract unpausable. */ abstract contract ERC20Pausable is ERC20, Pausable { /** @@ -20,11 +27,7 @@ abstract contract ERC20Pausable is ERC20, Pausable { * * - the contract must not be paused. */ - function _beforeTokenTransfer( - address from, - address to, - uint256 amount - ) internal virtual override { + function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override { super._beforeTokenTransfer(from, to, amount); require(!paused(), "ERC20Pausable: token transfer while paused"); diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol index 9754631..504e7a9 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Snapshot.sol) pragma solidity ^0.8.0; @@ -21,7 +22,7 @@ import "../../../utils/Counters.sol"; * and the account address. * * NOTE: Snapshot policy can be customized by overriding the {_getCurrentSnapshotId} method. For example, having it - * return `block.number` will trigger the creation of snapshot at the begining of each new block. When overridding this + * return `block.number` will trigger the creation of snapshot at the beginning of each new block. When overriding this * function, be careful about the monotonicity of its result. Non-monotonic snapshot ids will break the contract. * * Implementing snapshots for every block using this method will incur significant gas costs. For a gas-efficient @@ -40,7 +41,7 @@ import "../../../utils/Counters.sol"; abstract contract ERC20Snapshot is ERC20 { // Inspired by Jordi Baylina's MiniMeToken to record historical balances: - // https://github.com/Giveth/minimd/blob/ea04d950eea153a04c51fa510b068b9dded390cb/contracts/MiniMeToken.sol + // https://github.com/Giveth/minime/blob/ea04d950eea153a04c51fa510b068b9dded390cb/contracts/MiniMeToken.sol using Arrays for uint256[]; using Counters for Counters.Counter; @@ -119,11 +120,7 @@ abstract contract ERC20Snapshot is ERC20 { // Update balance and/or total supply snapshots before the values are modified. This is implemented // in the _beforeTokenTransfer hook, which is executed for _mint, _burn, and _transfer operations. - function _beforeTokenTransfer( - address from, - address to, - uint256 amount - ) internal virtual override { + function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override { super._beforeTokenTransfer(from, to, amount); if (from == address(0)) { diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol index 4df8311..8b31fda 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol @@ -1,8 +1,10 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Votes.sol) pragma solidity ^0.8.0; -import "./draft-ERC20Permit.sol"; +import "./ERC20Permit.sol"; +import "../../../interfaces/IERC5805.sol"; import "../../../utils/math/Math.sol"; import "../../../utils/math/SafeCast.sol"; import "../../../utils/cryptography/ECDSA.sol"; @@ -19,12 +21,10 @@ import "../../../utils/cryptography/ECDSA.sol"; * * By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it * requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked. - * Enabling self-delegation can easily be done by overriding the {delegates} function. Keep in mind however that this - * will significantly increase the base gas cost of transfers. * * _Available since v4.2._ */ -abstract contract ERC20Votes is ERC20Permit { +abstract contract ERC20Votes is ERC20Permit, IERC5805 { struct Checkpoint { uint32 fromBlock; uint224 votes; @@ -38,14 +38,21 @@ abstract contract ERC20Votes is ERC20Permit { Checkpoint[] private _totalSupplyCheckpoints; /** - * @dev Emitted when an account changes their delegate. + * @dev Clock used for flagging checkpoints. Can be overridden to implement timestamp based checkpoints (and voting). */ - event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); + function clock() public view virtual override returns (uint48) { + return SafeCast.toUint48(block.number); + } /** - * @dev Emitted when a token transfer or delegate change results in changes to an account's voting power. + * @dev Description of the clock */ - event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance); + // solhint-disable-next-line func-name-mixedcase + function CLOCK_MODE() public view virtual override returns (string memory) { + // Check that the clock was not modified + require(clock() == block.number, "ERC20Votes: broken clock mode"); + return "mode=blocknumber&from=default"; + } /** * @dev Get the `pos`-th checkpoint for `account`. @@ -64,77 +71,94 @@ abstract contract ERC20Votes is ERC20Permit { /** * @dev Get the address `account` is currently delegating to. */ - function delegates(address account) public view virtual returns (address) { + function delegates(address account) public view virtual override returns (address) { return _delegates[account]; } /** * @dev Gets the current votes balance for `account` */ - function getVotes(address account) public view returns (uint256) { + function getVotes(address account) public view virtual override returns (uint256) { uint256 pos = _checkpoints[account].length; - return pos == 0 ? 0 : _checkpoints[account][pos - 1].votes; + unchecked { + return pos == 0 ? 0 : _checkpoints[account][pos - 1].votes; + } } /** - * @dev Retrieve the number of votes for `account` at the end of `blockNumber`. + * @dev Retrieve the number of votes for `account` at the end of `timepoint`. * * Requirements: * - * - `blockNumber` must have been already mined + * - `timepoint` must be in the past */ - function getPastVotes(address account, uint256 blockNumber) public view returns (uint256) { - require(blockNumber < block.number, "ERC20Votes: block not yet mined"); - return _checkpointsLookup(_checkpoints[account], blockNumber); + function getPastVotes(address account, uint256 timepoint) public view virtual override returns (uint256) { + require(timepoint < clock(), "ERC20Votes: future lookup"); + return _checkpointsLookup(_checkpoints[account], timepoint); } /** - * @dev Retrieve the `totalSupply` at the end of `blockNumber`. Note, this value is the sum of all balances. - * It is but NOT the sum of all the delegated votes! + * @dev Retrieve the `totalSupply` at the end of `timepoint`. Note, this value is the sum of all balances. + * It is NOT the sum of all the delegated votes! * * Requirements: * - * - `blockNumber` must have been already mined + * - `timepoint` must be in the past */ - function getPastTotalSupply(uint256 blockNumber) public view returns (uint256) { - require(blockNumber < block.number, "ERC20Votes: block not yet mined"); - return _checkpointsLookup(_totalSupplyCheckpoints, blockNumber); + function getPastTotalSupply(uint256 timepoint) public view virtual override returns (uint256) { + require(timepoint < clock(), "ERC20Votes: future lookup"); + return _checkpointsLookup(_totalSupplyCheckpoints, timepoint); } /** * @dev Lookup a value in a list of (sorted) checkpoints. */ - function _checkpointsLookup(Checkpoint[] storage ckpts, uint256 blockNumber) private view returns (uint256) { - // We run a binary search to look for the earliest checkpoint taken after `blockNumber`. + function _checkpointsLookup(Checkpoint[] storage ckpts, uint256 timepoint) private view returns (uint256) { + // We run a binary search to look for the last (most recent) checkpoint taken before (or at) `timepoint`. // + // Initially we check if the block is recent to narrow the search range. // During the loop, the index of the wanted checkpoint remains in the range [low-1, high). // With each iteration, either `low` or `high` is moved towards the middle of the range to maintain the invariant. - // - If the middle checkpoint is after `blockNumber`, we look in [low, mid) - // - If the middle checkpoint is before or equal to `blockNumber`, we look in [mid+1, high) + // - If the middle checkpoint is after `timepoint`, we look in [low, mid) + // - If the middle checkpoint is before or equal to `timepoint`, we look in [mid+1, high) // Once we reach a single value (when low == high), we've found the right checkpoint at the index high-1, if not // out of bounds (in which case we're looking too far in the past and the result is 0). - // Note that if the latest checkpoint available is exactly for `blockNumber`, we end up with an index that is - // past the end of the array, so we technically don't find a checkpoint after `blockNumber`, but it works out + // Note that if the latest checkpoint available is exactly for `timepoint`, we end up with an index that is + // past the end of the array, so we technically don't find a checkpoint after `timepoint`, but it works out // the same. - uint256 high = ckpts.length; + uint256 length = ckpts.length; + uint256 low = 0; + uint256 high = length; + + if (length > 5) { + uint256 mid = length - Math.sqrt(length); + if (_unsafeAccess(ckpts, mid).fromBlock > timepoint) { + high = mid; + } else { + low = mid + 1; + } + } + while (low < high) { uint256 mid = Math.average(low, high); - if (ckpts[mid].fromBlock > blockNumber) { + if (_unsafeAccess(ckpts, mid).fromBlock > timepoint) { high = mid; } else { low = mid + 1; } } - return high == 0 ? 0 : ckpts[high - 1].votes; + unchecked { + return high == 0 ? 0 : _unsafeAccess(ckpts, high - 1).votes; + } } /** * @dev Delegate votes from the sender to `delegatee`. */ - function delegate(address delegatee) public virtual { - return _delegate(_msgSender(), delegatee); + function delegate(address delegatee) public virtual override { + _delegate(_msgSender(), delegatee); } /** @@ -147,7 +171,7 @@ abstract contract ERC20Votes is ERC20Permit { uint8 v, bytes32 r, bytes32 s - ) public virtual { + ) public virtual override { require(block.timestamp <= expiry, "ERC20Votes: signature expired"); address signer = ECDSA.recover( _hashTypedDataV4(keccak256(abi.encode(_DELEGATION_TYPEHASH, delegatee, nonce, expiry))), @@ -156,7 +180,7 @@ abstract contract ERC20Votes is ERC20Permit { s ); require(nonce == _useNonce(signer), "ERC20Votes: invalid nonce"); - return _delegate(signer, delegatee); + _delegate(signer, delegatee); } /** @@ -188,13 +212,9 @@ abstract contract ERC20Votes is ERC20Permit { /** * @dev Move voting power when tokens are transferred. * - * Emits a {DelegateVotesChanged} event. + * Emits a {IVotes-DelegateVotesChanged} event. */ - function _afterTokenTransfer( - address from, - address to, - uint256 amount - ) internal virtual override { + function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual override { super._afterTokenTransfer(from, to, amount); _moveVotingPower(delegates(from), delegates(to), amount); @@ -203,7 +223,7 @@ abstract contract ERC20Votes is ERC20Permit { /** * @dev Change delegation for `delegator` to `delegatee`. * - * Emits events {DelegateChanged} and {DelegateVotesChanged}. + * Emits events {IVotes-DelegateChanged} and {IVotes-DelegateVotesChanged}. */ function _delegate(address delegator, address delegatee) internal virtual { address currentDelegate = delegates(delegator); @@ -215,11 +235,7 @@ abstract contract ERC20Votes is ERC20Permit { _moveVotingPower(currentDelegate, delegatee, delegatorBalance); } - function _moveVotingPower( - address src, - address dst, - uint256 amount - ) private { + function _moveVotingPower(address src, address dst, uint256 amount) private { if (src != dst && amount > 0) { if (src != address(0)) { (uint256 oldWeight, uint256 newWeight) = _writeCheckpoint(_checkpoints[src], _subtract, amount); @@ -239,13 +255,18 @@ abstract contract ERC20Votes is ERC20Permit { uint256 delta ) private returns (uint256 oldWeight, uint256 newWeight) { uint256 pos = ckpts.length; - oldWeight = pos == 0 ? 0 : ckpts[pos - 1].votes; - newWeight = op(oldWeight, delta); - if (pos > 0 && ckpts[pos - 1].fromBlock == block.number) { - ckpts[pos - 1].votes = SafeCast.toUint224(newWeight); - } else { - ckpts.push(Checkpoint({fromBlock: SafeCast.toUint32(block.number), votes: SafeCast.toUint224(newWeight)})); + unchecked { + Checkpoint memory oldCkpt = pos == 0 ? Checkpoint(0, 0) : _unsafeAccess(ckpts, pos - 1); + + oldWeight = oldCkpt.votes; + newWeight = op(oldWeight, delta); + + if (pos > 0 && oldCkpt.fromBlock == clock()) { + _unsafeAccess(ckpts, pos - 1).votes = SafeCast.toUint224(newWeight); + } else { + ckpts.push(Checkpoint({fromBlock: SafeCast.toUint32(clock()), votes: SafeCast.toUint224(newWeight)})); + } } } @@ -256,4 +277,14 @@ abstract contract ERC20Votes is ERC20Permit { function _subtract(uint256 a, uint256 b) private pure returns (uint256) { return a - b; } + + /** + * @dev Access an element of the array without performing bounds check. The position is assumed to be within bounds. + */ + function _unsafeAccess(Checkpoint[] storage ckpts, uint256 pos) private pure returns (Checkpoint storage result) { + assembly { + mstore(0, ckpts.slot) + result.slot := add(keccak256(0, 0x20), pos) + } + } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol index 9a4d833..0461310 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20VotesComp.sol) pragma solidity ^0.8.0; @@ -18,8 +19,6 @@ import "./ERC20Votes.sol"; * * By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it * requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked. - * Enabling self-delegation can easily be done by overriding the {delegates} function. Keep in mind however that this - * will significantly increase the base gas cost of transfers. * * _Available since v4.2._ */ @@ -27,14 +26,14 @@ abstract contract ERC20VotesComp is ERC20Votes { /** * @dev Comp version of the {getVotes} accessor, with `uint96` return type. */ - function getCurrentVotes(address account) external view returns (uint96) { + function getCurrentVotes(address account) external view virtual returns (uint96) { return SafeCast.toUint96(getVotes(account)); } /** * @dev Comp version of the {getPastVotes} accessor, with `uint96` return type. */ - function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) { + function getPriorVotes(address account, uint256 blockNumber) external view virtual returns (uint96) { return SafeCast.toUint96(getPastVotes(account, blockNumber)); } diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol index 64dd992..bc85a0b 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Wrapper.sol) pragma solidity ^0.8.0; @@ -15,17 +16,38 @@ import "../utils/SafeERC20.sol"; * _Available since v4.2._ */ abstract contract ERC20Wrapper is ERC20 { - IERC20 public immutable underlying; + IERC20 private immutable _underlying; constructor(IERC20 underlyingToken) { - underlying = underlyingToken; + require(underlyingToken != this, "ERC20Wrapper: cannot self wrap"); + _underlying = underlyingToken; + } + + /** + * @dev See {ERC20-decimals}. + */ + function decimals() public view virtual override returns (uint8) { + try IERC20Metadata(address(_underlying)).decimals() returns (uint8 value) { + return value; + } catch { + return super.decimals(); + } + } + + /** + * @dev Returns the address of the underlying ERC-20 token that is being wrapped. + */ + function underlying() public view returns (IERC20) { + return _underlying; } /** * @dev Allow a user to deposit underlying tokens and mint the corresponding number of wrapped tokens. */ function depositFor(address account, uint256 amount) public virtual returns (bool) { - SafeERC20.safeTransferFrom(underlying, _msgSender(), address(this), amount); + address sender = _msgSender(); + require(sender != address(this), "ERC20Wrapper: wrapper can't deposit"); + SafeERC20.safeTransferFrom(_underlying, sender, address(this), amount); _mint(account, amount); return true; } @@ -35,16 +57,16 @@ abstract contract ERC20Wrapper is ERC20 { */ function withdrawTo(address account, uint256 amount) public virtual returns (bool) { _burn(_msgSender(), amount); - SafeERC20.safeTransfer(underlying, account, amount); + SafeERC20.safeTransfer(_underlying, account, amount); return true; } /** - * @dev Mint wrapped token to cover any underlyingTokens that would have been transfered by mistake. Internal + * @dev Mint wrapped token to cover any underlyingTokens that would have been transferred by mistake. Internal * function that can be exposed with access control if desired. */ function _recover(address account) internal virtual returns (uint256) { - uint256 value = underlying.balanceOf(address(this)) - totalSupply(); + uint256 value = _underlying.balanceOf(address(this)) - totalSupply(); _mint(account, value); return value; } diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol index 4fb868a..83ba6ac 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol index 631435e..55b38b2 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol @@ -1,86 +1,8 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/draft-ERC20Permit.sol) pragma solidity ^0.8.0; -import "./draft-IERC20Permit.sol"; -import "../ERC20.sol"; -import "../../../utils/cryptography/draft-EIP712.sol"; -import "../../../utils/cryptography/ECDSA.sol"; -import "../../../utils/Counters.sol"; +// EIP-2612 is Final as of 2022-11-01. This file is deprecated. -/** - * @dev Implementation of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in - * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. - * - * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by - * presenting a message signed by the account. By not relying on `{IERC20-approve}`, the token holder account doesn't - * need to send a transaction, and thus is not required to hold Ether at all. - * - * _Available since v3.4._ - */ -abstract contract ERC20Permit is ERC20, IERC20Permit, EIP712 { - using Counters for Counters.Counter; - - mapping(address => Counters.Counter) private _nonces; - - // solhint-disable-next-line var-name-mixedcase - bytes32 private immutable _PERMIT_TYPEHASH = - keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); - - /** - * @dev Initializes the {EIP712} domain separator using the `name` parameter, and setting `version` to `"1"`. - * - * It's a good idea to use the same `name` that is defined as the ERC20 token name. - */ - constructor(string memory name) EIP712(name, "1") {} - - /** - * @dev See {IERC20Permit-permit}. - */ - function permit( - address owner, - address spender, - uint256 value, - uint256 deadline, - uint8 v, - bytes32 r, - bytes32 s - ) public virtual override { - require(block.timestamp <= deadline, "ERC20Permit: expired deadline"); - - bytes32 structHash = keccak256(abi.encode(_PERMIT_TYPEHASH, owner, spender, value, _useNonce(owner), deadline)); - - bytes32 hash = _hashTypedDataV4(structHash); - - address signer = ECDSA.recover(hash, v, r, s); - require(signer == owner, "ERC20Permit: invalid signature"); - - _approve(owner, spender, value); - } - - /** - * @dev See {IERC20Permit-nonces}. - */ - function nonces(address owner) public view virtual override returns (uint256) { - return _nonces[owner].current(); - } - - /** - * @dev See {IERC20Permit-DOMAIN_SEPARATOR}. - */ - // solhint-disable-next-line func-name-mixedcase - function DOMAIN_SEPARATOR() external view override returns (bytes32) { - return _domainSeparatorV4(); - } - - /** - * @dev "Consume a nonce": return the current value and increment. - * - * _Available since v4.1._ - */ - function _useNonce(address owner) internal virtual returns (uint256 current) { - Counters.Counter storage nonce = _nonces[owner]; - current = nonce.current(); - nonce.increment(); - } -} +import "./ERC20Permit.sol"; diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol index 33eb295..ff6ede3 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol @@ -1,59 +1,8 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/draft-IERC20Permit.sol) pragma solidity ^0.8.0; -/** - * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in - * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. - * - * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by - * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't - * need to send a transaction, and thus is not required to hold Ether at all. - */ -interface IERC20Permit { - /** - * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens, - * given ``owner``'s signed approval. - * - * IMPORTANT: The same issues {IERC20-approve} has related to transaction - * ordering also apply here. - * - * Emits an {Approval} event. - * - * Requirements: - * - * - `spender` cannot be the zero address. - * - `deadline` must be a timestamp in the future. - * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` - * over the EIP712-formatted function arguments. - * - the signature must use ``owner``'s current nonce (see {nonces}). - * - * For more information on the signature format, see the - * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP - * section]. - */ - function permit( - address owner, - address spender, - uint256 value, - uint256 deadline, - uint8 v, - bytes32 r, - bytes32 s - ) external; +// EIP-2612 is Final as of 2022-11-01. This file is deprecated. - /** - * @dev Returns the current nonce for `owner`. This value must be - * included whenever a signature is generated for {permit}. - * - * Every successful call to {permit} increases ``owner``'s nonce by one. This - * prevents a signature from being used multiple times. - */ - function nonces(address owner) external view returns (uint256); - - /** - * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}. - */ - // solhint-disable-next-line func-name-mixedcase - function DOMAIN_SEPARATOR() external view returns (bytes32); -} +import "./IERC20Permit.sol"; diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol b/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol index 4aa0ebf..d293999 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/presets/ERC20PresetFixedSupply.sol) pragma solidity ^0.8.0; import "../extensions/ERC20Burnable.sol"; @@ -14,6 +15,8 @@ import "../extensions/ERC20Burnable.sol"; * its documentation for details. * * _Available since v3.4._ + * + * _Deprecated in favor of https://wizard.openzeppelin.com/[Contracts Wizard]._ */ contract ERC20PresetFixedSupply is ERC20Burnable { /** @@ -21,12 +24,7 @@ contract ERC20PresetFixedSupply is ERC20Burnable { * * See {ERC20-constructor}. */ - constructor( - string memory name, - string memory symbol, - uint256 initialSupply, - address owner - ) ERC20(name, symbol) { + constructor(string memory name, string memory symbol, uint256 initialSupply, address owner) ERC20(name, symbol) { _mint(owner, initialSupply); } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol b/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol index 60c4762..e711a89 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/presets/ERC20PresetMinterPauser.sol) pragma solidity ^0.8.0; @@ -21,6 +22,8 @@ import "../../../utils/Context.sol"; * The account that deploys the contract will be granted the minter and pauser * roles, as well as the default admin role, which will let it grant both minter * and pauser roles to other accounts. + * + * _Deprecated in favor of https://wizard.openzeppelin.com/[Contracts Wizard]._ */ contract ERC20PresetMinterPauser is Context, AccessControlEnumerable, ERC20Burnable, ERC20Pausable { bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol b/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol index 954b270..47d1684 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol @@ -1,8 +1,10 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/utils/SafeERC20.sol) pragma solidity ^0.8.0; import "../IERC20.sol"; +import "../extensions/IERC20Permit.sol"; import "../../../utils/Address.sol"; /** @@ -17,20 +19,19 @@ import "../../../utils/Address.sol"; library SafeERC20 { using Address for address; - function safeTransfer( - IERC20 token, - address to, - uint256 value - ) internal { + /** + * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value, + * non-reverting calls are assumed to be successful. + */ + function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } - function safeTransferFrom( - IERC20 token, - address from, - address to, - uint256 value - ) internal { + /** + * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the + * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful. + */ + function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } @@ -41,11 +42,7 @@ library SafeERC20 { * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ - function safeApprove( - IERC20 token, - address spender, - uint256 value - ) internal { + function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' @@ -56,28 +53,61 @@ library SafeERC20 { _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } - function safeIncreaseAllowance( - IERC20 token, - address spender, - uint256 value - ) internal { - uint256 newAllowance = token.allowance(address(this), spender) + value; - _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); + /** + * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value, + * non-reverting calls are assumed to be successful. + */ + function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { + uint256 oldAllowance = token.allowance(address(this), spender); + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value)); } - function safeDecreaseAllowance( - IERC20 token, - address spender, - uint256 value - ) internal { + /** + * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value, + * non-reverting calls are assumed to be successful. + */ + function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); - uint256 newAllowance = oldAllowance - value; - _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value)); + } + } + + /** + * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value, + * non-reverting calls are assumed to be successful. Compatible with tokens that require the approval to be set to + * 0 before setting it to a non-zero value. + */ + function forceApprove(IERC20 token, address spender, uint256 value) internal { + bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value); + + if (!_callOptionalReturnBool(token, approvalCall)) { + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0)); + _callOptionalReturn(token, approvalCall); } } + /** + * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`. + * Revert on invalid signature. + */ + function safePermit( + IERC20Permit token, + address owner, + address spender, + uint256 value, + uint256 deadline, + uint8 v, + bytes32 r, + bytes32 s + ) internal { + uint256 nonceBefore = token.nonces(owner); + token.permit(owner, spender, value, deadline, v, r, s); + uint256 nonceAfter = token.nonces(owner); + require(nonceAfter == nonceBefore + 1, "SafeERC20: permit did not succeed"); + } + /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). @@ -86,13 +116,28 @@ library SafeERC20 { */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since - // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that + // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); - if (returndata.length > 0) { - // Return data is optional - require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); - } + require(returndata.length == 0 || abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); + } + + /** + * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement + * on the return value: the return value is optional (but if data is returned, it must not be false). + * @param token The token targeted by the call. + * @param data The call data (encoded using abi.encode or one of its variants). + * + * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead. + */ + function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) { + // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since + // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false + // and not revert is the subcall reverts. + + (bool success, bytes memory returndata) = address(token).call(data); + return + success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token)); } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol b/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol index 0ba42f1..cffdac5 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/utils/TokenTimelock.sol) pragma solidity ^0.8.0; @@ -23,11 +24,12 @@ contract TokenTimelock { // timestamp when token release is enabled uint256 private immutable _releaseTime; - constructor( - IERC20 token_, - address beneficiary_, - uint256 releaseTime_ - ) { + /** + * @dev Deploys a timelock instance that is able to hold the token specified, and will only release it to + * `beneficiary_` when {release} is invoked after `releaseTime_`. The release time is specified as a Unix timestamp + * (in seconds). + */ + constructor(IERC20 token_, address beneficiary_, uint256 releaseTime_) { require(releaseTime_ > block.timestamp, "TokenTimelock: release time is before current time"); _token = token_; _beneficiary = beneficiary_; @@ -35,28 +37,29 @@ contract TokenTimelock { } /** - * @return the token being held. + * @dev Returns the token being held. */ function token() public view virtual returns (IERC20) { return _token; } /** - * @return the beneficiary of the tokens. + * @dev Returns the beneficiary that will receive the tokens. */ function beneficiary() public view virtual returns (address) { return _beneficiary; } /** - * @return the time when the tokens are released. + * @dev Returns the time when the tokens are released in seconds since Unix epoch (i.e. Unix timestamp). */ function releaseTime() public view virtual returns (uint256) { return _releaseTime; } /** - * @notice Transfers tokens held by timelock to beneficiary. + * @dev Transfers tokens held by the timelock to the beneficiary. Will only succeed if invoked after the release + * time. */ function release() public virtual { require(block.timestamp >= releaseTime(), "TokenTimelock: current time is before release time"); diff --git a/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol b/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol index 0b37218..7942e6f 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/ERC721.sol) pragma solidity ^0.8.0; @@ -59,7 +60,7 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { * @dev See {IERC721-balanceOf}. */ function balanceOf(address owner) public view virtual override returns (uint256) { - require(owner != address(0), "ERC721: balance query for the zero address"); + require(owner != address(0), "ERC721: address zero is not a valid owner"); return _balances[owner]; } @@ -67,8 +68,8 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { * @dev See {IERC721-ownerOf}. */ function ownerOf(uint256 tokenId) public view virtual override returns (address) { - address owner = _owners[tokenId]; - require(owner != address(0), "ERC721: owner query for nonexistent token"); + address owner = _ownerOf(tokenId); + require(owner != address(0), "ERC721: invalid token ID"); return owner; } @@ -90,7 +91,7 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { * @dev See {IERC721Metadata-tokenURI}. */ function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { - require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); + _requireMinted(tokenId); string memory baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; @@ -99,7 +100,7 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { /** * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each * token will be the concatenation of the `baseURI` and the `tokenId`. Empty - * by default, can be overriden in child contracts. + * by default, can be overridden in child contracts. */ function _baseURI() internal view virtual returns (string memory) { return ""; @@ -114,7 +115,7 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), - "ERC721: approve caller is not owner nor approved for all" + "ERC721: approve caller is not token owner or approved for all" ); _approve(to, tokenId); @@ -124,7 +125,7 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { * @dev See {IERC721-getApproved}. */ function getApproved(uint256 tokenId) public view virtual override returns (address) { - require(_exists(tokenId), "ERC721: approved query for nonexistent token"); + _requireMinted(tokenId); return _tokenApprovals[tokenId]; } @@ -133,10 +134,7 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { * @dev See {IERC721-setApprovalForAll}. */ function setApprovalForAll(address operator, bool approved) public virtual override { - require(operator != _msgSender(), "ERC721: approve to caller"); - - _operatorApprovals[_msgSender()][operator] = approved; - emit ApprovalForAll(_msgSender(), operator, approved); + _setApprovalForAll(_msgSender(), operator, approved); } /** @@ -149,13 +147,9 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { /** * @dev See {IERC721-transferFrom}. */ - function transferFrom( - address from, - address to, - uint256 tokenId - ) public virtual override { + function transferFrom(address from, address to, uint256 tokenId) public virtual override { //solhint-disable-next-line max-line-length - require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); + require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: caller is not token owner or approved"); _transfer(from, to, tokenId); } @@ -163,32 +157,23 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { /** * @dev See {IERC721-safeTransferFrom}. */ - function safeTransferFrom( - address from, - address to, - uint256 tokenId - ) public virtual override { + function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override { safeTransferFrom(from, to, tokenId, ""); } /** * @dev See {IERC721-safeTransferFrom}. */ - function safeTransferFrom( - address from, - address to, - uint256 tokenId, - bytes memory _data - ) public virtual override { - require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); - _safeTransfer(from, to, tokenId, _data); + function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual override { + require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: caller is not token owner or approved"); + _safeTransfer(from, to, tokenId, data); } /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * - * `_data` is additional data, it has no specified format and it is sent in call to `to`. + * `data` is additional data, it has no specified format and it is sent in call to `to`. * * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g. * implement alternative mechanisms to perform token transfer, such as signature-based. @@ -202,14 +187,16 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { * * Emits a {Transfer} event. */ - function _safeTransfer( - address from, - address to, - uint256 tokenId, - bytes memory _data - ) internal virtual { + function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual { _transfer(from, to, tokenId); - require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); + require(_checkOnERC721Received(from, to, tokenId, data), "ERC721: transfer to non ERC721Receiver implementer"); + } + + /** + * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist + */ + function _ownerOf(uint256 tokenId) internal view virtual returns (address) { + return _owners[tokenId]; } /** @@ -221,7 +208,7 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { * and stop existing when they are burned (`_burn`). */ function _exists(uint256 tokenId) internal view virtual returns (bool) { - return _owners[tokenId] != address(0); + return _ownerOf(tokenId) != address(0); } /** @@ -232,9 +219,8 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { * - `tokenId` must exist. */ function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { - require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); - return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); + return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender); } /** @@ -255,14 +241,10 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is * forwarded in {IERC721Receiver-onERC721Received} to contract recipients. */ - function _safeMint( - address to, - uint256 tokenId, - bytes memory _data - ) internal virtual { + function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual { _mint(to, tokenId); require( - _checkOnERC721Received(address(0), to, tokenId, _data), + _checkOnERC721Received(address(0), to, tokenId, data), "ERC721: transfer to non ERC721Receiver implementer" ); } @@ -283,17 +265,30 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); - _beforeTokenTransfer(address(0), to, tokenId); + _beforeTokenTransfer(address(0), to, tokenId, 1); + + // Check that tokenId was not minted by `_beforeTokenTransfer` hook + require(!_exists(tokenId), "ERC721: token already minted"); + + unchecked { + // Will not overflow unless all 2**256 token ids are minted to the same owner. + // Given that tokens are minted one by one, it is impossible in practice that + // this ever happens. Might change if we allow batch minting. + // The ERC fails to describe this case. + _balances[to] += 1; + } - _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); + + _afterTokenTransfer(address(0), to, tokenId, 1); } /** * @dev Destroys `tokenId`. * The approval is cleared when the token is burned. + * This is an internal function that does not check if the sender is authorized to operate on the token. * * Requirements: * @@ -304,15 +299,24 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); - _beforeTokenTransfer(owner, address(0), tokenId); + _beforeTokenTransfer(owner, address(0), tokenId, 1); + + // Update ownership in case tokenId was transferred by `_beforeTokenTransfer` hook + owner = ERC721.ownerOf(tokenId); // Clear approvals - _approve(address(0), tokenId); + delete _tokenApprovals[tokenId]; - _balances[owner] -= 1; + unchecked { + // Cannot overflow, as that would require more tokens to be burned/transferred + // out than the owner initially received through minting and transferring in. + _balances[owner] -= 1; + } delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); + + _afterTokenTransfer(owner, address(0), tokenId, 1); } /** @@ -326,36 +330,62 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { * * Emits a {Transfer} event. */ - function _transfer( - address from, - address to, - uint256 tokenId - ) internal virtual { - require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); + function _transfer(address from, address to, uint256 tokenId) internal virtual { + require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer from incorrect owner"); require(to != address(0), "ERC721: transfer to the zero address"); - _beforeTokenTransfer(from, to, tokenId); + _beforeTokenTransfer(from, to, tokenId, 1); - // Clear approvals from the previous owner - _approve(address(0), tokenId); + // Check that tokenId was not transferred by `_beforeTokenTransfer` hook + require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer from incorrect owner"); - _balances[from] -= 1; - _balances[to] += 1; + // Clear approvals from the previous owner + delete _tokenApprovals[tokenId]; + + unchecked { + // `_balances[from]` cannot overflow for the same reason as described in `_burn`: + // `from`'s balance is the number of token held, which is at least one before the current + // transfer. + // `_balances[to]` could overflow in the conditions described in `_mint`. That would require + // all 2**256 token ids to be minted, which in practice is impossible. + _balances[from] -= 1; + _balances[to] += 1; + } _owners[tokenId] = to; emit Transfer(from, to, tokenId); + + _afterTokenTransfer(from, to, tokenId, 1); } /** * @dev Approve `to` to operate on `tokenId` * - * Emits a {Approval} event. + * Emits an {Approval} event. */ function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } + /** + * @dev Approve `operator` to operate on all of `owner` tokens + * + * Emits an {ApprovalForAll} event. + */ + function _setApprovalForAll(address owner, address operator, bool approved) internal virtual { + require(owner != operator, "ERC721: approve to caller"); + _operatorApprovals[owner][operator] = approved; + emit ApprovalForAll(owner, operator, approved); + } + + /** + * @dev Reverts if the `tokenId` has not been minted yet. + */ + function _requireMinted(uint256 tokenId) internal view virtual { + require(_exists(tokenId), "ERC721: invalid token ID"); + } + /** * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address. * The call is not executed if the target address is not a contract. @@ -363,22 +393,23 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { * @param from address representing the previous owner of the given token ID * @param to target address that will receive the tokens * @param tokenId uint256 ID of the token to be transferred - * @param _data bytes optional data to send along with the call + * @param data bytes optional data to send along with the call * @return bool whether the call correctly returned the expected magic value */ function _checkOnERC721Received( address from, address to, uint256 tokenId, - bytes memory _data + bytes memory data ) private returns (bool) { if (to.isContract()) { - try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { + try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) { return retval == IERC721Receiver.onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { + /// @solidity memory-safe-assembly assembly { revert(add(32, reason), mload(reason)) } @@ -390,22 +421,46 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { } /** - * @dev Hook that is called before any token transfer. This includes minting - * and burning. + * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is + * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1. * * Calling conditions: * - * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be - * transferred to `to`. - * - When `from` is zero, `tokenId` will be minted for `to`. - * - When `to` is zero, ``from``'s `tokenId` will be burned. + * - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`. + * - When `from` is zero, the tokens will be minted for `to`. + * - When `to` is zero, ``from``'s tokens will be burned. * - `from` and `to` are never both zero. + * - `batchSize` is non-zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ - function _beforeTokenTransfer( - address from, - address to, - uint256 tokenId - ) internal virtual {} + function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {} + + /** + * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is + * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1. + * + * Calling conditions: + * + * - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`. + * - When `from` is zero, the tokens were minted for `to`. + * - When `to` is zero, ``from``'s tokens were burned. + * - `from` and `to` are never both zero. + * - `batchSize` is non-zero. + * + * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + */ + function _afterTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {} + + /** + * @dev Unsafe write access to the balances, used by extensions that "mint" tokens using an {ownerOf} override. + * + * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant + * being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such + * that `ownerOf(tokenId)` is `a`. + */ + // solhint-disable-next-line func-name-mixedcase + function __unsafe_increaseBalance(address account, uint256 amount) internal { + _balances[account] += amount; + } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol b/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol index 873ec67..293f566 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; @@ -37,6 +38,21 @@ interface IERC721 is IERC165 { */ function ownerOf(uint256 tokenId) external view returns (address owner); + /** + * @dev Safely transfers `tokenId` token from `from` to `to`. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * + * Emits a {Transfer} event. + */ + function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; + /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. @@ -46,21 +62,19 @@ interface IERC721 is IERC165 { * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. - * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. + * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ - function safeTransferFrom( - address from, - address to, - uint256 tokenId - ) external; + function safeTransferFrom(address from, address to, uint256 tokenId) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * - * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. + * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 + * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must + * understand this adds an external call which potentially creates a reentrancy vulnerability. * * Requirements: * @@ -71,11 +85,7 @@ interface IERC721 is IERC165 { * * Emits a {Transfer} event. */ - function transferFrom( - address from, - address to, - uint256 tokenId - ) external; + function transferFrom(address from, address to, uint256 tokenId) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. @@ -92,15 +102,6 @@ interface IERC721 is IERC165 { */ function approve(address to, uint256 tokenId) external; - /** - * @dev Returns the account approved for `tokenId` token. - * - * Requirements: - * - * - `tokenId` must exist. - */ - function getApproved(uint256 tokenId) external view returns (address operator); - /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. @@ -111,32 +112,21 @@ interface IERC721 is IERC165 { * * Emits an {ApprovalForAll} event. */ - function setApprovalForAll(address operator, bool _approved) external; + function setApprovalForAll(address operator, bool approved) external; /** - * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. + * @dev Returns the account approved for `tokenId` token. * - * See {setApprovalForAll} + * Requirements: + * + * - `tokenId` must exist. */ - function isApprovedForAll(address owner, address operator) external view returns (bool); + function getApproved(uint256 tokenId) external view returns (address operator); /** - * @dev Safely transfers `tokenId` token from `from` to `to`. - * - * Requirements: - * - * - `from` cannot be the zero address. - * - `to` cannot be the zero address. - * - `tokenId` token must exist and be owned by `from`. - * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * - * Emits a {Transfer} event. + * See {setApprovalForAll} */ - function safeTransferFrom( - address from, - address to, - uint256 tokenId, - bytes calldata data - ) external; + function isApprovedForAll(address owner, address operator) external view returns (bool); } diff --git a/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol b/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol index 9683f4a..de67209 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol) pragma solidity ^0.8.0; @@ -15,7 +16,7 @@ interface IERC721Receiver { * It must return its Solidity selector to confirm the token transfer. * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. * - * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. + * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`. */ function onERC721Received( address operator, diff --git a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol index b0512f0..0dc7dae 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/ERC721Burnable.sol) pragma solidity ^0.8.0; @@ -7,7 +8,7 @@ import "../../../utils/Context.sol"; /** * @title ERC721 Burnable Token - * @dev ERC721 Token that can be irreversibly burned (destroyed). + * @dev ERC721 Token that can be burned (destroyed). */ abstract contract ERC721Burnable is Context, ERC721 { /** @@ -19,7 +20,7 @@ abstract contract ERC721Burnable is Context, ERC721 { */ function burn(uint256 tokenId) public virtual { //solhint-disable-next-line max-line-length - require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721Burnable: caller is not owner nor approved"); + require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: caller is not token owner or approved"); _burn(tokenId); } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol index d064bdd..aab81a9 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/ERC721Enumerable.sol) pragma solidity ^0.8.0; @@ -54,26 +55,22 @@ abstract contract ERC721Enumerable is ERC721, IERC721Enumerable { } /** - * @dev Hook that is called before any token transfer. This includes minting - * and burning. - * - * Calling conditions: - * - * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be - * transferred to `to`. - * - When `from` is zero, `tokenId` will be minted for `to`. - * - When `to` is zero, ``from``'s `tokenId` will be burned. - * - `from` cannot be the zero address. - * - `to` cannot be the zero address. - * - * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + * @dev See {ERC721-_beforeTokenTransfer}. */ function _beforeTokenTransfer( address from, address to, - uint256 tokenId + uint256 firstTokenId, + uint256 batchSize ) internal virtual override { - super._beforeTokenTransfer(from, to, tokenId); + super._beforeTokenTransfer(from, to, firstTokenId, batchSize); + + if (batchSize > 1) { + // Will only trigger during construction. Batch transferring (minting) is not available afterwards. + revert("ERC721Enumerable: consecutive transfers not supported"); + } + + uint256 tokenId = firstTokenId; if (from == address(0)) { _addTokenToAllTokensEnumeration(tokenId); diff --git a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol index 2949b3c..e8eb4b1 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.8.2) (token/ERC721/extensions/ERC721Pausable.sol) pragma solidity ^0.8.0; @@ -11,6 +12,12 @@ import "../../../security/Pausable.sol"; * Useful for scenarios such as preventing trades until the end of an evaluation * period, or having an emergency switch for freezing all token transfers in the * event of a large bug. + * + * IMPORTANT: This contract does not include public pause and unpause functions. In + * addition to inheriting this contract, you must define both functions, invoking the + * {Pausable-_pause} and {Pausable-_unpause} internal functions, with appropriate + * access control, e.g. using {AccessControl} or {Ownable}. Not doing so will + * make the contract unpausable. */ abstract contract ERC721Pausable is ERC721, Pausable { /** @@ -23,9 +30,10 @@ abstract contract ERC721Pausable is ERC721, Pausable { function _beforeTokenTransfer( address from, address to, - uint256 tokenId + uint256 firstTokenId, + uint256 batchSize ) internal virtual override { - super._beforeTokenTransfer(from, to, tokenId); + super._beforeTokenTransfer(from, to, firstTokenId, batchSize); require(!paused(), "ERC721Pausable: token transfer while paused"); } diff --git a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol index 5b96e70..c9d79b6 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol @@ -1,23 +1,32 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/extensions/ERC721URIStorage.sol) pragma solidity ^0.8.0; import "../ERC721.sol"; +import "../../../interfaces/IERC4906.sol"; /** * @dev ERC721 token with storage based token URI management. */ -abstract contract ERC721URIStorage is ERC721 { +abstract contract ERC721URIStorage is IERC4906, ERC721 { using Strings for uint256; // Optional mapping for token URIs mapping(uint256 => string) private _tokenURIs; + /** + * @dev See {IERC165-supportsInterface} + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, IERC165) returns (bool) { + return interfaceId == bytes4(0x49064906) || super.supportsInterface(interfaceId); + } + /** * @dev See {IERC721Metadata-tokenURI}. */ function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { - require(_exists(tokenId), "ERC721URIStorage: URI query for nonexistent token"); + _requireMinted(tokenId); string memory _tokenURI = _tokenURIs[tokenId]; string memory base = _baseURI(); @@ -37,6 +46,8 @@ abstract contract ERC721URIStorage is ERC721 { /** * @dev Sets `_tokenURI` as the tokenURI of `tokenId`. * + * Emits {MetadataUpdate}. + * * Requirements: * * - `tokenId` must exist. @@ -44,17 +55,14 @@ abstract contract ERC721URIStorage is ERC721 { function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual { require(_exists(tokenId), "ERC721URIStorage: URI set of nonexistent token"); _tokenURIs[tokenId] = _tokenURI; + + emit MetadataUpdate(tokenId); } /** - * @dev Destroys `tokenId`. - * The approval is cleared when the token is burned. - * - * Requirements: - * - * - `tokenId` must exist. - * - * Emits a {Transfer} event. + * @dev See {ERC721-_burn}. This override additionally checks to see if a + * token-specific URI was set for the token, and if so, it deletes the token URI from + * the storage mapping. */ function _burn(uint256 tokenId) internal virtual override { super._burn(tokenId); diff --git a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol index c04295b..dfea427 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol) pragma solidity ^0.8.0; @@ -18,7 +19,7 @@ interface IERC721Enumerable is IERC721 { * @dev Returns a token ID owned by `owner` at a given `index` of its token list. * Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ - function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); + function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256); /** * @dev Returns a token ID at a given `index` of all the tokens stored by the contract. diff --git a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol index cb9af00..dca77ba 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol b/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol index c231765..da53b88 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol) pragma solidity ^0.8.0; @@ -24,6 +25,8 @@ import "../../../utils/Counters.sol"; * The account that deploys the contract will be granted the minter and pauser * roles, as well as the default admin role, which will let it grant both minter * and pauser roles to other accounts. + * + * _Deprecated in favor of https://wizard.openzeppelin.com/[Contracts Wizard]._ */ contract ERC721PresetMinterPauserAutoId is Context, @@ -48,11 +51,7 @@ contract ERC721PresetMinterPauserAutoId is * Token URIs will be autogenerated based on `baseURI` and their token IDs. * See {ERC721-tokenURI}. */ - constructor( - string memory name, - string memory symbol, - string memory baseTokenURI - ) ERC721(name, symbol) { + constructor(string memory name, string memory symbol, string memory baseTokenURI) ERC721(name, symbol) { _baseTokenURI = baseTokenURI; _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); @@ -116,21 +115,18 @@ contract ERC721PresetMinterPauserAutoId is function _beforeTokenTransfer( address from, address to, - uint256 tokenId + uint256 firstTokenId, + uint256 batchSize ) internal virtual override(ERC721, ERC721Enumerable, ERC721Pausable) { - super._beforeTokenTransfer(from, to, tokenId); + super._beforeTokenTransfer(from, to, firstTokenId, batchSize); } /** * @dev See {IERC165-supportsInterface}. */ - function supportsInterface(bytes4 interfaceId) - public - view - virtual - override(AccessControlEnumerable, ERC721, ERC721Enumerable) - returns (bool) - { + function supportsInterface( + bytes4 interfaceId + ) public view virtual override(AccessControlEnumerable, ERC721, ERC721Enumerable) returns (bool) { return super.supportsInterface(interfaceId); } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol b/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol index 6446380..f18ad8a 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/utils/ERC721Holder.sol) pragma solidity ^0.8.0; @@ -16,12 +17,7 @@ contract ERC721Holder is IERC721Receiver { * * Always returns `IERC721Receiver.onERC721Received.selector`. */ - function onERC721Received( - address, - address, - uint256, - bytes memory - ) public virtual override returns (bytes4) { + function onERC721Received(address, address, uint256, bytes memory) public virtual override returns (bytes4) { return this.onERC721Received.selector; } } diff --git a/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol b/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol index 35296a0..c9a17d8 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC777/ERC777.sol) pragma solidity ^0.8.0; @@ -24,6 +25,8 @@ import "../../utils/introspection/IERC1820Registry.sol"; * Additionally, the {IERC777-granularity} value is hard-coded to `1`, meaning that there * are no special restrictions in the amount of tokens that created, moved, or * destroyed. This makes integration with ERC20 applications seamless. + * + * CAUTION: This file is deprecated as of v4.9 and will be removed in the next major release. */ contract ERC777 is Context, IERC777, IERC20 { using Address for address; @@ -56,11 +59,7 @@ contract ERC777 is Context, IERC777, IERC20 { /** * @dev `defaultOperators` may be an empty array. */ - constructor( - string memory name_, - string memory symbol_, - address[] memory defaultOperators_ - ) { + constructor(string memory name_, string memory symbol_, address[] memory defaultOperators_) { _name = name_; _symbol = symbol_; @@ -126,11 +125,7 @@ contract ERC777 is Context, IERC777, IERC20 { * * Also emits a {IERC20-Transfer} event for ERC20 compatibility. */ - function send( - address recipient, - uint256 amount, - bytes memory data - ) public virtual override { + function send(address recipient, uint256 amount, bytes memory data) public virtual override { _send(_msgSender(), recipient, amount, data, "", true); } @@ -143,16 +138,7 @@ contract ERC777 is Context, IERC777, IERC20 { * Also emits a {Sent} event. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { - require(recipient != address(0), "ERC777: transfer to the zero address"); - - address from = _msgSender(); - - _callTokensToSend(from, from, recipient, amount, "", ""); - - _move(from, from, recipient, amount, "", ""); - - _callTokensReceived(from, from, recipient, amount, "", "", false); - + _send(_msgSender(), recipient, amount, "", "", false); return true; } @@ -257,6 +243,9 @@ contract ERC777 is Context, IERC777, IERC20 { /** * @dev See {IERC20-approve}. * + * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on + * `transferFrom`. This is semantically equivalent to an infinite approval. + * * Note that accounts cannot have allowance issued by their operators. */ function approve(address spender, uint256 value) public virtual override returns (bool) { @@ -268,32 +257,19 @@ contract ERC777 is Context, IERC777, IERC20 { /** * @dev See {IERC20-transferFrom}. * + * NOTE: Does not update the allowance if the current allowance + * is the maximum `uint256`. + * * Note that operator and allowance concepts are orthogonal: operators cannot * call `transferFrom` (unless they have allowance), and accounts with * allowance cannot call `operatorSend` (unless they are operators). * * Emits {Sent}, {IERC20-Transfer} and {IERC20-Approval} events. */ - function transferFrom( - address holder, - address recipient, - uint256 amount - ) public virtual override returns (bool) { - require(recipient != address(0), "ERC777: transfer to the zero address"); - require(holder != address(0), "ERC777: transfer from the zero address"); - + function transferFrom(address holder, address recipient, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); - - _callTokensToSend(spender, holder, recipient, amount, "", ""); - - _move(spender, holder, recipient, amount, "", ""); - - uint256 currentAllowance = _allowances[holder][spender]; - require(currentAllowance >= amount, "ERC777: transfer amount exceeds allowance"); - _approve(holder, spender, currentAllowance - amount); - - _callTokensReceived(spender, holder, recipient, amount, "", "", false); - + _spendAllowance(holder, spender, amount); + _send(holder, recipient, amount, "", "", false); return true; } @@ -302,7 +278,8 @@ contract ERC777 is Context, IERC777, IERC20 { * the total supply. * * If a send hook is registered for `account`, the corresponding function - * will be called with `operator`, `data` and `operatorData`. + * will be called with the caller address as the `operator` and with + * `userData` and `operatorData`. * * See {IERC777Sender} and {IERC777Recipient}. * @@ -314,12 +291,7 @@ contract ERC777 is Context, IERC777, IERC20 { * - if `account` is a contract, it must implement the {IERC777Recipient} * interface. */ - function _mint( - address account, - uint256 amount, - bytes memory userData, - bytes memory operatorData - ) internal virtual { + function _mint(address account, uint256 amount, bytes memory userData, bytes memory operatorData) internal virtual { _mint(account, amount, userData, operatorData, true); } @@ -381,8 +353,8 @@ contract ERC777 is Context, IERC777, IERC20 { bytes memory operatorData, bool requireReceptionAck ) internal virtual { - require(from != address(0), "ERC777: send from the zero address"); - require(to != address(0), "ERC777: send to the zero address"); + require(from != address(0), "ERC777: transfer from the zero address"); + require(to != address(0), "ERC777: transfer to the zero address"); address operator = _msgSender(); @@ -400,12 +372,7 @@ contract ERC777 is Context, IERC777, IERC20 { * @param data bytes extra information provided by the token holder * @param operatorData bytes extra information provided by the operator (if any) */ - function _burn( - address from, - uint256 amount, - bytes memory data, - bytes memory operatorData - ) internal virtual { + function _burn(address from, uint256 amount, bytes memory data, bytes memory operatorData) internal virtual { require(from != address(0), "ERC777: burn from the zero address"); address operator = _msgSender(); @@ -452,11 +419,7 @@ contract ERC777 is Context, IERC777, IERC20 { * * Note that accounts cannot have allowance issued by their operators. */ - function _approve( - address holder, - address spender, - uint256 value - ) internal { + function _approve(address holder, address spender, uint256 value) internal virtual { require(holder != address(0), "ERC777: approve from the zero address"); require(spender != address(0), "ERC777: approve to the zero address"); @@ -515,9 +478,27 @@ contract ERC777 is Context, IERC777, IERC20 { } } + /** + * @dev Updates `owner` s allowance for `spender` based on spent `amount`. + * + * Does not update the allowance amount in case of infinite allowance. + * Revert if not enough allowance is available. + * + * Might emit an {IERC20-Approval} event. + */ + function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { + uint256 currentAllowance = allowance(owner, spender); + if (currentAllowance != type(uint256).max) { + require(currentAllowance >= amount, "ERC777: insufficient allowance"); + unchecked { + _approve(owner, spender, currentAllowance - amount); + } + } + } + /** * @dev Hook that is called before any token transfer. This includes - * calls to {send}, {transfer}, {operatorSend}, minting and burning. + * calls to {send}, {transfer}, {operatorSend}, {transferFrom}, minting and burning. * * Calling conditions: * @@ -529,10 +510,5 @@ contract ERC777 is Context, IERC777, IERC20 { * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ - function _beforeTokenTransfer( - address operator, - address from, - address to, - uint256 amount - ) internal virtual {} + function _beforeTokenTransfer(address operator, address from, address to, uint256 amount) internal virtual {} } diff --git a/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol b/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol index c037d1a..2d4f6df 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC777/IERC777.sol) pragma solidity ^0.8.0; @@ -12,6 +13,30 @@ pragma solidity ^0.8.0; * {ERC1820Implementer}. */ interface IERC777 { + /** + * @dev Emitted when `amount` tokens are created by `operator` and assigned to `to`. + * + * Note that some additional user `data` and `operatorData` can be logged in the event. + */ + event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData); + + /** + * @dev Emitted when `operator` destroys `amount` tokens from `account`. + * + * Note that some additional user `data` and `operatorData` can be logged in the event. + */ + event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData); + + /** + * @dev Emitted when `operator` is made operator for `tokenHolder`. + */ + event AuthorizedOperator(address indexed operator, address indexed tokenHolder); + + /** + * @dev Emitted when `operator` is revoked its operator status for `tokenHolder`. + */ + event RevokedOperator(address indexed operator, address indexed tokenHolder); + /** * @dev Returns the name of the token. */ @@ -58,11 +83,7 @@ interface IERC777 { * - if `recipient` is a contract, it must implement the {IERC777Recipient} * interface. */ - function send( - address recipient, - uint256 amount, - bytes calldata data - ) external; + function send(address recipient, uint256 amount, bytes calldata data) external; /** * @dev Destroys `amount` tokens from the caller's account, reducing the @@ -166,12 +187,7 @@ interface IERC777 { * - `account` must have at least `amount` tokens. * - the caller must be an operator for `account`. */ - function operatorBurn( - address account, - uint256 amount, - bytes calldata data, - bytes calldata operatorData - ) external; + function operatorBurn(address account, uint256 amount, bytes calldata data, bytes calldata operatorData) external; event Sent( address indexed operator, @@ -181,12 +197,4 @@ interface IERC777 { bytes data, bytes operatorData ); - - event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData); - - event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData); - - event AuthorizedOperator(address indexed operator, address indexed tokenHolder); - - event RevokedOperator(address indexed operator, address indexed tokenHolder); } diff --git a/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol b/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol index a897691..717dd8f 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (token/ERC777/IERC777Recipient.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol b/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol index 172f69e..969e3e3 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (token/ERC777/IERC777Sender.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol b/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol index fb9a6ce..8bd4b79 100644 --- a/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol +++ b/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (token/ERC777/presets/ERC777PresetFixedSupply.sol) pragma solidity ^0.8.0; import "../ERC777.sol"; diff --git a/node_modules/@openzeppelin/contracts/utils/Address.sol b/node_modules/@openzeppelin/contracts/utils/Address.sol index 0bb4a55..0791a66 100644 --- a/node_modules/@openzeppelin/contracts/utils/Address.sol +++ b/node_modules/@openzeppelin/contracts/utils/Address.sol @@ -1,6 +1,7 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol) -pragma solidity ^0.8.0; +pragma solidity ^0.8.1; /** * @dev Collection of functions related to the address type @@ -21,18 +22,27 @@ library Address { * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed + * + * Furthermore, `isContract` will also return true if the target contract within + * the same transaction is already scheduled for destruction by `SELFDESTRUCT`, + * which only has an effect at the end of a transaction. + * ==== + * + * [IMPORTANT] + * ==== + * You shouldn't rely on `isContract` to protect against flash loan attacks! + * + * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets + * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract + * constructor. * ==== */ function isContract(address account) internal view returns (bool) { - // This method relies on extcodesize, which returns 0 for contracts in - // construction, since the code is only stored at the end of the - // constructor execution. + // This method relies on extcodesize/address.code.length, which returns 0 + // for contracts in construction, since the code is only stored at the end + // of the constructor execution. - uint256 size; - assembly { - size := extcodesize(account) - } - return size > 0; + return account.code.length > 0; } /** @@ -44,12 +54,12 @@ library Address { * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * - * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. + * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the - * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. + * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); @@ -77,7 +87,7 @@ library Address { * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { - return functionCall(target, data, "Address: low-level call failed"); + return functionCallWithValue(target, data, 0, "Address: low-level call failed"); } /** @@ -105,11 +115,7 @@ library Address { * * _Available since v3.1._ */ - function functionCallWithValue( - address target, - bytes memory data, - uint256 value - ) internal returns (bytes memory) { + function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } @@ -126,10 +132,8 @@ library Address { string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); - require(isContract(target), "Address: call to non-contract"); - (bool success, bytes memory returndata) = target.call{value: value}(data); - return verifyCallResult(success, returndata, errorMessage); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** @@ -153,10 +157,8 @@ library Address { bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { - require(isContract(target), "Address: static call to non-contract"); - (bool success, bytes memory returndata) = target.staticcall(data); - return verifyCallResult(success, returndata, errorMessage); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** @@ -180,15 +182,37 @@ library Address { bytes memory data, string memory errorMessage ) internal returns (bytes memory) { - require(isContract(target), "Address: delegate call to non-contract"); - (bool success, bytes memory returndata) = target.delegatecall(data); - return verifyCallResult(success, returndata, errorMessage); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** - * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the - * revert reason using the provided one. + * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling + * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. + * + * _Available since v4.8._ + */ + function verifyCallResultFromTarget( + address target, + bool success, + bytes memory returndata, + string memory errorMessage + ) internal view returns (bytes memory) { + if (success) { + if (returndata.length == 0) { + // only check isContract if the call was successful and the return data is empty + // otherwise we already know that it was a contract + require(isContract(target), "Address: call to non-contract"); + } + return returndata; + } else { + _revert(returndata, errorMessage); + } + } + + /** + * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the + * revert reason or using the provided one. * * _Available since v4.3._ */ @@ -200,17 +224,21 @@ library Address { if (success) { return returndata; } else { - // Look for revert reason and bubble it up if present - if (returndata.length > 0) { - // The easiest way to bubble the revert reason is using memory via assembly - - assembly { - let returndata_size := mload(returndata) - revert(add(32, returndata), returndata_size) - } - } else { - revert(errorMessage); + _revert(returndata, errorMessage); + } + } + + function _revert(bytes memory returndata, string memory errorMessage) private pure { + // Look for revert reason and bubble it up if present + if (returndata.length > 0) { + // The easiest way to bubble the revert reason is using memory via assembly + /// @solidity memory-safe-assembly + assembly { + let returndata_size := mload(returndata) + revert(add(32, returndata), returndata_size) } + } else { + revert(errorMessage); } } } diff --git a/node_modules/@openzeppelin/contracts/utils/Arrays.sol b/node_modules/@openzeppelin/contracts/utils/Arrays.sol index 1ad43db..66fe322 100644 --- a/node_modules/@openzeppelin/contracts/utils/Arrays.sol +++ b/node_modules/@openzeppelin/contracts/utils/Arrays.sol @@ -1,13 +1,17 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/Arrays.sol) pragma solidity ^0.8.0; +import "./StorageSlot.sol"; import "./math/Math.sol"; /** * @dev Collection of functions related to array types. */ library Arrays { + using StorageSlot for bytes32; + /** * @dev Searches a sorted `array` and returns the first index that contains * a value greater or equal to `element`. If no such index exists (i.e. all @@ -30,7 +34,7 @@ library Arrays { // Note that mid will always be strictly less than high (i.e. it will be a valid array index) // because Math.average rounds down (it does integer division with truncation). - if (array[mid] > element) { + if (unsafeAccess(array, mid).value > element) { high = mid; } else { low = mid + 1; @@ -38,10 +42,64 @@ library Arrays { } // At this point `low` is the exclusive upper bound. We will return the inclusive upper bound. - if (low > 0 && array[low - 1] == element) { + if (low > 0 && unsafeAccess(array, low - 1).value == element) { return low - 1; } else { return low; } } + + /** + * @dev Access an array in an "unsafe" way. Skips solidity "index-out-of-range" check. + * + * WARNING: Only use if you are certain `pos` is lower than the array length. + */ + function unsafeAccess(address[] storage arr, uint256 pos) internal pure returns (StorageSlot.AddressSlot storage) { + bytes32 slot; + // We use assembly to calculate the storage slot of the element at index `pos` of the dynamic array `arr` + // following https://docs.soliditylang.org/en/v0.8.17/internals/layout_in_storage.html#mappings-and-dynamic-arrays. + + /// @solidity memory-safe-assembly + assembly { + mstore(0, arr.slot) + slot := add(keccak256(0, 0x20), pos) + } + return slot.getAddressSlot(); + } + + /** + * @dev Access an array in an "unsafe" way. Skips solidity "index-out-of-range" check. + * + * WARNING: Only use if you are certain `pos` is lower than the array length. + */ + function unsafeAccess(bytes32[] storage arr, uint256 pos) internal pure returns (StorageSlot.Bytes32Slot storage) { + bytes32 slot; + // We use assembly to calculate the storage slot of the element at index `pos` of the dynamic array `arr` + // following https://docs.soliditylang.org/en/v0.8.17/internals/layout_in_storage.html#mappings-and-dynamic-arrays. + + /// @solidity memory-safe-assembly + assembly { + mstore(0, arr.slot) + slot := add(keccak256(0, 0x20), pos) + } + return slot.getBytes32Slot(); + } + + /** + * @dev Access an array in an "unsafe" way. Skips solidity "index-out-of-range" check. + * + * WARNING: Only use if you are certain `pos` is lower than the array length. + */ + function unsafeAccess(uint256[] storage arr, uint256 pos) internal pure returns (StorageSlot.Uint256Slot storage) { + bytes32 slot; + // We use assembly to calculate the storage slot of the element at index `pos` of the dynamic array `arr` + // following https://docs.soliditylang.org/en/v0.8.17/internals/layout_in_storage.html#mappings-and-dynamic-arrays. + + /// @solidity memory-safe-assembly + assembly { + mstore(0, arr.slot) + slot := add(keccak256(0, 0x20), pos) + } + return slot.getUint256Slot(); + } } diff --git a/node_modules/@openzeppelin/contracts/utils/Context.sol b/node_modules/@openzeppelin/contracts/utils/Context.sol index d03dc5f..f304065 100644 --- a/node_modules/@openzeppelin/contracts/utils/Context.sol +++ b/node_modules/@openzeppelin/contracts/utils/Context.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/utils/Counters.sol b/node_modules/@openzeppelin/contracts/utils/Counters.sol index 624055c..8a4f2a2 100644 --- a/node_modules/@openzeppelin/contracts/utils/Counters.sol +++ b/node_modules/@openzeppelin/contracts/utils/Counters.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/utils/Create2.sol b/node_modules/@openzeppelin/contracts/utils/Create2.sol index 72377d6..29fa973 100644 --- a/node_modules/@openzeppelin/contracts/utils/Create2.sol +++ b/node_modules/@openzeppelin/contracts/utils/Create2.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/Create2.sol) pragma solidity ^0.8.0; @@ -26,19 +27,14 @@ library Create2 { * - the factory must have a balance of at least `amount`. * - if `amount` is non-zero, `bytecode` must have a `payable` constructor. */ - function deploy( - uint256 amount, - bytes32 salt, - bytes memory bytecode - ) internal returns (address) { - address addr; + function deploy(uint256 amount, bytes32 salt, bytes memory bytecode) internal returns (address addr) { require(address(this).balance >= amount, "Create2: insufficient balance"); require(bytecode.length != 0, "Create2: bytecode length is zero"); + /// @solidity memory-safe-assembly assembly { addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt) } require(addr != address(0), "Create2: Failed on deploy"); - return addr; } /** @@ -53,12 +49,27 @@ library Create2 { * @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at * `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}. */ - function computeAddress( - bytes32 salt, - bytes32 bytecodeHash, - address deployer - ) internal pure returns (address) { - bytes32 _data = keccak256(abi.encodePacked(bytes1(0xff), deployer, salt, bytecodeHash)); - return address(uint160(uint256(_data))); + function computeAddress(bytes32 salt, bytes32 bytecodeHash, address deployer) internal pure returns (address addr) { + /// @solidity memory-safe-assembly + assembly { + let ptr := mload(0x40) // Get free memory pointer + + // | | ↓ ptr ... ↓ ptr + 0x0B (start) ... ↓ ptr + 0x20 ... ↓ ptr + 0x40 ... | + // |-------------------|---------------------------------------------------------------------------| + // | bytecodeHash | CCCCCCCCCCCCC...CC | + // | salt | BBBBBBBBBBBBB...BB | + // | deployer | 000000...0000AAAAAAAAAAAAAAAAAAA...AA | + // | 0xFF | FF | + // |-------------------|---------------------------------------------------------------------------| + // | memory | 000000...00FFAAAAAAAAAAAAAAAAAAA...AABBBBBBBBBBBBB...BBCCCCCCCCCCCCC...CC | + // | keccak(start, 85) | ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ | + + mstore(add(ptr, 0x40), bytecodeHash) + mstore(add(ptr, 0x20), salt) + mstore(ptr, deployer) // Right-aligned with 12 preceding garbage bytes + let start := add(ptr, 0x0b) // The hashed data starts at the final garbage byte which we will set to 0xff + mstore8(start, 0xff) + addr := keccak256(start, 85) + } } } diff --git a/node_modules/@openzeppelin/contracts/utils/Multicall.sol b/node_modules/@openzeppelin/contracts/utils/Multicall.sol index 06912a0..5729f84 100644 --- a/node_modules/@openzeppelin/contracts/utils/Multicall.sol +++ b/node_modules/@openzeppelin/contracts/utils/Multicall.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/Multicall.sol) pragma solidity ^0.8.0; @@ -12,8 +13,9 @@ import "./Address.sol"; abstract contract Multicall { /** * @dev Receives and executes a batch of function calls on this contract. + * @custom:oz-upgrades-unsafe-allow-reachable delegatecall */ - function multicall(bytes[] calldata data) external returns (bytes[] memory results) { + function multicall(bytes[] calldata data) external virtual returns (bytes[] memory results) { results = new bytes[](data.length); for (uint256 i = 0; i < data.length; i++) { results[i] = Address.functionDelegateCall(address(this), data[i]); diff --git a/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol b/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol index 00aa4ec..df62b8f 100644 --- a/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol +++ b/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol @@ -1,4 +1,6 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol) +// This file was procedurally generated from scripts/generate/templates/StorageSlot.js. pragma solidity ^0.8.0; @@ -11,7 +13,7 @@ pragma solidity ^0.8.0; * The functions in this library return Slot structs that contain a `value` member that can be used to read or write. * * Example usage to set ERC1967 implementation slot: - * ``` + * ```solidity * contract ERC1967 { * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; * @@ -26,7 +28,8 @@ pragma solidity ^0.8.0; * } * ``` * - * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._ + * _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._ + * _Available since v4.9 for `string`, `bytes`._ */ library StorageSlot { struct AddressSlot { @@ -45,10 +48,19 @@ library StorageSlot { uint256 value; } + struct StringSlot { + string value; + } + + struct BytesSlot { + bytes value; + } + /** * @dev Returns an `AddressSlot` with member `value` located at `slot`. */ function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) { + /// @solidity memory-safe-assembly assembly { r.slot := slot } @@ -58,6 +70,7 @@ library StorageSlot { * @dev Returns an `BooleanSlot` with member `value` located at `slot`. */ function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) { + /// @solidity memory-safe-assembly assembly { r.slot := slot } @@ -67,6 +80,7 @@ library StorageSlot { * @dev Returns an `Bytes32Slot` with member `value` located at `slot`. */ function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) { + /// @solidity memory-safe-assembly assembly { r.slot := slot } @@ -76,8 +90,49 @@ library StorageSlot { * @dev Returns an `Uint256Slot` with member `value` located at `slot`. */ function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `StringSlot` with member `value` located at `slot`. + */ + function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) { + /// @solidity memory-safe-assembly assembly { r.slot := slot } } + + /** + * @dev Returns an `StringSlot` representation of the string storage pointer `store`. + */ + function getStringSlot(string storage store) internal pure returns (StringSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := store.slot + } + } + + /** + * @dev Returns an `BytesSlot` with member `value` located at `slot`. + */ + function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`. + */ + function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := store.slot + } + } } diff --git a/node_modules/@openzeppelin/contracts/utils/Strings.sol b/node_modules/@openzeppelin/contracts/utils/Strings.sol index 8f3d41e..657ebd6 100644 --- a/node_modules/@openzeppelin/contracts/utils/Strings.sol +++ b/node_modules/@openzeppelin/contracts/utils/Strings.sol @@ -1,52 +1,57 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol) pragma solidity ^0.8.0; +import "./math/Math.sol"; +import "./math/SignedMath.sol"; + /** * @dev String operations. */ library Strings { - bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; + bytes16 private constant _SYMBOLS = "0123456789abcdef"; + uint8 private constant _ADDRESS_LENGTH = 20; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { - // Inspired by OraclizeAPI's implementation - MIT licence - // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol - - if (value == 0) { - return "0"; - } - uint256 temp = value; - uint256 digits; - while (temp != 0) { - digits++; - temp /= 10; + unchecked { + uint256 length = Math.log10(value) + 1; + string memory buffer = new string(length); + uint256 ptr; + /// @solidity memory-safe-assembly + assembly { + ptr := add(buffer, add(32, length)) + } + while (true) { + ptr--; + /// @solidity memory-safe-assembly + assembly { + mstore8(ptr, byte(mod(value, 10), _SYMBOLS)) + } + value /= 10; + if (value == 0) break; + } + return buffer; } - bytes memory buffer = new bytes(digits); - while (value != 0) { - digits -= 1; - buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); - value /= 10; - } - return string(buffer); + } + + /** + * @dev Converts a `int256` to its ASCII `string` decimal representation. + */ + function toString(int256 value) internal pure returns (string memory) { + return string(abi.encodePacked(value < 0 ? "-" : "", toString(SignedMath.abs(value)))); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { - if (value == 0) { - return "0x00"; + unchecked { + return toHexString(value, Math.log256(value) + 1); } - uint256 temp = value; - uint256 length = 0; - while (temp != 0) { - length++; - temp >>= 8; - } - return toHexString(value, length); } /** @@ -57,10 +62,24 @@ library Strings { buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { - buffer[i] = _HEX_SYMBOLS[value & 0xf]; + buffer[i] = _SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } + + /** + * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation. + */ + function toHexString(address addr) internal pure returns (string memory) { + return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH); + } + + /** + * @dev Returns true if the two strings are equal. + */ + function equal(string memory a, string memory b) internal pure returns (bool) { + return keccak256(bytes(a)) == keccak256(bytes(b)); + } } diff --git a/node_modules/@openzeppelin/contracts/utils/Timers.sol b/node_modules/@openzeppelin/contracts/utils/Timers.sol index c692666..04f8664 100644 --- a/node_modules/@openzeppelin/contracts/utils/Timers.sol +++ b/node_modules/@openzeppelin/contracts/utils/Timers.sol @@ -1,9 +1,12 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/Timers.sol) pragma solidity ^0.8.0; /** * @dev Tooling for timepoints, timers and delays + * + * CAUTION: This file is deprecated as of 4.9 and will be removed in the next major release. */ library Timers { struct Timestamp { diff --git a/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol b/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol index 0f8a3a5..4326e5b 100644 --- a/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol +++ b/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol @@ -1,7 +1,10 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/ECDSA.sol) pragma solidity ^0.8.0; +import "../Strings.sol"; + /** * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations. * @@ -14,7 +17,7 @@ library ECDSA { InvalidSignature, InvalidSignatureLength, InvalidSignatureS, - InvalidSignatureV + InvalidSignatureV // Deprecated in v4.8 } function _throwError(RecoverError error) private pure { @@ -26,8 +29,6 @@ library ECDSA { revert("ECDSA: invalid signature length"); } else if (error == RecoverError.InvalidSignatureS) { revert("ECDSA: invalid signature 's' value"); - } else if (error == RecoverError.InvalidSignatureV) { - revert("ECDSA: invalid signature 'v' value"); } } @@ -52,31 +53,19 @@ library ECDSA { * _Available since v4.3._ */ function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) { - // Check the signature length - // - case 65: r,s,v signature (standard) - // - case 64: r,vs signature (cf https://eips.ethereum.org/EIPS/eip-2098) _Available since v4.1._ if (signature.length == 65) { bytes32 r; bytes32 s; uint8 v; // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. + /// @solidity memory-safe-assembly assembly { r := mload(add(signature, 0x20)) s := mload(add(signature, 0x40)) v := byte(0, mload(add(signature, 0x60))) } return tryRecover(hash, v, r, s); - } else if (signature.length == 64) { - bytes32 r; - bytes32 vs; - // ecrecover takes the signature parameters, and the only way to get them - // currently is to use assembly. - assembly { - r := mload(add(signature, 0x20)) - vs := mload(add(signature, 0x40)) - } - return tryRecover(hash, r, vs); } else { return (address(0), RecoverError.InvalidSignatureLength); } @@ -109,17 +98,9 @@ library ECDSA { * * _Available since v4.3._ */ - function tryRecover( - bytes32 hash, - bytes32 r, - bytes32 vs - ) internal pure returns (address, RecoverError) { - bytes32 s; - uint8 v; - assembly { - s := and(vs, 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - v := add(shr(255, vs), 27) - } + function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError) { + bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); + uint8 v = uint8((uint256(vs) >> 255) + 27); return tryRecover(hash, v, r, s); } @@ -128,11 +109,7 @@ library ECDSA { * * _Available since v4.2._ */ - function recover( - bytes32 hash, - bytes32 r, - bytes32 vs - ) internal pure returns (address) { + function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) { (address recovered, RecoverError error) = tryRecover(hash, r, vs); _throwError(error); return recovered; @@ -144,12 +121,7 @@ library ECDSA { * * _Available since v4.3._ */ - function tryRecover( - bytes32 hash, - uint8 v, - bytes32 r, - bytes32 s - ) internal pure returns (address, RecoverError) { + function tryRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address, RecoverError) { // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most @@ -162,9 +134,6 @@ library ECDSA { if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) { return (address(0), RecoverError.InvalidSignatureS); } - if (v != 27 && v != 28) { - return (address(0), RecoverError.InvalidSignatureV); - } // If the signature is valid (and not malleable), return the signer address address signer = ecrecover(hash, v, r, s); @@ -179,12 +148,7 @@ library ECDSA { * @dev Overload of {ECDSA-recover} that receives the `v`, * `r` and `s` signature fields separately. */ - function recover( - bytes32 hash, - uint8 v, - bytes32 r, - bytes32 s - ) internal pure returns (address) { + function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) { (address recovered, RecoverError error) = tryRecover(hash, v, r, s); _throwError(error); return recovered; @@ -198,10 +162,27 @@ library ECDSA { * * See {recover}. */ - function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { + function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32 message) { // 32 is the length in bytes of hash, // enforced by the type signature above - return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); + /// @solidity memory-safe-assembly + assembly { + mstore(0x00, "\x19Ethereum Signed Message:\n32") + mstore(0x1c, hash) + message := keccak256(0x00, 0x3c) + } + } + + /** + * @dev Returns an Ethereum Signed Message, created from `s`. This + * produces hash corresponding to the one signed with the + * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] + * JSON-RPC method as part of EIP-191. + * + * See {recover}. + */ + function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) { + return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n", Strings.toString(s.length), s)); } /** @@ -213,7 +194,24 @@ library ECDSA { * * See {recover}. */ - function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) { - return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); + function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 data) { + /// @solidity memory-safe-assembly + assembly { + let ptr := mload(0x40) + mstore(ptr, "\x19\x01") + mstore(add(ptr, 0x02), domainSeparator) + mstore(add(ptr, 0x22), structHash) + data := keccak256(ptr, 0x42) + } + } + + /** + * @dev Returns an Ethereum Signed Data with intended validator, created from a + * `validator` and `data` according to the version 0 of EIP-191. + * + * See {recover}. + */ + function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) { + return keccak256(abi.encodePacked("\x19\x00", validator, data)); } } diff --git a/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol b/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol index b3b4871..cd79e51 100644 --- a/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol +++ b/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol @@ -1,15 +1,21 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/MerkleProof.sol) pragma solidity ^0.8.0; /** - * @dev These functions deal with verification of Merkle Trees proofs. + * @dev These functions deal with verification of Merkle Tree proofs. * - * The proofs can be generated using the JavaScript library - * https://github.com/miguelmota/merkletreejs[merkletreejs]. - * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled. + * The tree and the proofs can be generated using our + * https://github.com/OpenZeppelin/merkle-tree[JavaScript library]. + * You will find a quickstart guide in the readme. * - * See `test/utils/cryptography/MerkleProof.test.js` for some examples. + * WARNING: You should avoid using leaf values that are 64 bytes long prior to + * hashing, or use a hash function other than keccak256 for hashing leaves. + * This is because the concatenation of a sorted pair of internal nodes in + * the merkle tree could be reinterpreted as a leaf value. + * OpenZeppelin's JavaScript library generates merkle trees that are safe + * against this attack out of the box. */ library MerkleProof { /** @@ -18,26 +24,200 @@ library MerkleProof { * sibling hashes on the branch from the leaf to the root of the tree. Each * pair of leaves and each pair of pre-images are assumed to be sorted. */ - function verify( + function verify(bytes32[] memory proof, bytes32 root, bytes32 leaf) internal pure returns (bool) { + return processProof(proof, leaf) == root; + } + + /** + * @dev Calldata version of {verify} + * + * _Available since v4.7._ + */ + function verifyCalldata(bytes32[] calldata proof, bytes32 root, bytes32 leaf) internal pure returns (bool) { + return processProofCalldata(proof, leaf) == root; + } + + /** + * @dev Returns the rebuilt hash obtained by traversing a Merkle tree up + * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt + * hash matches the root of the tree. When processing the proof, the pairs + * of leafs & pre-images are assumed to be sorted. + * + * _Available since v4.4._ + */ + function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) { + bytes32 computedHash = leaf; + for (uint256 i = 0; i < proof.length; i++) { + computedHash = _hashPair(computedHash, proof[i]); + } + return computedHash; + } + + /** + * @dev Calldata version of {processProof} + * + * _Available since v4.7._ + */ + function processProofCalldata(bytes32[] calldata proof, bytes32 leaf) internal pure returns (bytes32) { + bytes32 computedHash = leaf; + for (uint256 i = 0; i < proof.length; i++) { + computedHash = _hashPair(computedHash, proof[i]); + } + return computedHash; + } + + /** + * @dev Returns true if the `leaves` can be simultaneously proven to be a part of a merkle tree defined by + * `root`, according to `proof` and `proofFlags` as described in {processMultiProof}. + * + * CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details. + * + * _Available since v4.7._ + */ + function multiProofVerify( bytes32[] memory proof, + bool[] memory proofFlags, bytes32 root, - bytes32 leaf + bytes32[] memory leaves ) internal pure returns (bool) { - bytes32 computedHash = leaf; + return processMultiProof(proof, proofFlags, leaves) == root; + } - for (uint256 i = 0; i < proof.length; i++) { - bytes32 proofElement = proof[i]; - - if (computedHash <= proofElement) { - // Hash(current computed hash + current element of the proof) - computedHash = keccak256(abi.encodePacked(computedHash, proofElement)); - } else { - // Hash(current element of the proof + current computed hash) - computedHash = keccak256(abi.encodePacked(proofElement, computedHash)); + /** + * @dev Calldata version of {multiProofVerify} + * + * CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details. + * + * _Available since v4.7._ + */ + function multiProofVerifyCalldata( + bytes32[] calldata proof, + bool[] calldata proofFlags, + bytes32 root, + bytes32[] memory leaves + ) internal pure returns (bool) { + return processMultiProofCalldata(proof, proofFlags, leaves) == root; + } + + /** + * @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction + * proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another + * leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false + * respectively. + * + * CAUTION: Not all merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree + * is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the + * tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer). + * + * _Available since v4.7._ + */ + function processMultiProof( + bytes32[] memory proof, + bool[] memory proofFlags, + bytes32[] memory leaves + ) internal pure returns (bytes32 merkleRoot) { + // This function rebuilds the root hash by traversing the tree up from the leaves. The root is rebuilt by + // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the + // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of + // the merkle tree. + uint256 leavesLen = leaves.length; + uint256 totalHashes = proofFlags.length; + + // Check proof validity. + require(leavesLen + proof.length - 1 == totalHashes, "MerkleProof: invalid multiproof"); + + // The xxxPos values are "pointers" to the next value to consume in each array. All accesses are done using + // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's "pop". + bytes32[] memory hashes = new bytes32[](totalHashes); + uint256 leafPos = 0; + uint256 hashPos = 0; + uint256 proofPos = 0; + // At each step, we compute the next hash using two values: + // - a value from the "main queue". If not all leaves have been consumed, we get the next leaf, otherwise we + // get the next hash. + // - depending on the flag, either another value from the "main queue" (merging branches) or an element from the + // `proof` array. + for (uint256 i = 0; i < totalHashes; i++) { + bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]; + bytes32 b = proofFlags[i] + ? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]) + : proof[proofPos++]; + hashes[i] = _hashPair(a, b); + } + + if (totalHashes > 0) { + unchecked { + return hashes[totalHashes - 1]; + } + } else if (leavesLen > 0) { + return leaves[0]; + } else { + return proof[0]; + } + } + + /** + * @dev Calldata version of {processMultiProof}. + * + * CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details. + * + * _Available since v4.7._ + */ + function processMultiProofCalldata( + bytes32[] calldata proof, + bool[] calldata proofFlags, + bytes32[] memory leaves + ) internal pure returns (bytes32 merkleRoot) { + // This function rebuilds the root hash by traversing the tree up from the leaves. The root is rebuilt by + // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the + // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of + // the merkle tree. + uint256 leavesLen = leaves.length; + uint256 totalHashes = proofFlags.length; + + // Check proof validity. + require(leavesLen + proof.length - 1 == totalHashes, "MerkleProof: invalid multiproof"); + + // The xxxPos values are "pointers" to the next value to consume in each array. All accesses are done using + // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's "pop". + bytes32[] memory hashes = new bytes32[](totalHashes); + uint256 leafPos = 0; + uint256 hashPos = 0; + uint256 proofPos = 0; + // At each step, we compute the next hash using two values: + // - a value from the "main queue". If not all leaves have been consumed, we get the next leaf, otherwise we + // get the next hash. + // - depending on the flag, either another value from the "main queue" (merging branches) or an element from the + // `proof` array. + for (uint256 i = 0; i < totalHashes; i++) { + bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]; + bytes32 b = proofFlags[i] + ? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]) + : proof[proofPos++]; + hashes[i] = _hashPair(a, b); + } + + if (totalHashes > 0) { + unchecked { + return hashes[totalHashes - 1]; } + } else if (leavesLen > 0) { + return leaves[0]; + } else { + return proof[0]; } + } - // Check if the computed hash (root) is equal to the provided root - return computedHash == root; + function _hashPair(bytes32 a, bytes32 b) private pure returns (bytes32) { + return a < b ? _efficientHash(a, b) : _efficientHash(b, a); + } + + function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) { + /// @solidity memory-safe-assembly + assembly { + mstore(0x00, a) + mstore(0x20, b) + value := keccak256(0x00, 0x40) + } } } diff --git a/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol b/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol index 71e30eb..1815d27 100644 --- a/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol +++ b/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol @@ -1,35 +1,50 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/SignatureChecker.sol) pragma solidity ^0.8.0; import "./ECDSA.sol"; -import "../Address.sol"; import "../../interfaces/IERC1271.sol"; /** - * @dev Signature verification helper: Provide a single mechanism to verify both private-key (EOA) ECDSA signature and - * ERC1271 contract sigantures. Using this instead of ECDSA.recover in your contract will make them compatible with - * smart contract wallets such as Argent and Gnosis. - * - * Note: unlike ECDSA signatures, contract signature's are revocable, and the outcome of this function can thus change - * through time. It could return true at block N and false at block N+1 (or the opposite). + * @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA + * signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like + * Argent and Gnosis Safe. * * _Available since v4.1._ */ library SignatureChecker { - function isValidSignatureNow( + /** + * @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the + * signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`. + * + * NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus + * change through time. It could return true at block N and false at block N+1 (or the opposite). + */ + function isValidSignatureNow(address signer, bytes32 hash, bytes memory signature) internal view returns (bool) { + (address recovered, ECDSA.RecoverError error) = ECDSA.tryRecover(hash, signature); + return + (error == ECDSA.RecoverError.NoError && recovered == signer) || + isValidERC1271SignatureNow(signer, hash, signature); + } + + /** + * @dev Checks if a signature is valid for a given signer and data hash. The signature is validated + * against the signer smart contract using ERC1271. + * + * NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus + * change through time. It could return true at block N and false at block N+1 (or the opposite). + */ + function isValidERC1271SignatureNow( address signer, bytes32 hash, bytes memory signature ) internal view returns (bool) { - (address recovered, ECDSA.RecoverError error) = ECDSA.tryRecover(hash, signature); - if (error == ECDSA.RecoverError.NoError && recovered == signer) { - return true; - } - (bool success, bytes memory result) = signer.staticcall( abi.encodeWithSelector(IERC1271.isValidSignature.selector, hash, signature) ); - return (success && result.length == 32 && abi.decode(result, (bytes4)) == IERC1271.isValidSignature.selector); + return (success && + result.length >= 32 && + abi.decode(result, (bytes32)) == bytes32(IERC1271.isValidSignature.selector)); } } diff --git a/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol b/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol index 2d45fa4..fdae3ba 100644 --- a/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol +++ b/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol @@ -1,101 +1,8 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/draft-EIP712.sol) pragma solidity ^0.8.0; -import "./ECDSA.sol"; +// EIP-712 is Final as of 2022-08-11. This file is deprecated. -/** - * @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. - * - * The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, - * thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding - * they need in their contracts using a combination of `abi.encode` and `keccak256`. - * - * This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding - * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA - * ({_hashTypedDataV4}). - * - * The implementation of the domain separator was designed to be as efficient as possible while still properly updating - * the chain id to protect against replay attacks on an eventual fork of the chain. - * - * NOTE: This contract implements the version of the encoding known as "v4", as implemented by the JSON RPC method - * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. - * - * _Available since v3.4._ - */ -abstract contract EIP712 { - /* solhint-disable var-name-mixedcase */ - // Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to - // invalidate the cached domain separator if the chain id changes. - bytes32 private immutable _CACHED_DOMAIN_SEPARATOR; - uint256 private immutable _CACHED_CHAIN_ID; - - bytes32 private immutable _HASHED_NAME; - bytes32 private immutable _HASHED_VERSION; - bytes32 private immutable _TYPE_HASH; - - /* solhint-enable var-name-mixedcase */ - - /** - * @dev Initializes the domain separator and parameter caches. - * - * The meaning of `name` and `version` is specified in - * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - * - * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - * - `version`: the current major version of the signing domain. - * - * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart - * contract upgrade]. - */ - constructor(string memory name, string memory version) { - bytes32 hashedName = keccak256(bytes(name)); - bytes32 hashedVersion = keccak256(bytes(version)); - bytes32 typeHash = keccak256( - "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" - ); - _HASHED_NAME = hashedName; - _HASHED_VERSION = hashedVersion; - _CACHED_CHAIN_ID = block.chainid; - _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(typeHash, hashedName, hashedVersion); - _TYPE_HASH = typeHash; - } - - /** - * @dev Returns the domain separator for the current chain. - */ - function _domainSeparatorV4() internal view returns (bytes32) { - if (block.chainid == _CACHED_CHAIN_ID) { - return _CACHED_DOMAIN_SEPARATOR; - } else { - return _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME, _HASHED_VERSION); - } - } - - function _buildDomainSeparator( - bytes32 typeHash, - bytes32 nameHash, - bytes32 versionHash - ) private view returns (bytes32) { - return keccak256(abi.encode(typeHash, nameHash, versionHash, block.chainid, address(this))); - } - - /** - * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this - * function returns the hash of the fully encoded EIP712 message for this domain. - * - * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example: - * - * ```solidity - * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode( - * keccak256("Mail(address to,string contents)"), - * mailTo, - * keccak256(bytes(mailContents)) - * ))); - * address signer = ECDSA.recover(digest, signature); - * ``` - */ - function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) { - return ECDSA.toTypedDataHash(_domainSeparatorV4(), structHash); - } -} +import "./EIP712.sol"; diff --git a/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol b/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol index d1e5587..87f5381 100644 --- a/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol +++ b/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (utils/escrow/ConditionalEscrow.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol b/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol index c5ed191..48dd51a 100644 --- a/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol +++ b/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.7.0) (utils/escrow/Escrow.sol) pragma solidity ^0.8.0; @@ -33,6 +34,8 @@ contract Escrow is Ownable { /** * @dev Stores the sent amount as credit to be withdrawn. * @param payee The destination address of the funds. + * + * Emits a {Deposited} event. */ function deposit(address payee) public payable virtual onlyOwner { uint256 amount = msg.value; @@ -49,6 +52,8 @@ contract Escrow is Ownable { * checks-effects-interactions pattern or using {ReentrancyGuard}. * * @param payee The address whose funds will be withdrawn and transferred to. + * + * Emits a {Withdrawn} event. */ function withdraw(address payable payee) public virtual onlyOwner { uint256 payment = _deposits[payee]; diff --git a/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol b/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol index ac8ce60..0e9621f 100644 --- a/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol +++ b/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (utils/escrow/RefundEscrow.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol b/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol index fc9b52f..3bf5613 100644 --- a/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol +++ b/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol b/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol index dbd86a9..4831b65 100644 --- a/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol +++ b/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/introspection/ERC165Checker.sol) pragma solidity ^0.8.0; @@ -16,14 +17,14 @@ library ERC165Checker { bytes4 private constant _INTERFACE_ID_INVALID = 0xffffffff; /** - * @dev Returns true if `account` supports the {IERC165} interface, + * @dev Returns true if `account` supports the {IERC165} interface. */ function supportsERC165(address account) internal view returns (bool) { // Any contract that implements ERC165 must explicitly indicate support of // InterfaceId_ERC165 and explicitly indicate non-support of InterfaceId_Invalid return - _supportsERC165Interface(account, type(IERC165).interfaceId) && - !_supportsERC165Interface(account, _INTERFACE_ID_INVALID); + supportsERC165InterfaceUnchecked(account, type(IERC165).interfaceId) && + !supportsERC165InterfaceUnchecked(account, _INTERFACE_ID_INVALID); } /** @@ -34,7 +35,7 @@ library ERC165Checker { */ function supportsInterface(address account, bytes4 interfaceId) internal view returns (bool) { // query support of both ERC165 as per the spec and support of _interfaceId - return supportsERC165(account) && _supportsERC165Interface(account, interfaceId); + return supportsERC165(account) && supportsERC165InterfaceUnchecked(account, interfaceId); } /** @@ -47,11 +48,10 @@ library ERC165Checker { * * _Available since v3.4._ */ - function getSupportedInterfaces(address account, bytes4[] memory interfaceIds) - internal - view - returns (bool[] memory) - { + function getSupportedInterfaces( + address account, + bytes4[] memory interfaceIds + ) internal view returns (bool[] memory) { // an array of booleans corresponding to interfaceIds and whether they're supported or not bool[] memory interfaceIdsSupported = new bool[](interfaceIds.length); @@ -59,7 +59,7 @@ library ERC165Checker { if (supportsERC165(account)) { // query support of each interface in interfaceIds for (uint256 i = 0; i < interfaceIds.length; i++) { - interfaceIdsSupported[i] = _supportsERC165Interface(account, interfaceIds[i]); + interfaceIdsSupported[i] = supportsERC165InterfaceUnchecked(account, interfaceIds[i]); } } @@ -81,9 +81,9 @@ library ERC165Checker { return false; } - // query support of each interface in _interfaceIds + // query support of each interface in interfaceIds for (uint256 i = 0; i < interfaceIds.length; i++) { - if (!_supportsERC165Interface(account, interfaceIds[i])) { + if (!supportsERC165InterfaceUnchecked(account, interfaceIds[i])) { return false; } } @@ -101,12 +101,26 @@ library ERC165Checker { * @dev Assumes that account contains a contract that supports ERC165, otherwise * the behavior of this method is undefined. This precondition can be checked * with {supportsERC165}. + * + * Some precompiled contracts will falsely indicate support for a given interface, so caution + * should be exercised when using this function. + * * Interface identification is specified in ERC-165. */ - function _supportsERC165Interface(address account, bytes4 interfaceId) private view returns (bool) { + function supportsERC165InterfaceUnchecked(address account, bytes4 interfaceId) internal view returns (bool) { + // prepare call bytes memory encodedParams = abi.encodeWithSelector(IERC165.supportsInterface.selector, interfaceId); - (bool success, bytes memory result) = account.staticcall{gas: 30000}(encodedParams); - if (result.length < 32) return false; - return success && abi.decode(result, (bool)); + + // perform static call + bool success; + uint256 returnSize; + uint256 returnValue; + assembly { + success := staticcall(30000, account, add(encodedParams, 0x20), mload(encodedParams), 0x00, 0x20) + returnSize := returndatasize() + returnValue := mload(0x00) + } + + return success && returnSize >= 0x20 && returnValue > 0; } } diff --git a/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol b/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol index 02a97db..c99d9f3 100644 --- a/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol +++ b/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165Storage.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol b/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol index 15a8759..7a684ed 100644 --- a/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol +++ b/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/introspection/ERC1820Implementer.sol) pragma solidity ^0.8.0; @@ -11,6 +12,8 @@ import "./IERC1820Implementer.sol"; * declare their willingness to be implementers. * {IERC1820Registry-setInterfaceImplementer} should then be called for the * registration to be complete. + * + * CAUTION: This file is deprecated as of v4.9 and will be removed in the next major release. */ contract ERC1820Implementer is IERC1820Implementer { bytes32 private constant _ERC1820_ACCEPT_MAGIC = keccak256("ERC1820_ACCEPT_MAGIC"); @@ -20,13 +23,10 @@ contract ERC1820Implementer is IERC1820Implementer { /** * @dev See {IERC1820Implementer-canImplementInterfaceForAddress}. */ - function canImplementInterfaceForAddress(bytes32 interfaceHash, address account) - public - view - virtual - override - returns (bytes32) - { + function canImplementInterfaceForAddress( + bytes32 interfaceHash, + address account + ) public view virtual override returns (bytes32) { return _supportedInterfaces[interfaceHash][account] ? _ERC1820_ACCEPT_MAGIC : bytes32(0x00); } diff --git a/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol b/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol index 01c9c08..e8cdbdb 100644 --- a/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol +++ b/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol b/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol index a7c1ce0..c4d0b30 100644 --- a/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol +++ b/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC1820Implementer.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol b/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol index a93e37b..922df04 100644 --- a/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol +++ b/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/introspection/IERC1820Registry.sol) pragma solidity ^0.8.0; @@ -17,6 +18,10 @@ pragma solidity ^0.8.0; * For an in-depth explanation and source code analysis, see the EIP text. */ interface IERC1820Registry { + event InterfaceImplementerSet(address indexed account, bytes32 indexed interfaceHash, address indexed implementer); + + event ManagerChanged(address indexed account, address indexed newManager); + /** * @dev Sets `newManager` as the manager for `account`. A manager of an * account is able to set interface implementers for it. @@ -59,11 +64,7 @@ interface IERC1820Registry { * queried for support, unless `implementer` is the caller. See * {IERC1820Implementer-canImplementInterfaceForAddress}. */ - function setInterfaceImplementer( - address account, - bytes32 _interfaceHash, - address implementer - ) external; + function setInterfaceImplementer(address account, bytes32 _interfaceHash, address implementer) external; /** * @dev Returns the implementer of `interfaceHash` for `account`. If no such @@ -102,14 +103,10 @@ interface IERC1820Registry { function implementsERC165Interface(address account, bytes4 interfaceId) external view returns (bool); /** - * @notice Checks whether a contract implements an ERC165 interface or not without using nor updating the cache. + * @notice Checks whether a contract implements an ERC165 interface or not without using or updating the cache. * @param account Address of the contract to check. * @param interfaceId ERC165 interface to check. * @return True if `account` implements `interfaceId`, false otherwise. */ function implementsERC165InterfaceNoCache(address account, bytes4 interfaceId) external view returns (bool); - - event InterfaceImplementerSet(address indexed account, bytes32 indexed interfaceHash, address indexed implementer); - - event ManagerChanged(address indexed account, address indexed newManager); } diff --git a/node_modules/@openzeppelin/contracts/utils/math/Math.sol b/node_modules/@openzeppelin/contracts/utils/math/Math.sol index 7280bdd..551b1a5 100644 --- a/node_modules/@openzeppelin/contracts/utils/math/Math.sol +++ b/node_modules/@openzeppelin/contracts/utils/math/Math.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol) pragma solidity ^0.8.0; @@ -6,11 +7,17 @@ pragma solidity ^0.8.0; * @dev Standard math utilities missing in the Solidity language. */ library Math { + enum Rounding { + Down, // Toward negative infinity + Up, // Toward infinity + Zero // Toward zero + } + /** * @dev Returns the largest of two numbers. */ function max(uint256 a, uint256 b) internal pure returns (uint256) { - return a >= b ? a : b; + return a > b ? a : b; } /** @@ -37,6 +44,296 @@ library Math { */ function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b - 1) / b can overflow on addition, so we distribute. - return a / b + (a % b == 0 ? 0 : 1); + return a == 0 ? 0 : (a - 1) / b + 1; + } + + /** + * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0 + * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) + * with further edits by Uniswap Labs also under MIT license. + */ + function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) { + unchecked { + // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use + // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256 + // variables such that product = prod1 * 2^256 + prod0. + uint256 prod0; // Least significant 256 bits of the product + uint256 prod1; // Most significant 256 bits of the product + assembly { + let mm := mulmod(x, y, not(0)) + prod0 := mul(x, y) + prod1 := sub(sub(mm, prod0), lt(mm, prod0)) + } + + // Handle non-overflow cases, 256 by 256 division. + if (prod1 == 0) { + // Solidity will revert if denominator == 0, unlike the div opcode on its own. + // The surrounding unchecked block does not change this fact. + // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic. + return prod0 / denominator; + } + + // Make sure the result is less than 2^256. Also prevents denominator == 0. + require(denominator > prod1, "Math: mulDiv overflow"); + + /////////////////////////////////////////////// + // 512 by 256 division. + /////////////////////////////////////////////// + + // Make division exact by subtracting the remainder from [prod1 prod0]. + uint256 remainder; + assembly { + // Compute remainder using mulmod. + remainder := mulmod(x, y, denominator) + + // Subtract 256 bit number from 512 bit number. + prod1 := sub(prod1, gt(remainder, prod0)) + prod0 := sub(prod0, remainder) + } + + // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1. + // See https://cs.stackexchange.com/q/138556/92363. + + // Does not overflow because the denominator cannot be zero at this stage in the function. + uint256 twos = denominator & (~denominator + 1); + assembly { + // Divide denominator by twos. + denominator := div(denominator, twos) + + // Divide [prod1 prod0] by twos. + prod0 := div(prod0, twos) + + // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one. + twos := add(div(sub(0, twos), twos), 1) + } + + // Shift in bits from prod1 into prod0. + prod0 |= prod1 * twos; + + // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such + // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for + // four bits. That is, denominator * inv = 1 mod 2^4. + uint256 inverse = (3 * denominator) ^ 2; + + // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works + // in modular arithmetic, doubling the correct bits in each step. + inverse *= 2 - denominator * inverse; // inverse mod 2^8 + inverse *= 2 - denominator * inverse; // inverse mod 2^16 + inverse *= 2 - denominator * inverse; // inverse mod 2^32 + inverse *= 2 - denominator * inverse; // inverse mod 2^64 + inverse *= 2 - denominator * inverse; // inverse mod 2^128 + inverse *= 2 - denominator * inverse; // inverse mod 2^256 + + // Because the division is now exact we can divide by multiplying with the modular inverse of denominator. + // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is + // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1 + // is no longer required. + result = prod0 * inverse; + return result; + } + } + + /** + * @notice Calculates x * y / denominator with full precision, following the selected rounding direction. + */ + function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) { + uint256 result = mulDiv(x, y, denominator); + if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) { + result += 1; + } + return result; + } + + /** + * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down. + * + * Inspired by Henry S. Warren, Jr.'s "Hacker's Delight" (Chapter 11). + */ + function sqrt(uint256 a) internal pure returns (uint256) { + if (a == 0) { + return 0; + } + + // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target. + // + // We know that the "msb" (most significant bit) of our target number `a` is a power of 2 such that we have + // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`. + // + // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)` + // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))` + // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)` + // + // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit. + uint256 result = 1 << (log2(a) >> 1); + + // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128, + // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at + // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision + // into the expected uint128 result. + unchecked { + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + return min(result, a / result); + } + } + + /** + * @notice Calculates sqrt(a), following the selected rounding direction. + */ + function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) { + unchecked { + uint256 result = sqrt(a); + return result + (rounding == Rounding.Up && result * result < a ? 1 : 0); + } + } + + /** + * @dev Return the log in base 2, rounded down, of a positive value. + * Returns 0 if given 0. + */ + function log2(uint256 value) internal pure returns (uint256) { + uint256 result = 0; + unchecked { + if (value >> 128 > 0) { + value >>= 128; + result += 128; + } + if (value >> 64 > 0) { + value >>= 64; + result += 64; + } + if (value >> 32 > 0) { + value >>= 32; + result += 32; + } + if (value >> 16 > 0) { + value >>= 16; + result += 16; + } + if (value >> 8 > 0) { + value >>= 8; + result += 8; + } + if (value >> 4 > 0) { + value >>= 4; + result += 4; + } + if (value >> 2 > 0) { + value >>= 2; + result += 2; + } + if (value >> 1 > 0) { + result += 1; + } + } + return result; + } + + /** + * @dev Return the log in base 2, following the selected rounding direction, of a positive value. + * Returns 0 if given 0. + */ + function log2(uint256 value, Rounding rounding) internal pure returns (uint256) { + unchecked { + uint256 result = log2(value); + return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0); + } + } + + /** + * @dev Return the log in base 10, rounded down, of a positive value. + * Returns 0 if given 0. + */ + function log10(uint256 value) internal pure returns (uint256) { + uint256 result = 0; + unchecked { + if (value >= 10 ** 64) { + value /= 10 ** 64; + result += 64; + } + if (value >= 10 ** 32) { + value /= 10 ** 32; + result += 32; + } + if (value >= 10 ** 16) { + value /= 10 ** 16; + result += 16; + } + if (value >= 10 ** 8) { + value /= 10 ** 8; + result += 8; + } + if (value >= 10 ** 4) { + value /= 10 ** 4; + result += 4; + } + if (value >= 10 ** 2) { + value /= 10 ** 2; + result += 2; + } + if (value >= 10 ** 1) { + result += 1; + } + } + return result; + } + + /** + * @dev Return the log in base 10, following the selected rounding direction, of a positive value. + * Returns 0 if given 0. + */ + function log10(uint256 value, Rounding rounding) internal pure returns (uint256) { + unchecked { + uint256 result = log10(value); + return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0); + } + } + + /** + * @dev Return the log in base 256, rounded down, of a positive value. + * Returns 0 if given 0. + * + * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string. + */ + function log256(uint256 value) internal pure returns (uint256) { + uint256 result = 0; + unchecked { + if (value >> 128 > 0) { + value >>= 128; + result += 16; + } + if (value >> 64 > 0) { + value >>= 64; + result += 8; + } + if (value >> 32 > 0) { + value >>= 32; + result += 4; + } + if (value >> 16 > 0) { + value >>= 16; + result += 2; + } + if (value >> 8 > 0) { + result += 1; + } + } + return result; + } + + /** + * @dev Return the log in base 256, following the selected rounding direction, of a positive value. + * Returns 0 if given 0. + */ + function log256(uint256 value, Rounding rounding) internal pure returns (uint256) { + unchecked { + uint256 result = log256(value); + return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0); + } } } diff --git a/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol b/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol index 8f54e39..435a5f9 100644 --- a/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol +++ b/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol @@ -1,4 +1,6 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol) +// This file was procedurally generated from scripts/generate/templates/SafeCast.js. pragma solidity ^0.8.0; @@ -18,6 +20,57 @@ pragma solidity ^0.8.0; * all math on `uint256` and `int256` and then downcasting. */ library SafeCast { + /** + * @dev Returns the downcasted uint248 from uint256, reverting on + * overflow (when the input is greater than largest uint248). + * + * Counterpart to Solidity's `uint248` operator. + * + * Requirements: + * + * - input must fit into 248 bits + * + * _Available since v4.7._ + */ + function toUint248(uint256 value) internal pure returns (uint248) { + require(value <= type(uint248).max, "SafeCast: value doesn't fit in 248 bits"); + return uint248(value); + } + + /** + * @dev Returns the downcasted uint240 from uint256, reverting on + * overflow (when the input is greater than largest uint240). + * + * Counterpart to Solidity's `uint240` operator. + * + * Requirements: + * + * - input must fit into 240 bits + * + * _Available since v4.7._ + */ + function toUint240(uint256 value) internal pure returns (uint240) { + require(value <= type(uint240).max, "SafeCast: value doesn't fit in 240 bits"); + return uint240(value); + } + + /** + * @dev Returns the downcasted uint232 from uint256, reverting on + * overflow (when the input is greater than largest uint232). + * + * Counterpart to Solidity's `uint232` operator. + * + * Requirements: + * + * - input must fit into 232 bits + * + * _Available since v4.7._ + */ + function toUint232(uint256 value) internal pure returns (uint232) { + require(value <= type(uint232).max, "SafeCast: value doesn't fit in 232 bits"); + return uint232(value); + } + /** * @dev Returns the downcasted uint224 from uint256, reverting on * overflow (when the input is greater than largest uint224). @@ -27,12 +80,201 @@ library SafeCast { * Requirements: * * - input must fit into 224 bits + * + * _Available since v4.2._ */ function toUint224(uint256 value) internal pure returns (uint224) { require(value <= type(uint224).max, "SafeCast: value doesn't fit in 224 bits"); return uint224(value); } + /** + * @dev Returns the downcasted uint216 from uint256, reverting on + * overflow (when the input is greater than largest uint216). + * + * Counterpart to Solidity's `uint216` operator. + * + * Requirements: + * + * - input must fit into 216 bits + * + * _Available since v4.7._ + */ + function toUint216(uint256 value) internal pure returns (uint216) { + require(value <= type(uint216).max, "SafeCast: value doesn't fit in 216 bits"); + return uint216(value); + } + + /** + * @dev Returns the downcasted uint208 from uint256, reverting on + * overflow (when the input is greater than largest uint208). + * + * Counterpart to Solidity's `uint208` operator. + * + * Requirements: + * + * - input must fit into 208 bits + * + * _Available since v4.7._ + */ + function toUint208(uint256 value) internal pure returns (uint208) { + require(value <= type(uint208).max, "SafeCast: value doesn't fit in 208 bits"); + return uint208(value); + } + + /** + * @dev Returns the downcasted uint200 from uint256, reverting on + * overflow (when the input is greater than largest uint200). + * + * Counterpart to Solidity's `uint200` operator. + * + * Requirements: + * + * - input must fit into 200 bits + * + * _Available since v4.7._ + */ + function toUint200(uint256 value) internal pure returns (uint200) { + require(value <= type(uint200).max, "SafeCast: value doesn't fit in 200 bits"); + return uint200(value); + } + + /** + * @dev Returns the downcasted uint192 from uint256, reverting on + * overflow (when the input is greater than largest uint192). + * + * Counterpart to Solidity's `uint192` operator. + * + * Requirements: + * + * - input must fit into 192 bits + * + * _Available since v4.7._ + */ + function toUint192(uint256 value) internal pure returns (uint192) { + require(value <= type(uint192).max, "SafeCast: value doesn't fit in 192 bits"); + return uint192(value); + } + + /** + * @dev Returns the downcasted uint184 from uint256, reverting on + * overflow (when the input is greater than largest uint184). + * + * Counterpart to Solidity's `uint184` operator. + * + * Requirements: + * + * - input must fit into 184 bits + * + * _Available since v4.7._ + */ + function toUint184(uint256 value) internal pure returns (uint184) { + require(value <= type(uint184).max, "SafeCast: value doesn't fit in 184 bits"); + return uint184(value); + } + + /** + * @dev Returns the downcasted uint176 from uint256, reverting on + * overflow (when the input is greater than largest uint176). + * + * Counterpart to Solidity's `uint176` operator. + * + * Requirements: + * + * - input must fit into 176 bits + * + * _Available since v4.7._ + */ + function toUint176(uint256 value) internal pure returns (uint176) { + require(value <= type(uint176).max, "SafeCast: value doesn't fit in 176 bits"); + return uint176(value); + } + + /** + * @dev Returns the downcasted uint168 from uint256, reverting on + * overflow (when the input is greater than largest uint168). + * + * Counterpart to Solidity's `uint168` operator. + * + * Requirements: + * + * - input must fit into 168 bits + * + * _Available since v4.7._ + */ + function toUint168(uint256 value) internal pure returns (uint168) { + require(value <= type(uint168).max, "SafeCast: value doesn't fit in 168 bits"); + return uint168(value); + } + + /** + * @dev Returns the downcasted uint160 from uint256, reverting on + * overflow (when the input is greater than largest uint160). + * + * Counterpart to Solidity's `uint160` operator. + * + * Requirements: + * + * - input must fit into 160 bits + * + * _Available since v4.7._ + */ + function toUint160(uint256 value) internal pure returns (uint160) { + require(value <= type(uint160).max, "SafeCast: value doesn't fit in 160 bits"); + return uint160(value); + } + + /** + * @dev Returns the downcasted uint152 from uint256, reverting on + * overflow (when the input is greater than largest uint152). + * + * Counterpart to Solidity's `uint152` operator. + * + * Requirements: + * + * - input must fit into 152 bits + * + * _Available since v4.7._ + */ + function toUint152(uint256 value) internal pure returns (uint152) { + require(value <= type(uint152).max, "SafeCast: value doesn't fit in 152 bits"); + return uint152(value); + } + + /** + * @dev Returns the downcasted uint144 from uint256, reverting on + * overflow (when the input is greater than largest uint144). + * + * Counterpart to Solidity's `uint144` operator. + * + * Requirements: + * + * - input must fit into 144 bits + * + * _Available since v4.7._ + */ + function toUint144(uint256 value) internal pure returns (uint144) { + require(value <= type(uint144).max, "SafeCast: value doesn't fit in 144 bits"); + return uint144(value); + } + + /** + * @dev Returns the downcasted uint136 from uint256, reverting on + * overflow (when the input is greater than largest uint136). + * + * Counterpart to Solidity's `uint136` operator. + * + * Requirements: + * + * - input must fit into 136 bits + * + * _Available since v4.7._ + */ + function toUint136(uint256 value) internal pure returns (uint136) { + require(value <= type(uint136).max, "SafeCast: value doesn't fit in 136 bits"); + return uint136(value); + } + /** * @dev Returns the downcasted uint128 from uint256, reverting on * overflow (when the input is greater than largest uint128). @@ -42,12 +284,65 @@ library SafeCast { * Requirements: * * - input must fit into 128 bits + * + * _Available since v2.5._ */ function toUint128(uint256 value) internal pure returns (uint128) { require(value <= type(uint128).max, "SafeCast: value doesn't fit in 128 bits"); return uint128(value); } + /** + * @dev Returns the downcasted uint120 from uint256, reverting on + * overflow (when the input is greater than largest uint120). + * + * Counterpart to Solidity's `uint120` operator. + * + * Requirements: + * + * - input must fit into 120 bits + * + * _Available since v4.7._ + */ + function toUint120(uint256 value) internal pure returns (uint120) { + require(value <= type(uint120).max, "SafeCast: value doesn't fit in 120 bits"); + return uint120(value); + } + + /** + * @dev Returns the downcasted uint112 from uint256, reverting on + * overflow (when the input is greater than largest uint112). + * + * Counterpart to Solidity's `uint112` operator. + * + * Requirements: + * + * - input must fit into 112 bits + * + * _Available since v4.7._ + */ + function toUint112(uint256 value) internal pure returns (uint112) { + require(value <= type(uint112).max, "SafeCast: value doesn't fit in 112 bits"); + return uint112(value); + } + + /** + * @dev Returns the downcasted uint104 from uint256, reverting on + * overflow (when the input is greater than largest uint104). + * + * Counterpart to Solidity's `uint104` operator. + * + * Requirements: + * + * - input must fit into 104 bits + * + * _Available since v4.7._ + */ + function toUint104(uint256 value) internal pure returns (uint104) { + require(value <= type(uint104).max, "SafeCast: value doesn't fit in 104 bits"); + return uint104(value); + } + /** * @dev Returns the downcasted uint96 from uint256, reverting on * overflow (when the input is greater than largest uint96). @@ -57,12 +352,65 @@ library SafeCast { * Requirements: * * - input must fit into 96 bits + * + * _Available since v4.2._ */ function toUint96(uint256 value) internal pure returns (uint96) { require(value <= type(uint96).max, "SafeCast: value doesn't fit in 96 bits"); return uint96(value); } + /** + * @dev Returns the downcasted uint88 from uint256, reverting on + * overflow (when the input is greater than largest uint88). + * + * Counterpart to Solidity's `uint88` operator. + * + * Requirements: + * + * - input must fit into 88 bits + * + * _Available since v4.7._ + */ + function toUint88(uint256 value) internal pure returns (uint88) { + require(value <= type(uint88).max, "SafeCast: value doesn't fit in 88 bits"); + return uint88(value); + } + + /** + * @dev Returns the downcasted uint80 from uint256, reverting on + * overflow (when the input is greater than largest uint80). + * + * Counterpart to Solidity's `uint80` operator. + * + * Requirements: + * + * - input must fit into 80 bits + * + * _Available since v4.7._ + */ + function toUint80(uint256 value) internal pure returns (uint80) { + require(value <= type(uint80).max, "SafeCast: value doesn't fit in 80 bits"); + return uint80(value); + } + + /** + * @dev Returns the downcasted uint72 from uint256, reverting on + * overflow (when the input is greater than largest uint72). + * + * Counterpart to Solidity's `uint72` operator. + * + * Requirements: + * + * - input must fit into 72 bits + * + * _Available since v4.7._ + */ + function toUint72(uint256 value) internal pure returns (uint72) { + require(value <= type(uint72).max, "SafeCast: value doesn't fit in 72 bits"); + return uint72(value); + } + /** * @dev Returns the downcasted uint64 from uint256, reverting on * overflow (when the input is greater than largest uint64). @@ -72,12 +420,65 @@ library SafeCast { * Requirements: * * - input must fit into 64 bits + * + * _Available since v2.5._ */ function toUint64(uint256 value) internal pure returns (uint64) { require(value <= type(uint64).max, "SafeCast: value doesn't fit in 64 bits"); return uint64(value); } + /** + * @dev Returns the downcasted uint56 from uint256, reverting on + * overflow (when the input is greater than largest uint56). + * + * Counterpart to Solidity's `uint56` operator. + * + * Requirements: + * + * - input must fit into 56 bits + * + * _Available since v4.7._ + */ + function toUint56(uint256 value) internal pure returns (uint56) { + require(value <= type(uint56).max, "SafeCast: value doesn't fit in 56 bits"); + return uint56(value); + } + + /** + * @dev Returns the downcasted uint48 from uint256, reverting on + * overflow (when the input is greater than largest uint48). + * + * Counterpart to Solidity's `uint48` operator. + * + * Requirements: + * + * - input must fit into 48 bits + * + * _Available since v4.7._ + */ + function toUint48(uint256 value) internal pure returns (uint48) { + require(value <= type(uint48).max, "SafeCast: value doesn't fit in 48 bits"); + return uint48(value); + } + + /** + * @dev Returns the downcasted uint40 from uint256, reverting on + * overflow (when the input is greater than largest uint40). + * + * Counterpart to Solidity's `uint40` operator. + * + * Requirements: + * + * - input must fit into 40 bits + * + * _Available since v4.7._ + */ + function toUint40(uint256 value) internal pure returns (uint40) { + require(value <= type(uint40).max, "SafeCast: value doesn't fit in 40 bits"); + return uint40(value); + } + /** * @dev Returns the downcasted uint32 from uint256, reverting on * overflow (when the input is greater than largest uint32). @@ -87,12 +488,31 @@ library SafeCast { * Requirements: * * - input must fit into 32 bits + * + * _Available since v2.5._ */ function toUint32(uint256 value) internal pure returns (uint32) { require(value <= type(uint32).max, "SafeCast: value doesn't fit in 32 bits"); return uint32(value); } + /** + * @dev Returns the downcasted uint24 from uint256, reverting on + * overflow (when the input is greater than largest uint24). + * + * Counterpart to Solidity's `uint24` operator. + * + * Requirements: + * + * - input must fit into 24 bits + * + * _Available since v4.7._ + */ + function toUint24(uint256 value) internal pure returns (uint24) { + require(value <= type(uint24).max, "SafeCast: value doesn't fit in 24 bits"); + return uint24(value); + } + /** * @dev Returns the downcasted uint16 from uint256, reverting on * overflow (when the input is greater than largest uint16). @@ -102,6 +522,8 @@ library SafeCast { * Requirements: * * - input must fit into 16 bits + * + * _Available since v2.5._ */ function toUint16(uint256 value) internal pure returns (uint16) { require(value <= type(uint16).max, "SafeCast: value doesn't fit in 16 bits"); @@ -116,7 +538,9 @@ library SafeCast { * * Requirements: * - * - input must fit into 8 bits. + * - input must fit into 8 bits + * + * _Available since v2.5._ */ function toUint8(uint256 value) internal pure returns (uint8) { require(value <= type(uint8).max, "SafeCast: value doesn't fit in 8 bits"); @@ -129,12 +553,284 @@ library SafeCast { * Requirements: * * - input must be greater than or equal to 0. + * + * _Available since v3.0._ */ function toUint256(int256 value) internal pure returns (uint256) { require(value >= 0, "SafeCast: value must be positive"); return uint256(value); } + /** + * @dev Returns the downcasted int248 from int256, reverting on + * overflow (when the input is less than smallest int248 or + * greater than largest int248). + * + * Counterpart to Solidity's `int248` operator. + * + * Requirements: + * + * - input must fit into 248 bits + * + * _Available since v4.7._ + */ + function toInt248(int256 value) internal pure returns (int248 downcasted) { + downcasted = int248(value); + require(downcasted == value, "SafeCast: value doesn't fit in 248 bits"); + } + + /** + * @dev Returns the downcasted int240 from int256, reverting on + * overflow (when the input is less than smallest int240 or + * greater than largest int240). + * + * Counterpart to Solidity's `int240` operator. + * + * Requirements: + * + * - input must fit into 240 bits + * + * _Available since v4.7._ + */ + function toInt240(int256 value) internal pure returns (int240 downcasted) { + downcasted = int240(value); + require(downcasted == value, "SafeCast: value doesn't fit in 240 bits"); + } + + /** + * @dev Returns the downcasted int232 from int256, reverting on + * overflow (when the input is less than smallest int232 or + * greater than largest int232). + * + * Counterpart to Solidity's `int232` operator. + * + * Requirements: + * + * - input must fit into 232 bits + * + * _Available since v4.7._ + */ + function toInt232(int256 value) internal pure returns (int232 downcasted) { + downcasted = int232(value); + require(downcasted == value, "SafeCast: value doesn't fit in 232 bits"); + } + + /** + * @dev Returns the downcasted int224 from int256, reverting on + * overflow (when the input is less than smallest int224 or + * greater than largest int224). + * + * Counterpart to Solidity's `int224` operator. + * + * Requirements: + * + * - input must fit into 224 bits + * + * _Available since v4.7._ + */ + function toInt224(int256 value) internal pure returns (int224 downcasted) { + downcasted = int224(value); + require(downcasted == value, "SafeCast: value doesn't fit in 224 bits"); + } + + /** + * @dev Returns the downcasted int216 from int256, reverting on + * overflow (when the input is less than smallest int216 or + * greater than largest int216). + * + * Counterpart to Solidity's `int216` operator. + * + * Requirements: + * + * - input must fit into 216 bits + * + * _Available since v4.7._ + */ + function toInt216(int256 value) internal pure returns (int216 downcasted) { + downcasted = int216(value); + require(downcasted == value, "SafeCast: value doesn't fit in 216 bits"); + } + + /** + * @dev Returns the downcasted int208 from int256, reverting on + * overflow (when the input is less than smallest int208 or + * greater than largest int208). + * + * Counterpart to Solidity's `int208` operator. + * + * Requirements: + * + * - input must fit into 208 bits + * + * _Available since v4.7._ + */ + function toInt208(int256 value) internal pure returns (int208 downcasted) { + downcasted = int208(value); + require(downcasted == value, "SafeCast: value doesn't fit in 208 bits"); + } + + /** + * @dev Returns the downcasted int200 from int256, reverting on + * overflow (when the input is less than smallest int200 or + * greater than largest int200). + * + * Counterpart to Solidity's `int200` operator. + * + * Requirements: + * + * - input must fit into 200 bits + * + * _Available since v4.7._ + */ + function toInt200(int256 value) internal pure returns (int200 downcasted) { + downcasted = int200(value); + require(downcasted == value, "SafeCast: value doesn't fit in 200 bits"); + } + + /** + * @dev Returns the downcasted int192 from int256, reverting on + * overflow (when the input is less than smallest int192 or + * greater than largest int192). + * + * Counterpart to Solidity's `int192` operator. + * + * Requirements: + * + * - input must fit into 192 bits + * + * _Available since v4.7._ + */ + function toInt192(int256 value) internal pure returns (int192 downcasted) { + downcasted = int192(value); + require(downcasted == value, "SafeCast: value doesn't fit in 192 bits"); + } + + /** + * @dev Returns the downcasted int184 from int256, reverting on + * overflow (when the input is less than smallest int184 or + * greater than largest int184). + * + * Counterpart to Solidity's `int184` operator. + * + * Requirements: + * + * - input must fit into 184 bits + * + * _Available since v4.7._ + */ + function toInt184(int256 value) internal pure returns (int184 downcasted) { + downcasted = int184(value); + require(downcasted == value, "SafeCast: value doesn't fit in 184 bits"); + } + + /** + * @dev Returns the downcasted int176 from int256, reverting on + * overflow (when the input is less than smallest int176 or + * greater than largest int176). + * + * Counterpart to Solidity's `int176` operator. + * + * Requirements: + * + * - input must fit into 176 bits + * + * _Available since v4.7._ + */ + function toInt176(int256 value) internal pure returns (int176 downcasted) { + downcasted = int176(value); + require(downcasted == value, "SafeCast: value doesn't fit in 176 bits"); + } + + /** + * @dev Returns the downcasted int168 from int256, reverting on + * overflow (when the input is less than smallest int168 or + * greater than largest int168). + * + * Counterpart to Solidity's `int168` operator. + * + * Requirements: + * + * - input must fit into 168 bits + * + * _Available since v4.7._ + */ + function toInt168(int256 value) internal pure returns (int168 downcasted) { + downcasted = int168(value); + require(downcasted == value, "SafeCast: value doesn't fit in 168 bits"); + } + + /** + * @dev Returns the downcasted int160 from int256, reverting on + * overflow (when the input is less than smallest int160 or + * greater than largest int160). + * + * Counterpart to Solidity's `int160` operator. + * + * Requirements: + * + * - input must fit into 160 bits + * + * _Available since v4.7._ + */ + function toInt160(int256 value) internal pure returns (int160 downcasted) { + downcasted = int160(value); + require(downcasted == value, "SafeCast: value doesn't fit in 160 bits"); + } + + /** + * @dev Returns the downcasted int152 from int256, reverting on + * overflow (when the input is less than smallest int152 or + * greater than largest int152). + * + * Counterpart to Solidity's `int152` operator. + * + * Requirements: + * + * - input must fit into 152 bits + * + * _Available since v4.7._ + */ + function toInt152(int256 value) internal pure returns (int152 downcasted) { + downcasted = int152(value); + require(downcasted == value, "SafeCast: value doesn't fit in 152 bits"); + } + + /** + * @dev Returns the downcasted int144 from int256, reverting on + * overflow (when the input is less than smallest int144 or + * greater than largest int144). + * + * Counterpart to Solidity's `int144` operator. + * + * Requirements: + * + * - input must fit into 144 bits + * + * _Available since v4.7._ + */ + function toInt144(int256 value) internal pure returns (int144 downcasted) { + downcasted = int144(value); + require(downcasted == value, "SafeCast: value doesn't fit in 144 bits"); + } + + /** + * @dev Returns the downcasted int136 from int256, reverting on + * overflow (when the input is less than smallest int136 or + * greater than largest int136). + * + * Counterpart to Solidity's `int136` operator. + * + * Requirements: + * + * - input must fit into 136 bits + * + * _Available since v4.7._ + */ + function toInt136(int256 value) internal pure returns (int136 downcasted) { + downcasted = int136(value); + require(downcasted == value, "SafeCast: value doesn't fit in 136 bits"); + } + /** * @dev Returns the downcasted int128 from int256, reverting on * overflow (when the input is less than smallest int128 or @@ -148,9 +844,135 @@ library SafeCast { * * _Available since v3.1._ */ - function toInt128(int256 value) internal pure returns (int128) { - require(value >= type(int128).min && value <= type(int128).max, "SafeCast: value doesn't fit in 128 bits"); - return int128(value); + function toInt128(int256 value) internal pure returns (int128 downcasted) { + downcasted = int128(value); + require(downcasted == value, "SafeCast: value doesn't fit in 128 bits"); + } + + /** + * @dev Returns the downcasted int120 from int256, reverting on + * overflow (when the input is less than smallest int120 or + * greater than largest int120). + * + * Counterpart to Solidity's `int120` operator. + * + * Requirements: + * + * - input must fit into 120 bits + * + * _Available since v4.7._ + */ + function toInt120(int256 value) internal pure returns (int120 downcasted) { + downcasted = int120(value); + require(downcasted == value, "SafeCast: value doesn't fit in 120 bits"); + } + + /** + * @dev Returns the downcasted int112 from int256, reverting on + * overflow (when the input is less than smallest int112 or + * greater than largest int112). + * + * Counterpart to Solidity's `int112` operator. + * + * Requirements: + * + * - input must fit into 112 bits + * + * _Available since v4.7._ + */ + function toInt112(int256 value) internal pure returns (int112 downcasted) { + downcasted = int112(value); + require(downcasted == value, "SafeCast: value doesn't fit in 112 bits"); + } + + /** + * @dev Returns the downcasted int104 from int256, reverting on + * overflow (when the input is less than smallest int104 or + * greater than largest int104). + * + * Counterpart to Solidity's `int104` operator. + * + * Requirements: + * + * - input must fit into 104 bits + * + * _Available since v4.7._ + */ + function toInt104(int256 value) internal pure returns (int104 downcasted) { + downcasted = int104(value); + require(downcasted == value, "SafeCast: value doesn't fit in 104 bits"); + } + + /** + * @dev Returns the downcasted int96 from int256, reverting on + * overflow (when the input is less than smallest int96 or + * greater than largest int96). + * + * Counterpart to Solidity's `int96` operator. + * + * Requirements: + * + * - input must fit into 96 bits + * + * _Available since v4.7._ + */ + function toInt96(int256 value) internal pure returns (int96 downcasted) { + downcasted = int96(value); + require(downcasted == value, "SafeCast: value doesn't fit in 96 bits"); + } + + /** + * @dev Returns the downcasted int88 from int256, reverting on + * overflow (when the input is less than smallest int88 or + * greater than largest int88). + * + * Counterpart to Solidity's `int88` operator. + * + * Requirements: + * + * - input must fit into 88 bits + * + * _Available since v4.7._ + */ + function toInt88(int256 value) internal pure returns (int88 downcasted) { + downcasted = int88(value); + require(downcasted == value, "SafeCast: value doesn't fit in 88 bits"); + } + + /** + * @dev Returns the downcasted int80 from int256, reverting on + * overflow (when the input is less than smallest int80 or + * greater than largest int80). + * + * Counterpart to Solidity's `int80` operator. + * + * Requirements: + * + * - input must fit into 80 bits + * + * _Available since v4.7._ + */ + function toInt80(int256 value) internal pure returns (int80 downcasted) { + downcasted = int80(value); + require(downcasted == value, "SafeCast: value doesn't fit in 80 bits"); + } + + /** + * @dev Returns the downcasted int72 from int256, reverting on + * overflow (when the input is less than smallest int72 or + * greater than largest int72). + * + * Counterpart to Solidity's `int72` operator. + * + * Requirements: + * + * - input must fit into 72 bits + * + * _Available since v4.7._ + */ + function toInt72(int256 value) internal pure returns (int72 downcasted) { + downcasted = int72(value); + require(downcasted == value, "SafeCast: value doesn't fit in 72 bits"); } /** @@ -166,9 +988,63 @@ library SafeCast { * * _Available since v3.1._ */ - function toInt64(int256 value) internal pure returns (int64) { - require(value >= type(int64).min && value <= type(int64).max, "SafeCast: value doesn't fit in 64 bits"); - return int64(value); + function toInt64(int256 value) internal pure returns (int64 downcasted) { + downcasted = int64(value); + require(downcasted == value, "SafeCast: value doesn't fit in 64 bits"); + } + + /** + * @dev Returns the downcasted int56 from int256, reverting on + * overflow (when the input is less than smallest int56 or + * greater than largest int56). + * + * Counterpart to Solidity's `int56` operator. + * + * Requirements: + * + * - input must fit into 56 bits + * + * _Available since v4.7._ + */ + function toInt56(int256 value) internal pure returns (int56 downcasted) { + downcasted = int56(value); + require(downcasted == value, "SafeCast: value doesn't fit in 56 bits"); + } + + /** + * @dev Returns the downcasted int48 from int256, reverting on + * overflow (when the input is less than smallest int48 or + * greater than largest int48). + * + * Counterpart to Solidity's `int48` operator. + * + * Requirements: + * + * - input must fit into 48 bits + * + * _Available since v4.7._ + */ + function toInt48(int256 value) internal pure returns (int48 downcasted) { + downcasted = int48(value); + require(downcasted == value, "SafeCast: value doesn't fit in 48 bits"); + } + + /** + * @dev Returns the downcasted int40 from int256, reverting on + * overflow (when the input is less than smallest int40 or + * greater than largest int40). + * + * Counterpart to Solidity's `int40` operator. + * + * Requirements: + * + * - input must fit into 40 bits + * + * _Available since v4.7._ + */ + function toInt40(int256 value) internal pure returns (int40 downcasted) { + downcasted = int40(value); + require(downcasted == value, "SafeCast: value doesn't fit in 40 bits"); } /** @@ -184,9 +1060,27 @@ library SafeCast { * * _Available since v3.1._ */ - function toInt32(int256 value) internal pure returns (int32) { - require(value >= type(int32).min && value <= type(int32).max, "SafeCast: value doesn't fit in 32 bits"); - return int32(value); + function toInt32(int256 value) internal pure returns (int32 downcasted) { + downcasted = int32(value); + require(downcasted == value, "SafeCast: value doesn't fit in 32 bits"); + } + + /** + * @dev Returns the downcasted int24 from int256, reverting on + * overflow (when the input is less than smallest int24 or + * greater than largest int24). + * + * Counterpart to Solidity's `int24` operator. + * + * Requirements: + * + * - input must fit into 24 bits + * + * _Available since v4.7._ + */ + function toInt24(int256 value) internal pure returns (int24 downcasted) { + downcasted = int24(value); + require(downcasted == value, "SafeCast: value doesn't fit in 24 bits"); } /** @@ -202,9 +1096,9 @@ library SafeCast { * * _Available since v3.1._ */ - function toInt16(int256 value) internal pure returns (int16) { - require(value >= type(int16).min && value <= type(int16).max, "SafeCast: value doesn't fit in 16 bits"); - return int16(value); + function toInt16(int256 value) internal pure returns (int16 downcasted) { + downcasted = int16(value); + require(downcasted == value, "SafeCast: value doesn't fit in 16 bits"); } /** @@ -216,13 +1110,13 @@ library SafeCast { * * Requirements: * - * - input must fit into 8 bits. + * - input must fit into 8 bits * * _Available since v3.1._ */ - function toInt8(int256 value) internal pure returns (int8) { - require(value >= type(int8).min && value <= type(int8).max, "SafeCast: value doesn't fit in 8 bits"); - return int8(value); + function toInt8(int256 value) internal pure returns (int8 downcasted) { + downcasted = int8(value); + require(downcasted == value, "SafeCast: value doesn't fit in 8 bits"); } /** @@ -231,6 +1125,8 @@ library SafeCast { * Requirements: * * - input must be less than or equal to maxInt256. + * + * _Available since v3.0._ */ function toInt256(uint256 value) internal pure returns (int256) { // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive diff --git a/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol b/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol index 112eed1..f7315a6 100644 --- a/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol +++ b/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol) pragma solidity ^0.8.0; @@ -9,7 +10,7 @@ pragma solidity ^0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations. * - * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler + * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { @@ -27,7 +28,7 @@ library SafeMath { } /** - * @dev Returns the substraction of two unsigned integers, with an overflow flag. + * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ @@ -164,11 +165,7 @@ library SafeMath { * * - Subtraction cannot overflow. */ - function sub( - uint256 a, - uint256 b, - string memory errorMessage - ) internal pure returns (uint256) { + function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; @@ -187,11 +184,7 @@ library SafeMath { * * - The divisor cannot be zero. */ - function div( - uint256 a, - uint256 b, - string memory errorMessage - ) internal pure returns (uint256) { + function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; @@ -213,11 +206,7 @@ library SafeMath { * * - The divisor cannot be zero. */ - function mod( - uint256 a, - uint256 b, - string memory errorMessage - ) internal pure returns (uint256) { + function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; diff --git a/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol b/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol index d54b8ff..6704d4c 100644 --- a/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol +++ b/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.1 (utils/math/SignedSafeMath.sol) pragma solidity ^0.8.0; diff --git a/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol b/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol index eff8180..2567fce 100644 --- a/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol +++ b/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol @@ -1,9 +1,10 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/structs/BitMaps.sol) pragma solidity ^0.8.0; /** * @dev Library for managing uint256 to bool mapping in a compact and efficient way, providing the keys are sequential. - * Largelly inspired by Uniswap's https://github.com/Uniswap/merkle-distributor/blob/master/contracts/MerkleDistributor.sol[merkle-distributor]. + * Largely inspired by Uniswap's https://github.com/Uniswap/merkle-distributor/blob/master/contracts/MerkleDistributor.sol[merkle-distributor]. */ library BitMaps { struct BitMap { @@ -22,11 +23,7 @@ library BitMaps { /** * @dev Sets the bit at `index` to the boolean `value`. */ - function setTo( - BitMap storage bitmap, - uint256 index, - bool value - ) internal { + function setTo(BitMap storage bitmap, uint256 index, bool value) internal { if (value) { set(bitmap, index); } else { diff --git a/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol b/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol index a853f3b..c49d2d6 100644 --- a/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol +++ b/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol @@ -1,4 +1,6 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/structs/EnumerableMap.sol) +// This file was procedurally generated from scripts/generate/templates/EnumerableMap.js. pragma solidity ^0.8.0; @@ -15,7 +17,7 @@ import "./EnumerableSet.sol"; * (O(1)). * - Entries are enumerated in O(n). No guarantees are made on the ordering. * - * ``` + * ```solidity * contract Example { * // Add the library methods * using EnumerableMap for EnumerableMap.UintToAddressMap; @@ -25,8 +27,23 @@ import "./EnumerableSet.sol"; * } * ``` * - * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are - * supported. + * The following map types are supported: + * + * - `uint256 -> address` (`UintToAddressMap`) since v3.0.0 + * - `address -> uint256` (`AddressToUintMap`) since v4.6.0 + * - `bytes32 -> bytes32` (`Bytes32ToBytes32Map`) since v4.6.0 + * - `uint256 -> uint256` (`UintToUintMap`) since v4.7.0 + * - `bytes32 -> uint256` (`Bytes32ToUintMap`) since v4.7.0 + * + * [WARNING] + * ==== + * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure + * unusable. + * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. + * + * In order to clean an EnumerableMap, you can either remove all elements one by one or create a fresh instance using an + * array of EnumerableMap. + * ==== */ library EnumerableMap { using EnumerableSet for EnumerableSet.Bytes32Set; @@ -40,7 +57,7 @@ library EnumerableMap { // This means that we can only create new EnumerableMaps for types that fit // in bytes32. - struct Map { + struct Bytes32ToBytes32Map { // Storage of keys EnumerableSet.Bytes32Set _keys; mapping(bytes32 => bytes32) _values; @@ -53,11 +70,7 @@ library EnumerableMap { * Returns true if the key was added to the map, that is if it was not * already present. */ - function _set( - Map storage map, - bytes32 key, - bytes32 value - ) private returns (bool) { + function set(Bytes32ToBytes32Map storage map, bytes32 key, bytes32 value) internal returns (bool) { map._values[key] = value; return map._keys.add(key); } @@ -67,7 +80,7 @@ library EnumerableMap { * * Returns true if the key was removed from the map, that is if it was present. */ - function _remove(Map storage map, bytes32 key) private returns (bool) { + function remove(Bytes32ToBytes32Map storage map, bytes32 key) internal returns (bool) { delete map._values[key]; return map._keys.remove(key); } @@ -75,14 +88,14 @@ library EnumerableMap { /** * @dev Returns true if the key is in the map. O(1). */ - function _contains(Map storage map, bytes32 key) private view returns (bool) { + function contains(Bytes32ToBytes32Map storage map, bytes32 key) internal view returns (bool) { return map._keys.contains(key); } /** * @dev Returns the number of key-value pairs in the map. O(1). */ - function _length(Map storage map) private view returns (uint256) { + function length(Bytes32ToBytes32Map storage map) internal view returns (uint256) { return map._keys.length(); } @@ -96,57 +109,173 @@ library EnumerableMap { * * - `index` must be strictly less than {length}. */ - function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) { + function at(Bytes32ToBytes32Map storage map, uint256 index) internal view returns (bytes32, bytes32) { bytes32 key = map._keys.at(index); return (key, map._values[key]); } /** - * @dev Tries to returns the value associated with `key`. O(1). + * @dev Tries to returns the value associated with `key`. O(1). * Does not revert if `key` is not in the map. */ - function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) { + function tryGet(Bytes32ToBytes32Map storage map, bytes32 key) internal view returns (bool, bytes32) { bytes32 value = map._values[key]; if (value == bytes32(0)) { - return (_contains(map, key), bytes32(0)); + return (contains(map, key), bytes32(0)); } else { return (true, value); } } /** - * @dev Returns the value associated with `key`. O(1). + * @dev Returns the value associated with `key`. O(1). * * Requirements: * * - `key` must be in the map. */ - function _get(Map storage map, bytes32 key) private view returns (bytes32) { + function get(Bytes32ToBytes32Map storage map, bytes32 key) internal view returns (bytes32) { bytes32 value = map._values[key]; - require(value != 0 || _contains(map, key), "EnumerableMap: nonexistent key"); + require(value != 0 || contains(map, key), "EnumerableMap: nonexistent key"); return value; } /** - * @dev Same as {_get}, with a custom error message when `key` is not in the map. + * @dev Same as {get}, with a custom error message when `key` is not in the map. * * CAUTION: This function is deprecated because it requires allocating memory for the error - * message unnecessarily. For custom revert reasons use {_tryGet}. + * message unnecessarily. For custom revert reasons use {tryGet}. */ - function _get( - Map storage map, + function get( + Bytes32ToBytes32Map storage map, bytes32 key, string memory errorMessage - ) private view returns (bytes32) { + ) internal view returns (bytes32) { bytes32 value = map._values[key]; - require(value != 0 || _contains(map, key), errorMessage); + require(value != 0 || contains(map, key), errorMessage); return value; } + /** + * @dev Return the an array containing all the keys + * + * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed + * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that + * this function has an unbounded cost, and using it as part of a state-changing function may render the function + * uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block. + */ + function keys(Bytes32ToBytes32Map storage map) internal view returns (bytes32[] memory) { + return map._keys.values(); + } + + // UintToUintMap + + struct UintToUintMap { + Bytes32ToBytes32Map _inner; + } + + /** + * @dev Adds a key-value pair to a map, or updates the value for an existing + * key. O(1). + * + * Returns true if the key was added to the map, that is if it was not + * already present. + */ + function set(UintToUintMap storage map, uint256 key, uint256 value) internal returns (bool) { + return set(map._inner, bytes32(key), bytes32(value)); + } + + /** + * @dev Removes a value from a map. O(1). + * + * Returns true if the key was removed from the map, that is if it was present. + */ + function remove(UintToUintMap storage map, uint256 key) internal returns (bool) { + return remove(map._inner, bytes32(key)); + } + + /** + * @dev Returns true if the key is in the map. O(1). + */ + function contains(UintToUintMap storage map, uint256 key) internal view returns (bool) { + return contains(map._inner, bytes32(key)); + } + + /** + * @dev Returns the number of elements in the map. O(1). + */ + function length(UintToUintMap storage map) internal view returns (uint256) { + return length(map._inner); + } + + /** + * @dev Returns the element stored at position `index` in the map. O(1). + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(UintToUintMap storage map, uint256 index) internal view returns (uint256, uint256) { + (bytes32 key, bytes32 value) = at(map._inner, index); + return (uint256(key), uint256(value)); + } + + /** + * @dev Tries to returns the value associated with `key`. O(1). + * Does not revert if `key` is not in the map. + */ + function tryGet(UintToUintMap storage map, uint256 key) internal view returns (bool, uint256) { + (bool success, bytes32 value) = tryGet(map._inner, bytes32(key)); + return (success, uint256(value)); + } + + /** + * @dev Returns the value associated with `key`. O(1). + * + * Requirements: + * + * - `key` must be in the map. + */ + function get(UintToUintMap storage map, uint256 key) internal view returns (uint256) { + return uint256(get(map._inner, bytes32(key))); + } + + /** + * @dev Same as {get}, with a custom error message when `key` is not in the map. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryGet}. + */ + function get(UintToUintMap storage map, uint256 key, string memory errorMessage) internal view returns (uint256) { + return uint256(get(map._inner, bytes32(key), errorMessage)); + } + + /** + * @dev Return the an array containing all the keys + * + * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed + * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that + * this function has an unbounded cost, and using it as part of a state-changing function may render the function + * uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block. + */ + function keys(UintToUintMap storage map) internal view returns (uint256[] memory) { + bytes32[] memory store = keys(map._inner); + uint256[] memory result; + + /// @solidity memory-safe-assembly + assembly { + result := store + } + + return result; + } + // UintToAddressMap struct UintToAddressMap { - Map _inner; + Bytes32ToBytes32Map _inner; } /** @@ -156,39 +285,35 @@ library EnumerableMap { * Returns true if the key was added to the map, that is if it was not * already present. */ - function set( - UintToAddressMap storage map, - uint256 key, - address value - ) internal returns (bool) { - return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value)))); + function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) { + return set(map._inner, bytes32(key), bytes32(uint256(uint160(value)))); } /** - * @dev Removes a value from a set. O(1). + * @dev Removes a value from a map. O(1). * * Returns true if the key was removed from the map, that is if it was present. */ function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) { - return _remove(map._inner, bytes32(key)); + return remove(map._inner, bytes32(key)); } /** * @dev Returns true if the key is in the map. O(1). */ function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) { - return _contains(map._inner, bytes32(key)); + return contains(map._inner, bytes32(key)); } /** * @dev Returns the number of elements in the map. O(1). */ function length(UintToAddressMap storage map) internal view returns (uint256) { - return _length(map._inner); + return length(map._inner); } /** - * @dev Returns the element stored at position `index` in the set. O(1). + * @dev Returns the element stored at position `index` in the map. O(1). * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * @@ -197,30 +322,28 @@ library EnumerableMap { * - `index` must be strictly less than {length}. */ function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) { - (bytes32 key, bytes32 value) = _at(map._inner, index); + (bytes32 key, bytes32 value) = at(map._inner, index); return (uint256(key), address(uint160(uint256(value)))); } /** - * @dev Tries to returns the value associated with `key`. O(1). + * @dev Tries to returns the value associated with `key`. O(1). * Does not revert if `key` is not in the map. - * - * _Available since v3.4._ */ function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) { - (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key)); + (bool success, bytes32 value) = tryGet(map._inner, bytes32(key)); return (success, address(uint160(uint256(value)))); } /** - * @dev Returns the value associated with `key`. O(1). + * @dev Returns the value associated with `key`. O(1). * * Requirements: * * - `key` must be in the map. */ function get(UintToAddressMap storage map, uint256 key) internal view returns (address) { - return address(uint160(uint256(_get(map._inner, bytes32(key))))); + return address(uint160(uint256(get(map._inner, bytes32(key))))); } /** @@ -234,6 +357,242 @@ library EnumerableMap { uint256 key, string memory errorMessage ) internal view returns (address) { - return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage)))); + return address(uint160(uint256(get(map._inner, bytes32(key), errorMessage)))); + } + + /** + * @dev Return the an array containing all the keys + * + * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed + * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that + * this function has an unbounded cost, and using it as part of a state-changing function may render the function + * uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block. + */ + function keys(UintToAddressMap storage map) internal view returns (uint256[] memory) { + bytes32[] memory store = keys(map._inner); + uint256[] memory result; + + /// @solidity memory-safe-assembly + assembly { + result := store + } + + return result; + } + + // AddressToUintMap + + struct AddressToUintMap { + Bytes32ToBytes32Map _inner; + } + + /** + * @dev Adds a key-value pair to a map, or updates the value for an existing + * key. O(1). + * + * Returns true if the key was added to the map, that is if it was not + * already present. + */ + function set(AddressToUintMap storage map, address key, uint256 value) internal returns (bool) { + return set(map._inner, bytes32(uint256(uint160(key))), bytes32(value)); + } + + /** + * @dev Removes a value from a map. O(1). + * + * Returns true if the key was removed from the map, that is if it was present. + */ + function remove(AddressToUintMap storage map, address key) internal returns (bool) { + return remove(map._inner, bytes32(uint256(uint160(key)))); + } + + /** + * @dev Returns true if the key is in the map. O(1). + */ + function contains(AddressToUintMap storage map, address key) internal view returns (bool) { + return contains(map._inner, bytes32(uint256(uint160(key)))); + } + + /** + * @dev Returns the number of elements in the map. O(1). + */ + function length(AddressToUintMap storage map) internal view returns (uint256) { + return length(map._inner); + } + + /** + * @dev Returns the element stored at position `index` in the map. O(1). + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(AddressToUintMap storage map, uint256 index) internal view returns (address, uint256) { + (bytes32 key, bytes32 value) = at(map._inner, index); + return (address(uint160(uint256(key))), uint256(value)); + } + + /** + * @dev Tries to returns the value associated with `key`. O(1). + * Does not revert if `key` is not in the map. + */ + function tryGet(AddressToUintMap storage map, address key) internal view returns (bool, uint256) { + (bool success, bytes32 value) = tryGet(map._inner, bytes32(uint256(uint160(key)))); + return (success, uint256(value)); + } + + /** + * @dev Returns the value associated with `key`. O(1). + * + * Requirements: + * + * - `key` must be in the map. + */ + function get(AddressToUintMap storage map, address key) internal view returns (uint256) { + return uint256(get(map._inner, bytes32(uint256(uint160(key))))); + } + + /** + * @dev Same as {get}, with a custom error message when `key` is not in the map. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryGet}. + */ + function get( + AddressToUintMap storage map, + address key, + string memory errorMessage + ) internal view returns (uint256) { + return uint256(get(map._inner, bytes32(uint256(uint160(key))), errorMessage)); + } + + /** + * @dev Return the an array containing all the keys + * + * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed + * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that + * this function has an unbounded cost, and using it as part of a state-changing function may render the function + * uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block. + */ + function keys(AddressToUintMap storage map) internal view returns (address[] memory) { + bytes32[] memory store = keys(map._inner); + address[] memory result; + + /// @solidity memory-safe-assembly + assembly { + result := store + } + + return result; + } + + // Bytes32ToUintMap + + struct Bytes32ToUintMap { + Bytes32ToBytes32Map _inner; + } + + /** + * @dev Adds a key-value pair to a map, or updates the value for an existing + * key. O(1). + * + * Returns true if the key was added to the map, that is if it was not + * already present. + */ + function set(Bytes32ToUintMap storage map, bytes32 key, uint256 value) internal returns (bool) { + return set(map._inner, key, bytes32(value)); + } + + /** + * @dev Removes a value from a map. O(1). + * + * Returns true if the key was removed from the map, that is if it was present. + */ + function remove(Bytes32ToUintMap storage map, bytes32 key) internal returns (bool) { + return remove(map._inner, key); + } + + /** + * @dev Returns true if the key is in the map. O(1). + */ + function contains(Bytes32ToUintMap storage map, bytes32 key) internal view returns (bool) { + return contains(map._inner, key); + } + + /** + * @dev Returns the number of elements in the map. O(1). + */ + function length(Bytes32ToUintMap storage map) internal view returns (uint256) { + return length(map._inner); + } + + /** + * @dev Returns the element stored at position `index` in the map. O(1). + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(Bytes32ToUintMap storage map, uint256 index) internal view returns (bytes32, uint256) { + (bytes32 key, bytes32 value) = at(map._inner, index); + return (key, uint256(value)); + } + + /** + * @dev Tries to returns the value associated with `key`. O(1). + * Does not revert if `key` is not in the map. + */ + function tryGet(Bytes32ToUintMap storage map, bytes32 key) internal view returns (bool, uint256) { + (bool success, bytes32 value) = tryGet(map._inner, key); + return (success, uint256(value)); + } + + /** + * @dev Returns the value associated with `key`. O(1). + * + * Requirements: + * + * - `key` must be in the map. + */ + function get(Bytes32ToUintMap storage map, bytes32 key) internal view returns (uint256) { + return uint256(get(map._inner, key)); + } + + /** + * @dev Same as {get}, with a custom error message when `key` is not in the map. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryGet}. + */ + function get( + Bytes32ToUintMap storage map, + bytes32 key, + string memory errorMessage + ) internal view returns (uint256) { + return uint256(get(map._inner, key, errorMessage)); + } + + /** + * @dev Return the an array containing all the keys + * + * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed + * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that + * this function has an unbounded cost, and using it as part of a state-changing function may render the function + * uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block. + */ + function keys(Bytes32ToUintMap storage map) internal view returns (bytes32[] memory) { + bytes32[] memory store = keys(map._inner); + bytes32[] memory result; + + /// @solidity memory-safe-assembly + assembly { + result := store + } + + return result; } } diff --git a/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol b/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol index e3cf13f..447f963 100644 --- a/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol +++ b/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol @@ -1,4 +1,6 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.9.0) (utils/structs/EnumerableSet.sol) +// This file was procedurally generated from scripts/generate/templates/EnumerableSet.js. pragma solidity ^0.8.0; @@ -13,7 +15,7 @@ pragma solidity ^0.8.0; * (O(1)). * - Elements are enumerated in O(n). No guarantees are made on the ordering. * - * ``` + * ```solidity * contract Example { * // Add the library methods * using EnumerableSet for EnumerableSet.AddressSet; @@ -25,6 +27,16 @@ pragma solidity ^0.8.0; * * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) * and `uint256` (`UintSet`) are supported. + * + * [WARNING] + * ==== + * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure + * unusable. + * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. + * + * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an + * array of EnumerableSet. + * ==== */ library EnumerableSet { // To implement this library for multiple types with as little code @@ -82,12 +94,12 @@ library EnumerableSet { uint256 lastIndex = set._values.length - 1; if (lastIndex != toDeleteIndex) { - bytes32 lastvalue = set._values[lastIndex]; + bytes32 lastValue = set._values[lastIndex]; // Move the last value to the index where the value to delete is - set._values[toDeleteIndex] = lastvalue; + set._values[toDeleteIndex] = lastValue; // Update the index for the moved value - set._indexes[lastvalue] = valueIndex; // Replace lastvalue's index to valueIndex + set._indexes[lastValue] = valueIndex; // Replace lastValue's index to valueIndex } // Delete the slot where the moved value was stored @@ -205,7 +217,15 @@ library EnumerableSet { * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(Bytes32Set storage set) internal view returns (bytes32[] memory) { - return _values(set._inner); + bytes32[] memory store = _values(set._inner); + bytes32[] memory result; + + /// @solidity memory-safe-assembly + assembly { + result := store + } + + return result; } // AddressSet @@ -274,6 +294,7 @@ library EnumerableSet { bytes32[] memory store = _values(set._inner); address[] memory result; + /// @solidity memory-safe-assembly assembly { result := store } @@ -315,7 +336,7 @@ library EnumerableSet { } /** - * @dev Returns the number of values on the set. O(1). + * @dev Returns the number of values in the set. O(1). */ function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); @@ -347,6 +368,7 @@ library EnumerableSet { bytes32[] memory store = _values(set._inner); uint256[] memory result; + /// @solidity memory-safe-assembly assembly { result := store } diff --git a/package-lock.json b/package-lock.json index 92c5c44..c068ad1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@chainlink/contracts": "^0.6.1", "@nomiclabs/hardhat-etherscan": "^3.1.7", "@nomiclabs/hardhat-waffle": "^2.0.6", + "@openzeppelin/contracts": "^4.9.0", "dotenv": "^16.1.3" }, "devDependencies": { @@ -31,6 +32,11 @@ "@openzeppelin/contracts-v0.7": "npm:@openzeppelin/contracts@v3.4.2" } }, + "node_modules/@chainlink/contracts/node_modules/@openzeppelin/contracts": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", + "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" + }, "node_modules/@chainsafe/as-sha256": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", @@ -2265,9 +2271,9 @@ } }, "node_modules/@openzeppelin/contracts": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", - "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.0.tgz", + "integrity": "sha512-DUP74AFGKlic2sQb/CmgrN2aUPMFGxRrmCTUxLHsiU2RzwWqVuMPZBxiAyvlff6Pea77uylAX6B5x9W6evEbhA==" }, "node_modules/@openzeppelin/contracts-upgradeable": { "version": "4.8.3", @@ -8114,6 +8120,13 @@ "@openzeppelin/contracts": "~4.3.3", "@openzeppelin/contracts-upgradeable": "^4.7.3", "@openzeppelin/contracts-v0.7": "npm:@openzeppelin/contracts@v3.4.2" + }, + "dependencies": { + "@openzeppelin/contracts": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", + "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" + } } }, "@chainsafe/as-sha256": { @@ -9823,9 +9836,9 @@ "requires": {} }, "@openzeppelin/contracts": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", - "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.0.tgz", + "integrity": "sha512-DUP74AFGKlic2sQb/CmgrN2aUPMFGxRrmCTUxLHsiU2RzwWqVuMPZBxiAyvlff6Pea77uylAX6B5x9W6evEbhA==" }, "@openzeppelin/contracts-upgradeable": { "version": "4.8.3", diff --git a/package.json b/package.json index 19627e8..554b9fe 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "scripts": { "compile": "npx hardhat compile", "test": "npx hardhat test", - "deployMumbai": "npx hardhat run --network mumbai scripts/deploy.ts" + "deployMumbai": "npx hardhat run --network mumbai scripts/deploy.ts", + "verify": "npx hardhat verify --network mumbai" }, "author": "", "license": "ISC", @@ -19,6 +20,7 @@ "@chainlink/contracts": "^0.6.1", "@nomiclabs/hardhat-etherscan": "^3.1.7", "@nomiclabs/hardhat-waffle": "^2.0.6", + "@openzeppelin/contracts": "^4.9.0", "dotenv": "^16.1.3" } }