{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "name": "log",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "log_address",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "val",
          "type": "uint256[]"
        }
      ],
      "name": "log_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "int256[]",
          "name": "val",
          "type": "int256[]"
        }
      ],
      "name": "log_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "val",
          "type": "address[]"
        }
      ],
      "name": "log_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "log_bytes",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "log_bytes32",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "int256",
          "name": "",
          "type": "int256"
        }
      ],
      "name": "log_int",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "val",
          "type": "address"
        }
      ],
      "name": "log_named_address",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "val",
          "type": "uint256[]"
        }
      ],
      "name": "log_named_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "int256[]",
          "name": "val",
          "type": "int256[]"
        }
      ],
      "name": "log_named_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "val",
          "type": "address[]"
        }
      ],
      "name": "log_named_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "val",
          "type": "bytes"
        }
      ],
      "name": "log_named_bytes",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "val",
          "type": "bytes32"
        }
      ],
      "name": "log_named_bytes32",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "val",
          "type": "int256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "decimals",
          "type": "uint256"
        }
      ],
      "name": "log_named_decimal_int",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "val",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "decimals",
          "type": "uint256"
        }
      ],
      "name": "log_named_decimal_uint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "val",
          "type": "int256"
        }
      ],
      "name": "log_named_int",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "val",
          "type": "string"
        }
      ],
      "name": "log_named_string",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "val",
          "type": "uint256"
        }
      ],
      "name": "log_named_uint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "name": "log_string",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "log_uint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "logs",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "IS_TEST",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "counter",
      "outputs": [
        {
          "internalType": "contract Counter",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "failed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "setUp",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testIncrement",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "x",
          "type": "uint256"
        }
      ],
      "name": "testSetNumber",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x60806040526007805460ff191660011790556200001b62000032565b6008553480156200002b57600080fd5b50620017e6565b6000604051806102200160405280604051806060016040528060405180604001604052806005815260200164105b9d9a5b60da1b8152508152602001617a6981526020016040518060400160405280601581526020017f687474703a2f2f3132372e302e302e313a383534350000000000000000000000815250815250815260200160405180606001604052806040518060400160405280600781526020016612185c991a185d60ca1b8152508152602001617a6981526020016040518060400160405280601581526020017f687474703a2f2f3132372e302e302e313a383534350000000000000000000000815250815250815260200160405180606001604052806040518060400160405280600781526020016613585a5b9b995d60ca1b8152508152602001600181526020016040518060400160405280601f81526020017f68747470733a2f2f6170692e6d7963727970746f6170692e636f6d2f657468008152508152508152602001604051806060016040528060405180604001604052806006815260200165476f65726c6960d01b8152508152602001600581526020016040518060600160405280603c815260200162002107603c9139905281526040805160a0808201835260076060808401918252665365706f6c696160c81b60808086019190915291845262aa36a760208581019190915285518087018752601781527f68747470733a2f2f7270632e7365706f6c69612e646576000000000000000000818301528587015280870194909452845180840186526008818301908152674f7074696d69736d60c01b828501528152600a8186015285518087018752601b81527f68747470733a2f2f6d61696e6e65742e6f7074696d69736d2e696f000000000081870152818701528587015284518084018652600e8183019081526d4f7074696d69736d476f65726c6960901b8285015281526101a48186015285518087018752601a81527f68747470733a2f2f676f65726c692e6f7074696d69736d2e696f00000000000081870152818701528187015284518084018652600b8183019081526a417262697472756d4f6e6560a81b82850152815261a4b18186015285518087018752601c81527f68747470733a2f2f617262312e617262697472756d2e696f2f7270630000000081870152818701528287015284518084018652601181830190815270417262697472756d4f6e65476f65726c6960781b9382019390935291825262066eed82850152845190810185526025808252929095019490938401929091906200214390830139905281526040805160a08082018352600c60608084019182526b417262697472756d4e6f766160a01b60808086019190915291845261a4ba60208581019190915285518087018752601c81527f68747470733a2f2f6e6f76612e617262697472756d2e696f2f72706300000000818301528587015280870194909452845180840186526007818301908152662837b63cb3b7b760c91b82850152815260898186015285518087018752601781527f68747470733a2f2f706f6c79676f6e2d7270632e636f6d00000000000000000081870152818701528587015284518084018652600d8183019081526c506f6c79676f6e4d756d62616960981b828501528152620138818186015285518087018752601e81527f68747470733a2f2f7270632d6d756d6261692e6d617469632e746f6461790000818701528187015281870152845192830185526009838201908152684176616c616e63686560b81b84840152835261a86a8385015284519081018552602580825291909501949193840192620020e290830139815250815260200160405180606001604052806040518060400160405280600d81526020016c4176616c616e63686546756a6960981b815250815260200161a86981526020016040518060600160405280602a815260200162002168602a9139815250815260200160405180606001604052806040518060400160405280600d81526020016c21373129b6b0b93a21b430b4b760991b8152508152602001603881526020016040518060600160405280602181526020016200219260219139815250815260200160405180606001604052806040518060400160405280601481526020017f426e62536d617274436861696e546573746e65740000000000000000000000008152508152602001606181526020016040518060600160405280602e8152602001620020b4602e9139905281526040805160a081018252600b606082019081526a23b737b9b4b9a1b430b4b760a91b60808301528152606460208281019190915282518084018452601b81527f68747470733a2f2f7270632e676e6f736973636861696e2e636f6d0000000000818301529282019290925291015280518051600991908290819062000725908262001496565b50602082015160018201556040820151600282019062000746908262001496565b505050602082015180516003830190819062000763908262001496565b50602082015160018201556040820151600282019062000784908262001496565b5050506040820151805160068301908190620007a1908262001496565b506020820151600182015560408201516002820190620007c2908262001496565b5050506060820151805160098301908190620007df908262001496565b50602082015160018201556040820151600282019062000800908262001496565b50505060808201518051600c83019081906200081d908262001496565b5060208201516001820155604082015160028201906200083e908262001496565b50505060a08201518051600f83019081906200085b908262001496565b5060208201516001820155604082015160028201906200087c908262001496565b50505060c082015180516012830190819062000899908262001496565b506020820151600182015560408201516002820190620008ba908262001496565b50505060e0820151805160158301908190620008d7908262001496565b506020820151600182015560408201516002820190620008f8908262001496565b50505061010082015180516018830190819062000916908262001496565b50602082015160018201556040820151600282019062000937908262001496565b5050506101208201518051601b830190819062000955908262001496565b50602082015160018201556040820151600282019062000976908262001496565b5050506101408201518051601e830190819062000994908262001496565b506020820151600182015560408201516002820190620009b5908262001496565b505050610160820151805160218301908190620009d3908262001496565b506020820151600182015560408201516002820190620009f4908262001496565b50505061018082015180516024830190819062000a12908262001496565b50602082015160018201556040820151600282019062000a33908262001496565b5050506101a082015180516027830190819062000a51908262001496565b50602082015160018201556040820151600282019062000a72908262001496565b5050506101c08201518051602a830190819062000a90908262001496565b50602082015160018201556040820151600282019062000ab1908262001496565b5050506101e08201518051602d830190819062000acf908262001496565b50602082015160018201556040820151600282019062000af0908262001496565b50505061020082015180516030830190819062000b0e908262001496565b50602082015160018201556040820151600282019062000b2f908262001496565b50505090505060007f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663a85a84186040518163ffffffff1660e01b81526004016000604051808303816000875af115801562000b9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000bc59190810190620015e6565b905060005b8151811015620012d35760008083838151811062000bec5762000bec62001773565b602002602001015160006002811062000c095762000c0962001773565b602002015184848151811062000c235762000c2362001773565b602002602001015160016002811062000c405762000c4062001773565b60200201519150915062000c788260405180604001604052806005815260200164185b9d9a5b60da1b815250620012dc60201b60201c565b1562000c9357600b62000c8c828262001496565b50620012bb565b62000cc482604051806040016040528060078152602001661a185c991a185d60ca1b815250620012dc60201b60201c565b1562000cd857600e62000c8c828262001496565b62000d0982604051806040016040528060078152602001661b585a5b9b995d60ca1b815250620012dc60201b60201c565b1562000d1d57601162000c8c828262001496565b62000d4d8260405180604001604052806006815260200165676f65726c6960d01b815250620012dc60201b60201c565b1562000d6157601462000c8c828262001496565b62000d9282604051806040016040528060078152602001667365706f6c696160c81b815250620012dc60201b60201c565b1562000da657601762000c8c828262001496565b62000dd882604051806040016040528060088152602001676f7074696d69736d60c01b815250620012dc60201b60201c565b1562000dec57601a62000c8c828262001496565b62000e4d826040518060400160405280600f81526020016e6f7074696d69736d5f676f65726c6960881b8152506040518060400160405280600f81526020016e6f7074696d69736d2d676f65726c6960881b8152506200133960201b60201c565b1562000e6157601d62000c8c828262001496565b62000ebc826040518060400160405280600c81526020016b617262697472756d5f6f6e6560a01b8152506040518060400160405280600c81526020016b617262697472756d2d6f6e6560a01b8152506200133960201b60201c565b1562000ed057602062000c8c828262001496565b62000f4d826040518060400160405280601381526020017f617262697472756d5f6f6e655f676f65726c69000000000000000000000000008152506040518060400160405280601381526020017f617262697472756d2d6f6e652d676f65726c69000000000000000000000000008152506200133960201b60201c565b1562000f6157602362000c8c828262001496565b62000fbe826040518060400160405280600d81526020016c617262697472756d5f6e6f766160981b8152506040518060400160405280600d81526020016c617262697472756d2d6e6f766160981b8152506200133960201b60201c565b1562000fd257602662000c8c828262001496565b6200100382604051806040016040528060078152602001663837b63cb3b7b760c91b815250620012dc60201b60201c565b156200101757602962000c8c828262001496565b62001076826040518060400160405280600e81526020016d706f6c79676f6e5f6d756d62616960901b8152506040518060400160405280600e81526020016d706f6c79676f6e2d6d756d62616960901b8152506200133960201b60201c565b156200108a57602c62000c8c828262001496565b620010bd82604051806040016040528060098152602001686176616c616e63686560b81b815250620012dc60201b60201c565b15620010d157602f62000c8c828262001496565b62001130826040518060400160405280600e81526020016d6176616c616e6368655f66756a6960901b8152506040518060400160405280600e81526020016d6176616c616e6368652d66756a6960901b8152506200133960201b60201c565b156200114457603262000c8c828262001496565b620011a5826040518060400160405280600f81526020016e3137312fb9b6b0b93a2fb1b430b4b760891b8152506040518060400160405280600f81526020016e31373116b9b6b0b93a16b1b430b4b760891b8152506200133960201b60201c565b15620011b957603562000c8c828262001496565b62001236826040518060400160405280601781526020017f626e625f736d6172745f636861696e5f746573746e65740000000000000000008152506040518060400160405280601781526020017f626e622d736d6172742d636861696e2d746573746e65740000000000000000008152506200133960201b60201c565b156200124a57603862000c8c828262001496565b620012a5826040518060400160405280600c81526020016b33b737b9b4b9afb1b430b4b760a11b8152506040518060400160405280600c81526020016b33b737b9b4b996b1b430b4b760a11b8152506200133960201b60201c565b15620012bb57603b620012b9828262001496565b505b50508080620012ca9062001789565b91505062000bca565b50600091505090565b600081604051602001620012f19190620017b1565b60405160208183030381529060405280519060200120836040516020016200131a9190620017b1565b6040516020818303038152906040528051906020012014905092915050565b6000826040516020016200134e9190620017b1565b6040516020818303038152906040528051906020012084604051602001620013779190620017b1565b604051602081830303815290604052805190602001201480620013e9575081604051602001620013a89190620017b1565b6040516020818303038152906040528051906020012084604051602001620013d19190620017b1565b60405160208183030381529060405280519060200120145b949350505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200141c57607f821691505b6020821081036200143d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200149157600081815260208120601f850160051c810160208610156200146c5750805b601f850160051c820191505b818110156200148d5782815560010162001478565b5050505b505050565b81516001600160401b03811115620014b257620014b2620013f1565b620014ca81620014c3845462001407565b8462001443565b602080601f831160018114620015025760008415620014e95750858301515b600019600386901b1c1916600185901b1785556200148d565b600085815260208120601f198616915b82811015620015335788860151825594840194600190910190840162001512565b5085821015620015525787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604080519081016001600160401b0381118282101715620015875762001587620013f1565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620015b857620015b8620013f1565b604052919050565b60005b83811015620015dd578181015183820152602001620015c3565b50506000910152565b600060208284031215620015f957600080fd5b81516001600160401b03808211156200161157600080fd5b818401915084601f8301126200162657600080fd5b8151818111156200163b576200163b620013f1565b6200164c60208260051b016200158d565b8082825260208201915060208360051b8601019250878311156200166f57600080fd5b602085015b8381101562001767578051858111156200168d57600080fd5b8601603f81018a136200169f57600080fd5b620016a962001562565b808b606084011115620016bb57600080fd5b602083015b606084018110156200175557805189811115620016dc57600080fd5b8401603f81018e13620016ee57600080fd5b60208101518a811115620017065762001706620013f1565b6200171b601f8201601f19166020016200158d565b8181528f60408385010111156200173157600080fd5b62001744826020830160408601620015c0565b8552505060209283019201620016c0565b50855250506020928301920162001674565b50979650505050505050565b634e487b7160e01b600052603260045260246000fd5b600060018201620017aa57634e487b7160e01b600052601160045260246000fd5b5060010190565b6020815260008251806020840152620017d2816040850160208701620015c0565b601f01601f19169190910160400192915050565b6108be80620017f66000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630a9254e41461006757806361bc221a1461007157806370f985be146100a1578063b913a5ca146100b4578063ba414fa6146100bc578063fa7626d4146100d4575b600080fd5b61006f6100e1565b005b604354610084906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61006f6100af3660046106b7565b61017a565b61006f61025b565b6100c4610346565b6040519015158152602001610098565b6007546100c49060ff1681565b6040516100ed906106aa565b604051809103906000f080158015610109573d6000803e3d6000fd5b50604380546001600160a01b0319166001600160a01b03929092169182179055604051633fb5c1cb60e01b815260006004820152633fb5c1cb90602401600060405180830381600087803b15801561016057600080fd5b505af1158015610174573d6000803e3d6000fd5b50505050565b604354604051633fb5c1cb60e01b8152600481018390526001600160a01b0390911690633fb5c1cb90602401600060405180830381600087803b1580156101c057600080fd5b505af11580156101d4573d6000803e3d6000fd5b50505050610258604360009054906101000a90046001600160a01b03166001600160a01b0316638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561022e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025291906106d0565b82610473565b50565b604360009054906101000a90046001600160a01b03166001600160a01b031663d09de08a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156102ab57600080fd5b505af11580156102bf573d6000803e3d6000fd5b50505050610344604360009054906101000a90046001600160a01b03166001600160a01b0316638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033d91906106d0565b6001610473565b565b600754600090610100900460ff16156103685750600754610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046e5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b828401528251808303840181526060830190935260009290916103f6917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001610719565b60408051601f19818403018152908290526104109161073d565b6000604051808303816000865af19150503d806000811461044d576040519150601f19603f3d011682016040523d82523d6000602084013e610452565b606091505b509150508080602001905181019061046a9190610750565b9150505b919050565b80821461059a577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516104e49060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808115e1c1958dd195960b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a8183015269080808081058dd1d585b60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a161059a61059e565b5050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156106995760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f19818403018152908290526106389291602001610719565b60408051601f19818403018152908290526106529161073d565b6000604051808303816000865af19150503d806000811461068f576040519150601f19603f3d011682016040523d82523d6000602084013e610694565b606091505b505050505b6007805461ff001916610100179055565b6101168061077383390190565b6000602082840312156106c957600080fd5b5035919050565b6000602082840312156106e257600080fd5b5051919050565b6000815160005b8181101561070a57602081850181015186830152016106f0565b50600093019283525090919050565b6001600160e01b031983168152600061073560048301846106e9565b949350505050565b600061074982846106e9565b9392505050565b60006020828403121561076257600080fd5b8151801515811461074957600080fdfe608060405234801561001057600080fd5b5060f78061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212208fe2d9e04b045477f5760a998d5008e60f9cd79be7197e337e6e8084a1e3f7c664736f6c63430008110033a264697066735822122041239c9763058c2cf759fa0e36ef9cd6b9b43eb297eab17a4b005d069f6ed70864736f6c6343000811003368747470733a2f2f646174612d736565642d7072656273632d312d73312e62696e616e63652e6f72673a3835343568747470733a2f2f6170692e617661782e6e6574776f726b2f6578742f62632f432f72706368747470733a2f2f676f65726c692e696e667572612e696f2f76332f383438343230373862303939343636333863303331353766383334303532313368747470733a2f2f676f65726c692d726f6c6c75702e617262697472756d2e696f2f72706368747470733a2f2f6170692e617661782d746573742e6e6574776f726b2f6578742f62632f432f72706368747470733a2f2f6273632d6461746173656564312e62696e616e63652e6f7267",
    "sourceMap": "124:396:17:-:0;;;1572:26:0;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;650:14:5;:12;:14::i;:::-;620:44;;124:396:17;;;;;;;;;;;;6228:3879:5;6269:7;6353:1679;;;;;;;;6381:46;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6381:46:5;;;;;;;6396:5;6381:46;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;6450:48;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6450:48:5;;;;;;;6467:5;6450:48;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;6521:54;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6521:54:5;;;;;;;6538:1;6521:54;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;6597:82;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6597:82:5;;;;;;;6613:1;6597:82;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;6870:53;;;;;;;;;;;;;;;;;-1:-1:-1;;;6870:53:5;;;;;;;;;;;6887:8;6353:1679;6870:53;;;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;;;;6947:52;;;;;;;;;;;;;;-1:-1:-1;;;6947:52:5;;;;;;6965:2;6947:52;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7029:58;;;;;;;;;;;;;;-1:-1:-1;;;7029:58:5;;;;;;7053:3;7029:58;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7114:59;;;;;;;;;;;;;;-1:-1:-1;;;7114:59:5;;;;;;7135:5;7114:59;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7206:75;;;;;;;;;;;;;;-1:-1:-1;;;7206:75:5;;;;;;;;;;7233:6;7206:75;;;;;;;;;;;;;;;6353:1679;;;;;7206:75;;;;;;;;;;;;;;;6353:1679;;7309:60;;;;;;;;;;;;;;;;;-1:-1:-1;;;7309:60:5;;;;;;;;;;;7331:5;6353:1679;7309:60;;;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;;;;7392:48;;;;;;;;;;;;;;-1:-1:-1;;;7392:48:5;;;;;;7409:3;7392:48;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7469:63;;;;;;;;;;;;;;-1:-1:-1;;;7469:63:5;;;;;;7492:5;7469:63;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7557:66;;;;;;;;;;;;;;-1:-1:-1;;;7557:66:5;;;;;;7576:5;7557:66;;;;;;;;;;;;;;;6353:1679;;;;;7557:66;;;;;;;;;;;;;6353:1679;;;;7652:75;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7652:75:5;;;;;;;7675:5;7652:75;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7756:63;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7756:63:5;;;;;;;7779:2;7756:63;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7855:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7885:2;7855:83;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;7965:56;;;;;;;;;;;;;;;-1:-1:-1;;;7965:56:5;;;;;;7986:3;6353:1679;7965:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;6341:1691;;;;:9;;:1691;:9;;;;:1691;;:9;:1691;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;8125:23;245:28;237:37;;-1:-1:-1;;;;;8152:10:5;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8152:12:5;;;;;;;;;;;;:::i;:::-;8124:40;;8179:9;8174:1909;8198:4;:11;8194:1;:15;8174:1909;;;8231:18;8251:20;8276:4;8281:1;8276:7;;;;;;;;:::i;:::-;;;;;;;8284:1;8276:10;;;;;;;:::i;:::-;;;;;8288:4;8293:1;8288:7;;;;;;;;:::i;:::-;;;;;;;8296:1;8288:10;;;;;;;:::i;:::-;;;;;8230:69;;;;8356:22;8364:4;8356:22;;;;;;;;;;;;;-1:-1:-1;;;8356:22:5;;;:7;;;:22;;:::i;:::-;8352:1683;;;8380:22;:31;8405:6;8380:22;:31;:::i;:::-;;8352:1683;;;8434:24;8442:4;8434:24;;;;;;;;;;;;;-1:-1:-1;;;8434:24:5;;;:7;;;:24;;:::i;:::-;8430:1605;;;8460:24;:33;8487:6;8460:24;:33;:::i;8430:1605::-;8516:24;8524:4;8516:24;;;;;;;;;;;;;-1:-1:-1;;;8516:24:5;;;:7;;;:24;;:::i;:::-;8512:1523;;;8542:24;:33;8569:6;8542:24;:33;:::i;8512:1523::-;8598:23;8606:4;8598:23;;;;;;;;;;;;;-1:-1:-1;;;8598:23:5;;;:7;;;:23;;:::i;:::-;8594:1441;;;8623:23;:32;8649:6;8623:23;:32;:::i;8594:1441::-;8678:24;8686:4;8678:24;;;;;;;;;;;;;-1:-1:-1;;;8678:24:5;;;:7;;;:24;;:::i;:::-;8674:1361;;;8704:24;:33;8731:6;8704:24;:33;:::i;8674:1361::-;8760:25;8768:4;8760:25;;;;;;;;;;;;;-1:-1:-1;;;8760:25:5;;;:7;;;:25;;:::i;:::-;8756:1279;;;8787:25;:34;8815:6;8787:25;:34;:::i;8756:1279::-;8844:51;8852:4;8844:51;;;;;;;;;;;;;-1:-1:-1;;;8844:51:5;;;;;;;;;;;;;;;;-1:-1:-1;;;8844:51:5;;;:7;;;:51;;:::i;:::-;8840:1195;;;8897:31;:40;8931:6;8897:31;:40;:::i;8840:1195::-;8960:45;8968:4;8960:45;;;;;;;;;;;;;-1:-1:-1;;;8960:45:5;;;;;;;;;;;;;;;;-1:-1:-1;;;8960:45:5;;;:7;;;:45;;:::i;:::-;8956:1079;;;9007:28;:37;9038:6;9007:28;:37;:::i;8956:1079::-;9067:59;9075:4;9067:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;;;:59;;:::i;:::-;9063:972;;;9128:34;:43;9165:6;9128:34;:43;:::i;9063:972::-;9194:47;9202:4;9194:47;;;;;;;;;;;;;-1:-1:-1;;;9194:47:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9194:47:5;;;:7;;;:47;;:::i;:::-;9190:845;;;9243:29;:38;9275:6;9243:29;:38;:::i;9190:845::-;9304:24;9312:4;9304:24;;;;;;;;;;;;;-1:-1:-1;;;9304:24:5;;;:7;;;:24;;:::i;:::-;9300:735;;;9330:24;:33;9357:6;9330:24;:33;:::i;9300:735::-;9386:49;9394:4;9386:49;;;;;;;;;;;;;-1:-1:-1;;;9386:49:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9386:49:5;;;:7;;;:49;;:::i;:::-;9382:653;;;9437:30;:39;9470:6;9437:30;:39;:::i;9382:653::-;9499:26;9507:4;9499:26;;;;;;;;;;;;;-1:-1:-1;;;9499:26:5;;;:7;;;:26;;:::i;:::-;9495:540;;;9527:26;:35;9556:6;9527:26;:35;:::i;9495:540::-;9585:49;9593:4;9585:49;;;;;;;;;;;;;-1:-1:-1;;;9585:49:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9585:49:5;;;:7;;;:49;;:::i;:::-;9581:454;;;9636:30;:39;9669:6;9636:30;:39;:::i;9581:454::-;9698:51;9706:4;9698:51;;;;;;;;;;;;;-1:-1:-1;;;9698:51:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9698:51:5;;;:7;;;:51;;:::i;:::-;9694:341;;;9751:30;:39;9784:6;9751:30;:39;:::i;9694:341::-;9813:67;9821:4;9813:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;;;:67;;:::i;:::-;9809:226;;;9882:37;:46;9922:6;9882:37;:46;:::i;9809:226::-;9951:45;9959:4;9951:45;;;;;;;;;;;;;-1:-1:-1;;;9951:45:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9951:45:5;;;:7;;;:45;;:::i;:::-;9947:88;;;9998:28;:37;10029:6;9998:28;:37;:::i;:::-;;9947:88;8216:1867;;8211:3;;;;;:::i;:::-;;;;8174:1909;;;;10099:1;10092:8;;;6228:3879;:::o;10113:155::-;10186:4;10258:1;10247:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10237:24;;;;;;10230:1;10219:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10209:24;;;;;;:52;10202:59;;10113:155;;;;:::o;10274:240::-;10364:4;10448:1;10437:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10427:24;;;;;;10420:1;10409:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10399:24;;;;;;:52;:108;;;;10504:1;10493:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10483:24;;;;;;10476:1;10465:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10455:24;;;;;;:52;10399:108;10380:127;10274:240;-1:-1:-1;;;;10274:240:5:o;14:127:18:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:18;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:18;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:18;;;2580:26;2531:89;-1:-1:-1;;1335:1:18;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:18;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:18;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:18;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:18:o;2735:251::-;2807:2;2801:9;;;2837:15;;-1:-1:-1;;;;;2867:34:18;;2903:22;;;2864:62;2861:88;;;2929:18;;:::i;:::-;2965:2;2958:22;2735:251;:::o;2991:275::-;3062:2;3056:9;3127:2;3108:13;;-1:-1:-1;;3104:27:18;3092:40;;-1:-1:-1;;;;;3147:34:18;;3183:22;;;3144:62;3141:88;;;3209:18;;:::i;:::-;3245:2;3238:22;2991:275;;-1:-1:-1;2991:275:18:o;3271:250::-;3356:1;3366:113;3380:6;3377:1;3374:13;3366:113;;;3456:11;;;3450:18;3437:11;;;3430:39;3402:2;3395:10;3366:113;;;-1:-1:-1;;3513:1:18;3495:16;;3488:27;3271:250::o;3526:2078::-;3654:6;3707:2;3695:9;3686:7;3682:23;3678:32;3675:52;;;3723:1;3720;3713:12;3675:52;3750:16;;-1:-1:-1;;;;;3815:14:18;;;3812:34;;;3842:1;3839;3832:12;3812:34;3880:6;3869:9;3865:22;3855:32;;3925:7;3918:4;3914:2;3910:13;3906:27;3896:55;;3947:1;3944;3937:12;3896:55;3976:2;3970:9;3998:2;3994;3991:10;3988:36;;;4004:18;;:::i;:::-;4044:36;4076:2;4071;4068:1;4064:10;4060:19;4044:36;:::i;:::-;4102:3;4126:2;4121:3;4114:15;4154:2;4149:3;4145:12;4138:19;;4205:2;4199;4196:1;4192:10;4188:2;4184:19;4180:28;4166:42;;4231:7;4223:6;4220:19;4217:39;;;4252:1;4249;4242:12;4217:39;4284:2;4280;4276:11;4296:1278;4312:6;4307:3;4304:15;4296:1278;;;4391:3;4385:10;4427:2;4414:11;4411:19;4408:39;;;4443:1;4440;4433:12;4408:39;4470:20;;4525:2;4517:11;;4513:25;-1:-1:-1;4503:53:18;;4552:1;4549;4542:12;4503:53;4582:22;;:::i;:::-;4630:5;4667:7;4662:2;4658;4654:11;4651:24;4648:44;;;4688:1;4685;4678:12;4648:44;4726:2;4722;4718:11;4742:759;4768:2;4764;4760:11;4753:5;4750:22;4742:759;;;4858:5;4852:12;4902:2;4887:13;4884:21;4881:41;;;4918:1;4915;4908:12;4881:41;4949:22;;5010:2;5002:11;;4998:25;-1:-1:-1;4988:53:18;;5037:1;5034;5027:12;4988:53;5082:2;5078;5074:11;5068:18;5113:2;5109;5106:10;5103:36;;;5119:18;;:::i;:::-;5169:53;5212:2;5193:13;;-1:-1:-1;;5189:27:18;5218:2;5185:36;5169:53;:::i;:::-;5253:2;5246:5;5239:17;5301:7;5296:2;5291;5287;5283:11;5279:20;5276:33;5273:53;;;5322:1;5319;5312:12;5273:53;5343:67;5407:2;5402;5395:5;5391:14;5386:2;5382;5378:11;5343:67;:::i;:::-;5427:20;;-1:-1:-1;;5484:2:18;5473:14;;;;4784;4742:759;;;-1:-1:-1;5514:18:18;;-1:-1:-1;;5561:2:18;5552:12;;;;4329;4296:1278;;;-1:-1:-1;5593:5:18;3526:2078;-1:-1:-1;;;;;;;3526:2078:18:o;5609:127::-;5670:10;5665:3;5661:20;5658:1;5651:31;5701:4;5698:1;5691:15;5725:4;5722:1;5715:15;5741:232;5780:3;5801:17;;;5798:140;;5860:10;5855:3;5851:20;5848:1;5841:31;5895:4;5892:1;5885:15;5923:4;5920:1;5913:15;5798:140;-1:-1:-1;5965:1:18;5954:13;;5741:232::o;5978:396::-;6127:2;6116:9;6109:21;6090:4;6159:6;6153:13;6202:6;6197:2;6186:9;6182:18;6175:34;6218:79;6290:6;6285:2;6274:9;6270:18;6265:2;6257:6;6253:15;6218:79;:::i;:::-;6358:2;6337:15;-1:-1:-1;;6333:29:18;6318:45;;;;6365:2;6314:54;;5978:396;-1:-1:-1;;5978:396:18:o;:::-;124::17;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80630a9254e41461006757806361bc221a1461007157806370f985be146100a1578063b913a5ca146100b4578063ba414fa6146100bc578063fa7626d4146100d4575b600080fd5b61006f6100e1565b005b604354610084906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61006f6100af3660046106b7565b61017a565b61006f61025b565b6100c4610346565b6040519015158152602001610098565b6007546100c49060ff1681565b6040516100ed906106aa565b604051809103906000f080158015610109573d6000803e3d6000fd5b50604380546001600160a01b0319166001600160a01b03929092169182179055604051633fb5c1cb60e01b815260006004820152633fb5c1cb90602401600060405180830381600087803b15801561016057600080fd5b505af1158015610174573d6000803e3d6000fd5b50505050565b604354604051633fb5c1cb60e01b8152600481018390526001600160a01b0390911690633fb5c1cb90602401600060405180830381600087803b1580156101c057600080fd5b505af11580156101d4573d6000803e3d6000fd5b50505050610258604360009054906101000a90046001600160a01b03166001600160a01b0316638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561022e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025291906106d0565b82610473565b50565b604360009054906101000a90046001600160a01b03166001600160a01b031663d09de08a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156102ab57600080fd5b505af11580156102bf573d6000803e3d6000fd5b50505050610344604360009054906101000a90046001600160a01b03166001600160a01b0316638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033d91906106d0565b6001610473565b565b600754600090610100900460ff16156103685750600754610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046e5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b828401528251808303840181526060830190935260009290916103f6917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001610719565b60408051601f19818403018152908290526104109161073d565b6000604051808303816000865af19150503d806000811461044d576040519150601f19603f3d011682016040523d82523d6000602084013e610452565b606091505b509150508080602001905181019061046a9190610750565b9150505b919050565b80821461059a577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516104e49060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808115e1c1958dd195960b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a8183015269080808081058dd1d585b60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a161059a61059e565b5050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156106995760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f19818403018152908290526106389291602001610719565b60408051601f19818403018152908290526106529161073d565b6000604051808303816000865af19150503d806000811461068f576040519150601f19603f3d011682016040523d82523d6000602084013e610694565b606091505b505050505b6007805461ff001916610100179055565b6101168061077383390190565b6000602082840312156106c957600080fd5b5035919050565b6000602082840312156106e257600080fd5b5051919050565b6000815160005b8181101561070a57602081850181015186830152016106f0565b50600093019283525090919050565b6001600160e01b031983168152600061073560048301846106e9565b949350505050565b600061074982846106e9565b9392505050565b60006020828403121561076257600080fd5b8151801515811461074957600080fdfe608060405234801561001057600080fd5b5060f78061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212208fe2d9e04b045477f5760a998d5008e60f9cd79be7197e337e6e8084a1e3f7c664736f6c63430008110033a264697066735822122041239c9763058c2cf759fa0e36ef9cd6b9b43eb297eab17a4b005d069f6ed70864736f6c63430008110033",
    "sourceMap": "124:396:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;188:94;;;:::i;:::-;;159:22;;;;;-1:-1:-1;;;;;159:22:17;;;;;;-1:-1:-1;;;;;195:32:18;;;177:51;;165:2;150:18;159:22:17;;;;;;;;401:117;;;;;;:::i;:::-;;:::i;288:107::-;;;:::i;1819:584:0:-;;;:::i;:::-;;;589:14:18;;582:22;564:41;;552:2;537:18;1819:584:0;424:187:18;1572:26:0;;;;;;;;;188:94:17;232:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;222:7:17;:23;;-1:-1:-1;;;;;;222:23:17;-1:-1:-1;;;;;222:23:17;;;;;;;;;255:20;;-1:-1:-1;;;255:20:17;;-1:-1:-1;255:20:17;;;770:25:18;255:17:17;;743:18:18;;255:20:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;188:94::o;401:117::-;452:7;;:20;;-1:-1:-1;;;452:20:17;;;;;770:25:18;;;-1:-1:-1;;;;;452:7:17;;;;:17;;743:18:18;;452:20:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;482:29;491:7;;;;;;;;;-1:-1:-1;;;;;491:7:17;-1:-1:-1;;;;;491:14:17;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;509:1;482:8;:29::i;:::-;401:117;:::o;288:107::-;330:7;;;;;;;;;-1:-1:-1;;;;;330:7:17;-1:-1:-1;;;;;330:17:17;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;359:29;368:7;;;;;;;;;-1:-1:-1;;;;;368:7:17;-1:-1:-1;;;;;368:14:17;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;386:1;359:8;:29::i;:::-;288:107::o;1819:584:0:-;1873:7;;1853:4;;1873:7;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2990:42;2978:55;3059:16;1980:374;;2196:43;;;1671:64;2196:43;;;1351:51:18;;;-1:-1:-1;;;1418:18:18;;;1411:34;2196:43:0;;;;;;;;;1324:18:18;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;5202:262::-;5264:1;5259;:6;5255:203;;5286:41;;;;;2744:2:18;2726:21;;;2783:2;2763:18;;;2756:30;2822:34;2817:2;2802:18;;2795:62;-1:-1:-1;;;2888:2:18;2873:18;;2866:32;2930:3;2915:19;;2542:398;5286:41:0;;;;;;;;5346:31;;;3157:21:18;;;3214:2;3194:18;;;3187:30;-1:-1:-1;;;3248:2:18;3233:18;;3226:40;3333:4;3318:20;;3311:36;;;5346:31:0;;;;;;;3298:3:18;5346:31:0;;;5396;;;3570:21:18;;;3627:2;3607:18;;;3600:30;-1:-1:-1;;;3661:2:18;3646:18;;3639:40;3746:4;3731:20;;3724:36;;;5396:31:0;;;;;;;3711:3:18;5396:31:0;;;5441:6;:4;:6::i;:::-;5202:262;;:::o;2410:424::-;2990:42;2978:55;3059:16;2445:359;;2645:67;;;1671:64;2645:67;;;3973:51:18;;;-1:-1:-1;;;4040:18:18;;;4033:34;;;;2705:4:0;4083:18:18;;;4076:34;2482:11:0;;1671:64;2579:43;;3946:18:18;;2645:67:0;;;-1:-1:-1;;2645:67:0;;;;;;;;;;2534:196;;;2645:67;2534:196;;:::i;:::-;;;;-1:-1:-1;;2534:196:0;;;;;;;;;;2499:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2445:359:0;2813:7;:14;;-1:-1:-1;;2813:14:0;;;;;2410:424::o;-1:-1:-1:-;;;;;;;;:::o;239:180:18:-;298:6;351:2;339:9;330:7;326:23;322:32;319:52;;;367:1;364;357:12;319:52;-1:-1:-1;390:23:18;;239:180;-1:-1:-1;239:180:18:o;988:184::-;1058:6;1111:2;1099:9;1090:7;1086:23;1082:32;1079:52;;;1127:1;1124;1117:12;1079:52;-1:-1:-1;1150:16:18;;988:184;-1:-1:-1;988:184:18:o;1456:322::-;1497:3;1535:5;1529:12;1559:1;1569:128;1583:6;1580:1;1577:13;1569:128;;;1680:4;1665:13;;;1661:24;;1655:31;1642:11;;;1635:52;1598:12;1569:128;;;-1:-1:-1;1752:1:18;1716:16;;1741:13;;;-1:-1:-1;1716:16:18;;1456:322;-1:-1:-1;1456:322:18:o;1783:278::-;-1:-1:-1;;;;;;1968:33:18;;1956:46;;1938:3;2018:37;2052:1;2043:11;;2035:6;2018:37;:::i;:::-;2011:44;1783:278;-1:-1:-1;;;;1783:278:18:o;2066:189::-;2195:3;2220:29;2245:3;2237:6;2220:29;:::i;:::-;2213:36;2066:189;-1:-1:-1;;;2066:189:18:o;2260:277::-;2327:6;2380:2;2368:9;2359:7;2355:23;2351:32;2348:52;;;2396:1;2393;2386:12;2348:52;2428:9;2422:16;2481:5;2474:13;2467:21;2460:5;2457:32;2447:60;;2503:1;2500;2493:12",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "IS_TEST()": "fa7626d4",
    "counter()": "61bc221a",
    "failed()": "ba414fa6",
    "setUp()": "0a9254e4",
    "testIncrement()": "b913a5ca",
    "testSetNumber(uint256)": "70f985be"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"contract Counter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testIncrement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSetNumber\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Counter.t.sol\":\"CounterTest\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Common.sol\":{\"keccak256\":\"0x3ed7f49e907eaf339c3bb0b79a81d303d0f9e37aa5b8a9854c0cbfc3ad9a3ef0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c2532fb5fea32c6dc165518f2c4918af25d9139d17c11da330414c9797a70b\",\"dweb:/ipfs/QmV4r8a1e9Rgu2xoigVCuSv3fZ737wD2DXbV6ZmHXVUtDn\"]},\"lib/forge-std/src/Components.sol\":{\"keccak256\":\"0xd3b8ba6df58174d5d650a668dfa49eeee28b2b855514b9e793e1c0b69d747149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce2b2ca79d5ce993b91358ed3d588396295e0aba9bb923481c1ffa5058a0dcd\",\"dweb:/ipfs/QmPNymteQmLWk7SqQhNsF6Rbc3xFPY7xGb4fBKravHLXD3\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xd2ac402483b70ead6e053993c03253a9d7d6b437a981b7a0158c4748abf202f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f662716875766eb46d34de4949bfb79ca6c408054f004fff0b2fc23d967182f8\",\"dweb:/ipfs/QmeNGCZBnSDjK7djHuGJ34kV2rNh8SL69SJTjR1PEsgJi1\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x9e421049151727ad09416e8d85e9bab277971f2ff750f230f50ef3c22ee40532\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8309e82f8020f4936d10b800b6166b28c4ea21b6f25d670b6735bd5d664ded3\",\"dweb:/ipfs/QmQP9d7uDsUGypHuc5LCd8zD4TsmvSqRUEqX2npMo6NLiQ\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce189d25fa333ca6611c0d24a16482df6256420764c747e783e60cf9f28c922e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0237b62ace5fe2311343eb32299b2f1cf0177394d9826eae23f1d1f92ae31f09\",\"dweb:/ipfs/QmVxvdgnheCWjBqE75nvapSKSr3UPRLrZQzxjcf5vxDmE2\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a\",\"dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xdfdea2fc16ca475b82c74ef8a1ee50249a086ea3e1d7dcb2fc5b507f2b69500b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e68c4ac142bfdcacfc1a3ffadb63e67213464be620b277586ccf74605ccc33d3\",\"dweb:/ipfs/QmXAiLV8LT4h4z6x1xc88BfJpkddSdGtQkBbtPf441MCqi\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x1d048e702d241727d75685d7516b51b72ff23513f6e2193e569f0fbc2a9112ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089652ff5d0bb1093f684863b3def0a505edb9c6fd533f8bceb1f12ce833c90e\",\"dweb:/ipfs/QmccjqbH8guWaVDi3QAEirMMs45XF3VV68dwBa5xwnFL1k\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x2d0cec0827a5ee9df571cde75cb742f8b977218283739e163801baa8c34439f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310afde56e845d7f36ca7ce191715038f8259d7a9250c171689744a797223556\",\"dweb:/ipfs/QmULG8AwNa5B64EMUSCwG1bAyJJK1sodAsAYvjk3vXbgMj\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x225cc1ec33efd35c90e78aec0792ed9751cd6217e646271172421e96e2e2cc0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c6adbd216e40ca2387835b8618c82e7153cb826023d38943bbb0c2e992644aa\",\"dweb:/ipfs/QmZeejwEkm7iH9NHih7dPbuNqivuFn27EkgJesgByzS9wD\"]},\"src/Counter.sol\":{\"keccak256\":\"0x09277f949d59a9521708c870dc39c2c434ad8f86a5472efda6a732ef728c0053\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://94cd5258357da018bf911aeda60ed9f5b130dce27445669ee200313cd3389200\",\"dweb:/ipfs/QmNbEfWAqXCtfQpk6u7TpGa8sTHXFLpUz7uebz2FVbchSC\"]},\"test/Counter.t.sol\":{\"keccak256\":\"0xc594348aaeba347b0ab0f63db2f8c18b27edf85296e55f976c6be680cfd58436\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ccff0ef93464b025c109790bb8560859a9b907ba69738f89cb5660f221a87362\",\"dweb:/ipfs/QmUz1EFdPjMyQJCtkfLTTHa5SUNM9dC4RLbrTt4PrF75Be\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.17+commit.8df45f5f"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_address",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256[]",
              "name": "val",
              "type": "uint256[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "int256[]",
              "name": "val",
              "type": "int256[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address[]",
              "name": "val",
              "type": "address[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_bytes",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_bytes32",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "int256",
              "name": "",
              "type": "int256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_int",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "val",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_address",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "uint256[]",
              "name": "val",
              "type": "uint256[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "int256[]",
              "name": "val",
              "type": "int256[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "address[]",
              "name": "val",
              "type": "address[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "bytes",
              "name": "val",
              "type": "bytes",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_bytes",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "bytes32",
              "name": "val",
              "type": "bytes32",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_bytes32",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "int256",
              "name": "val",
              "type": "int256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "decimals",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_decimal_int",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "val",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "decimals",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_decimal_uint",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "int256",
              "name": "val",
              "type": "int256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_int",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "string",
              "name": "val",
              "type": "string",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_string",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "val",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_uint",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_string",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_uint",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "logs",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "IS_TEST",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "counter",
          "outputs": [
            {
              "internalType": "contract Counter",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "failed",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setUp"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testIncrement"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "x",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testSetNumber"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {},
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        ":ds-test/=lib/forge-std/lib/ds-test/src/",
        ":forge-std/=lib/forge-std/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "test/Counter.t.sol": "CounterTest"
      },
      "libraries": {}
    },
    "sources": {
      "lib/forge-std/lib/ds-test/src/test.sol": {
        "keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54",
        "urls": [
          "bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5",
          "dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"
        ],
        "license": "GPL-3.0-or-later"
      },
      "lib/forge-std/src/Common.sol": {
        "keccak256": "0x3ed7f49e907eaf339c3bb0b79a81d303d0f9e37aa5b8a9854c0cbfc3ad9a3ef0",
        "urls": [
          "bzz-raw://01c2532fb5fea32c6dc165518f2c4918af25d9139d17c11da330414c9797a70b",
          "dweb:/ipfs/QmV4r8a1e9Rgu2xoigVCuSv3fZ737wD2DXbV6ZmHXVUtDn"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/Components.sol": {
        "keccak256": "0xd3b8ba6df58174d5d650a668dfa49eeee28b2b855514b9e793e1c0b69d747149",
        "urls": [
          "bzz-raw://cce2b2ca79d5ce993b91358ed3d588396295e0aba9bb923481c1ffa5058a0dcd",
          "dweb:/ipfs/QmPNymteQmLWk7SqQhNsF6Rbc3xFPY7xGb4fBKravHLXD3"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdAssertions.sol": {
        "keccak256": "0xd2ac402483b70ead6e053993c03253a9d7d6b437a981b7a0158c4748abf202f5",
        "urls": [
          "bzz-raw://f662716875766eb46d34de4949bfb79ca6c408054f004fff0b2fc23d967182f8",
          "dweb:/ipfs/QmeNGCZBnSDjK7djHuGJ34kV2rNh8SL69SJTjR1PEsgJi1"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdCheats.sol": {
        "keccak256": "0x9e421049151727ad09416e8d85e9bab277971f2ff750f230f50ef3c22ee40532",
        "urls": [
          "bzz-raw://d8309e82f8020f4936d10b800b6166b28c4ea21b6f25d670b6735bd5d664ded3",
          "dweb:/ipfs/QmQP9d7uDsUGypHuc5LCd8zD4TsmvSqRUEqX2npMo6NLiQ"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdError.sol": {
        "keccak256": "0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77",
        "urls": [
          "bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6",
          "dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdJson.sol": {
        "keccak256": "0xce189d25fa333ca6611c0d24a16482df6256420764c747e783e60cf9f28c922e",
        "urls": [
          "bzz-raw://0237b62ace5fe2311343eb32299b2f1cf0177394d9826eae23f1d1f92ae31f09",
          "dweb:/ipfs/QmVxvdgnheCWjBqE75nvapSKSr3UPRLrZQzxjcf5vxDmE2"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdMath.sol": {
        "keccak256": "0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2",
        "urls": [
          "bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92",
          "dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdStorage.sol": {
        "keccak256": "0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5",
        "urls": [
          "bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a",
          "dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdUtils.sol": {
        "keccak256": "0xdfdea2fc16ca475b82c74ef8a1ee50249a086ea3e1d7dcb2fc5b507f2b69500b",
        "urls": [
          "bzz-raw://e68c4ac142bfdcacfc1a3ffadb63e67213464be620b277586ccf74605ccc33d3",
          "dweb:/ipfs/QmXAiLV8LT4h4z6x1xc88BfJpkddSdGtQkBbtPf441MCqi"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/Test.sol": {
        "keccak256": "0x1d048e702d241727d75685d7516b51b72ff23513f6e2193e569f0fbc2a9112ad",
        "urls": [
          "bzz-raw://089652ff5d0bb1093f684863b3def0a505edb9c6fd533f8bceb1f12ce833c90e",
          "dweb:/ipfs/QmccjqbH8guWaVDi3QAEirMMs45XF3VV68dwBa5xwnFL1k"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/Vm.sol": {
        "keccak256": "0x2d0cec0827a5ee9df571cde75cb742f8b977218283739e163801baa8c34439f6",
        "urls": [
          "bzz-raw://310afde56e845d7f36ca7ce191715038f8259d7a9250c171689744a797223556",
          "dweb:/ipfs/QmULG8AwNa5B64EMUSCwG1bAyJJK1sodAsAYvjk3vXbgMj"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/console.sol": {
        "keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba",
        "urls": [
          "bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70",
          "dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/console2.sol": {
        "keccak256": "0x225cc1ec33efd35c90e78aec0792ed9751cd6217e646271172421e96e2e2cc0f",
        "urls": [
          "bzz-raw://6c6adbd216e40ca2387835b8618c82e7153cb826023d38943bbb0c2e992644aa",
          "dweb:/ipfs/QmZeejwEkm7iH9NHih7dPbuNqivuFn27EkgJesgByzS9wD"
        ],
        "license": "MIT"
      },
      "src/Counter.sol": {
        "keccak256": "0x09277f949d59a9521708c870dc39c2c434ad8f86a5472efda6a732ef728c0053",
        "urls": [
          "bzz-raw://94cd5258357da018bf911aeda60ed9f5b130dce27445669ee200313cd3389200",
          "dweb:/ipfs/QmNbEfWAqXCtfQpk6u7TpGa8sTHXFLpUz7uebz2FVbchSC"
        ],
        "license": "UNLICENSED"
      },
      "test/Counter.t.sol": {
        "keccak256": "0xc594348aaeba347b0ab0f63db2f8c18b27edf85296e55f976c6be680cfd58436",
        "urls": [
          "bzz-raw://ccff0ef93464b025c109790bb8560859a9b907ba69738f89cb5660f221a87362",
          "dweb:/ipfs/QmUz1EFdPjMyQJCtkfLTTHa5SUNM9dC4RLbrTt4PrF75Be"
        ],
        "license": "UNLICENSED"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "test/Counter.t.sol",
    "id": 24548,
    "exportedSymbols": {
      "CommonBase": [
        1818
      ],
      "Counter": [
        24485
      ],
      "CounterTest": [
        24547
      ],
      "DSTest": [
        1786
      ],
      "StdAssertions": [
        2677
      ],
      "StdCheats": [
        5073
      ],
      "StdStorage": [
        5672
      ],
      "StdUtils": [
        7501
      ],
      "Test": [
        7532
      ],
      "TestBase": [
        7521
      ],
      "Vm": [
        8315
      ],
      "console": [
        16379
      ],
      "console2": [
        24444
      ],
      "stdError": [
        5139
      ],
      "stdJson": [
        5499
      ],
      "stdMath": [
        5641
      ],
      "stdStorage": [
        7106
      ]
    },
    "nodeType": "SourceUnit",
    "src": "39:482:17",
    "nodes": [
      {
        "id": 24487,
        "nodeType": "PragmaDirective",
        "src": "39:24:17",
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".13"
        ]
      },
      {
        "id": 24488,
        "nodeType": "ImportDirective",
        "src": "65:28:17",
        "absolutePath": "lib/forge-std/src/Test.sol",
        "file": "forge-std/Test.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 24548,
        "sourceUnit": 7533,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 24489,
        "nodeType": "ImportDirective",
        "src": "94:28:17",
        "absolutePath": "src/Counter.sol",
        "file": "../src/Counter.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 24548,
        "sourceUnit": 24486,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 24547,
        "nodeType": "ContractDefinition",
        "src": "124:396:17",
        "nodes": [
          {
            "id": 24494,
            "nodeType": "VariableDeclaration",
            "src": "159:22:17",
            "constant": false,
            "functionSelector": "61bc221a",
            "mutability": "mutable",
            "name": "counter",
            "nameLocation": "174:7:17",
            "scope": 24547,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_Counter_$24485",
              "typeString": "contract Counter"
            },
            "typeName": {
              "id": 24493,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 24492,
                "name": "Counter",
                "nameLocations": [
                  "159:7:17"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 24485,
                "src": "159:7:17"
              },
              "referencedDeclaration": 24485,
              "src": "159:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Counter_$24485",
                "typeString": "contract Counter"
              }
            },
            "visibility": "public"
          },
          {
            "id": 24511,
            "nodeType": "FunctionDefinition",
            "src": "188:94:17",
            "body": {
              "id": 24510,
              "nodeType": "Block",
              "src": "212:70:17",
              "statements": [
                {
                  "expression": {
                    "id": 24502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 24497,
                      "name": "counter",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24494,
                      "src": "222:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Counter_$24485",
                        "typeString": "contract Counter"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 24500,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "232:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Counter_$24485_$",
                          "typeString": "function () returns (contract Counter)"
                        },
                        "typeName": {
                          "id": 24499,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 24498,
                            "name": "Counter",
                            "nameLocations": [
                              "236:7:17"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 24485,
                            "src": "236:7:17"
                          },
                          "referencedDeclaration": 24485,
                          "src": "236:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Counter_$24485",
                            "typeString": "contract Counter"
                          }
                        }
                      },
                      "id": 24501,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "232:13:17",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Counter_$24485",
                        "typeString": "contract Counter"
                      }
                    },
                    "src": "222:23:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Counter_$24485",
                      "typeString": "contract Counter"
                    }
                  },
                  "id": 24503,
                  "nodeType": "ExpressionStatement",
                  "src": "222:23:17"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "30",
                        "id": 24507,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "273:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "id": 24504,
                        "name": "counter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 24494,
                        "src": "255:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Counter_$24485",
                          "typeString": "contract Counter"
                        }
                      },
                      "id": 24506,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "263:9:17",
                      "memberName": "setNumber",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24477,
                      "src": "255:17:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 24508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "255:20:17",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 24509,
                  "nodeType": "ExpressionStatement",
                  "src": "255:20:17"
                }
              ]
            },
            "functionSelector": "0a9254e4",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setUp",
            "nameLocation": "197:5:17",
            "parameters": {
              "id": 24495,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "202:2:17"
            },
            "returnParameters": {
              "id": 24496,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "212:0:17"
            },
            "scope": 24547,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 24527,
            "nodeType": "FunctionDefinition",
            "src": "288:107:17",
            "body": {
              "id": 24526,
              "nodeType": "Block",
              "src": "320:75:17",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 24514,
                        "name": "counter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 24494,
                        "src": "330:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Counter_$24485",
                          "typeString": "contract Counter"
                        }
                      },
                      "id": 24516,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "338:9:17",
                      "memberName": "increment",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24484,
                      "src": "330:17:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 24517,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "330:19:17",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 24518,
                  "nodeType": "ExpressionStatement",
                  "src": "330:19:17"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "id": 24520,
                            "name": "counter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24494,
                            "src": "368:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Counter_$24485",
                              "typeString": "contract Counter"
                            }
                          },
                          "id": 24521,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "376:6:17",
                          "memberName": "number",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 24467,
                          "src": "368:14:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 24522,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "368:16:17",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "31",
                        "id": 24523,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "386:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 24519,
                      "name": "assertEq",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1980,
                        2005,
                        2018,
                        2034,
                        2076,
                        2118,
                        2160,
                        2197,
                        2234,
                        2271,
                        320,
                        345,
                        375,
                        400,
                        459,
                        484,
                        514,
                        539,
                        1639,
                        1674
                      ],
                      "referencedDeclaration": 514,
                      "src": "359:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 24524,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "359:29:17",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 24525,
                  "nodeType": "ExpressionStatement",
                  "src": "359:29:17"
                }
              ]
            },
            "functionSelector": "b913a5ca",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testIncrement",
            "nameLocation": "297:13:17",
            "parameters": {
              "id": 24512,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "310:2:17"
            },
            "returnParameters": {
              "id": 24513,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "320:0:17"
            },
            "scope": 24547,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 24546,
            "nodeType": "FunctionDefinition",
            "src": "401:117:17",
            "body": {
              "id": 24545,
              "nodeType": "Block",
              "src": "442:76:17",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 24535,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 24529,
                        "src": "470:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 24532,
                        "name": "counter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 24494,
                        "src": "452:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Counter_$24485",
                          "typeString": "contract Counter"
                        }
                      },
                      "id": 24534,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "460:9:17",
                      "memberName": "setNumber",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24477,
                      "src": "452:17:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 24536,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "452:20:17",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 24537,
                  "nodeType": "ExpressionStatement",
                  "src": "452:20:17"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "id": 24539,
                            "name": "counter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24494,
                            "src": "491:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Counter_$24485",
                              "typeString": "contract Counter"
                            }
                          },
                          "id": 24540,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "499:6:17",
                          "memberName": "number",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 24467,
                          "src": "491:14:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 24541,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "491:16:17",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 24542,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 24529,
                        "src": "509:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 24538,
                      "name": "assertEq",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1980,
                        2005,
                        2018,
                        2034,
                        2076,
                        2118,
                        2160,
                        2197,
                        2234,
                        2271,
                        320,
                        345,
                        375,
                        400,
                        459,
                        484,
                        514,
                        539,
                        1639,
                        1674
                      ],
                      "referencedDeclaration": 514,
                      "src": "482:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 24543,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "482:29:17",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 24544,
                  "nodeType": "ExpressionStatement",
                  "src": "482:29:17"
                }
              ]
            },
            "functionSelector": "70f985be",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testSetNumber",
            "nameLocation": "410:13:17",
            "parameters": {
              "id": 24530,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24529,
                  "mutability": "mutable",
                  "name": "x",
                  "nameLocation": "432:1:17",
                  "nodeType": "VariableDeclaration",
                  "scope": 24546,
                  "src": "424:9:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24528,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "424:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "423:11:17"
            },
            "returnParameters": {
              "id": 24531,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "442:0:17"
            },
            "scope": 24547,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 24490,
              "name": "Test",
              "nameLocations": [
                "148:4:17"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 7532,
              "src": "148:4:17"
            },
            "id": 24491,
            "nodeType": "InheritanceSpecifier",
            "src": "148:4:17"
          }
        ],
        "canonicalName": "CounterTest",
        "contractDependencies": [
          24485
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          24547,
          7532,
          7501,
          5073,
          4684,
          2677,
          1786,
          7521,
          1818
        ],
        "name": "CounterTest",
        "nameLocation": "133:11:17",
        "scope": 24548,
        "usedErrors": []
      }
    ],
    "license": "UNLICENSED"
  },
  "id": 17
}